Generates a Mermaid graph for the specified schema and injects it into the specified Markdown file. The generated graph is the visual representation of the database architecture inferred from your schema. You can specify where the graph is inserted within the file using the --startMarker and --endMarker options. For a detailed guide, see the full example below.

Usage

typesync generate-graph --definition <filePathOrPattern> --outFile <filePath> --startMarker <startMarker> --endMarker <endMarker> --orientation <indentation> --debug <debug>

Options

definition
string
required

The exact path or a Glob pattern to the definition file or files. Each definition file must be a YAML or JSON file containing model definitions.

  • Example single file path: definition/models.json
  • Example Glob pattern: 'definition/**/*.yml'
outFile
string
required

The path to the output file.

startMarker
string
default: "typesync-start"

A marker that indicates the line after which the generated code should be inserted. Make sure to use a string that is unique within the file. The line containing the marker must be commented i.e. the marker needs to appear after the <!-- (see example).

endMarker
string
default: "typesync-end"

A marker that indicates the line before which the generated code should be inserted. Make sure to use a string that is unique within the file. The line containing the marker must be commented i.e. the marker needs to appear after the <!-- (see example).

orientation
"vertical" | "horizontal"
default: "horizontal"

The orientation of the generated Mermaid graph. Can be either "vertical" or "horizontal" which correspond to the "TB" and "LR" Mermaid options, respectively.

debug
boolean
default: false

Whether to enable debug logs.

Example

Suppose you have a schema definition file named models.yml and a Markdown file named graph.md.

To generate a Mermaid graph for the defined models and inject them between the typesync-start and typesync-end markers in the graph.md file, you can run the following command:

typesync generate-graph --definition definition.yml --outFile graph.md --startMarker typesync-start --endMarker typesync-end

Once you run the command, Typesync inserts the Mermaid graph definition into the specified section.

graph.md
# Architecture

This graph explains how our database is structured.

<!-- typesync-start -->
```mermaid
graph LR
    node1["authors"] --> node2["{authorId}"]
    node3["books"] --> node4["{bookId}"]
    node4["{bookId}"] --> node5["chapters"]
    node5["chapters"] --> node6["{chapterId}"]
    node4["{bookId}"] --> node7["reviews"]
    node7["reviews"] --> node8["{reviewId}"]
    node4["{bookId}"] --> node9["translations"]
    node9["translations"] --> node10["{translationId}"]
``
<!-- typesync-end -->

This graph is automatically generated.

The graph generated for the above schema looks as follows: