# graph

## Usage

`prism graph` is used to render your project's DAG as a website.

```
Usage: prism graph [OPTIONS]                                                                                                        
                                                                                                                                     
 Visualize your Prism project as a DAG in an interactive UI.                                                                         
                                                                                                                                     
 Examples:                                                                                                                           
                                                                                                                                     
  • prism graph                                                                                                                      
  • prism graph --no-browser --port 3000                                                                                             
                                                                                                                                     
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --port        -p  INTEGER                  Port to use for HTTP request; default is 8080                                          │
│ --no-browser                               Overwrite default behavior and do not open a tab in the default web browser with the   │
│                                            docs UI.                                                                               │
│ --log-level   -l  [info|warn|error|debug]  Set the log level                                                                      │
│ --full-tb                                  Show the full traceback when an error occurs                                           │
│ --help                                     Show this message and exit.                                                            │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```

When you execute the `prism graph` command, Prism compiles the project, parses the `task.ref(...)` calls to create the DAG, and stores information about the compiled project in a JSON manifest. This manifest contains information on the DAG's topological sort and the source code for the different tasks, and it is used in the backend construction of the website.

## Example

Here's what the output looks like in Terminal:

```
$ prism graph
--------------------------------------------------------------------------------
<HH:MM:SS> | INFO  | Running with prism v0.2.0rc2...
<HH:MM:SS> | INFO  | Found project directory at /Users/my_first_project
<HH:MM:SS> | INFO  | RUNNING EVENT 'task DAG'................................................................ [RUN]
<HH:MM:SS> | INFO  | FINISHED EVENT 'task DAG'............................................................... [DONE in 0.03s]
<HH:MM:SS> | INFO  | RUNNING EVENT 'populate docs build'..................................................... [RUN]
<HH:MM:SS> | INFO  | FINISHED EVENT 'populate docs build'.................................................... [DONE in 0.03s]
 
<HH:MM:SS> | INFO  | Serving docs at http://127.0.0.1:8080
<HH:MM:SS> | INFO  | Press Ctrl+C to exit
 
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /54968a39190c43d592b9.svg HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /ce188596011a8fa32931.png HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /manifest.json HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /311ea03002abadcdcaba.png HTTP/1.1" 200 -
127.0.0.1 - - [dd/Mon/Year HH:MM:SS] "GET /737ad70b3f2d3a9b5f6e.ico HTTP/1.1" 200 -
```
