generate
Usage: chr generate [OPTIONS] COMMAND [ARGS]...
Generate client stubs and documentation for a rell project
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ -h, --help Show this message and exit │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────╮
│ client-stubs Generates client code for a rell dapp │
│ graph Generates entity relation graphs in mermaid format │
│ docs-site Generate a documentation site for a dapp ontology │
╰─────────────────────────────────────────────────────────────────────────────╯
generate client-stubs
Usage: chr generate client-stubs [OPTIONS]
Generates client code for a rell dapp
╭─ Configuration Properties ──────── ──────────────────────────────────────────╮
│ -s, --settings=SETTINGS Alternate path for project settings file │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ kotlin ────────────────────────────────────────────────────────────────────╮
│* --package=TEXT Name of package │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ -m, --module=TEXT Explicitly set which modules to generate code for. │
│ Separate modules with ',' │
│ -d, --target=PATH Directory to generate code in │
│ --kotlin, --typescript, --javascript │
│ Language to generate client for │
│ -h, --help Show this message and exit │
╰─────────────────────────────────────────────────────────────────────────────╯
The client-stubs command (chr generate client-stubs
) generates code that can be used to communicate with the Rell
backend.
generate graph
Usage: chr generate graph [OPTIONS]
Generates entity relation graphs in mermaid format
╭─ Configuration Properties ──────────────────────────────────────────────────╮
│ -s, --settings=SETTINGS Alternate path for project settings file │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ -m, --module=TEXT Explicitly set which modules to generate code for. │
│ Separate modules with ',' │
│ -d, --target=PATH Directory to generate code in │
│ --mdx Surround with mdx tags │
│ --entity-relation / --class-diagram │
│ Presented as entity relation diagram or class diagram │
│ -h, --help Show this message and exit │
╰─────────────────────────────────────────────────────────────────────────────╯
The graph command (chr generate graph
) generates mermaid graphs, helping to visualize the entity relations of a dapp.
Using the --entity-relation
/--class-diagram
options, you can decide whether to present each entity as a class or a
database entity.
If the graph is intended to be shown in a markdown file, you can use the --mdx
flag to wrap the generated code in a
code block. This is useful, for example, when including the graph in a docasaurus site or
Github Wiki.
generate docs-site
Usage: chr generate docs-site [OPTIONS]
Generate a documentation site for a dapp ontology
╭─ Configuration Properties ──────────────────────────────────────────────────╮
│ -s, --settings=SETTINGS Alternate path for project settings file │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ -d, --target=PATH Directory to generate code in │
│ -i, --include=TEXT Libs to actively include in the navigation of the │
│ generated docs site, by default all are excluded. To │
│ include a library, the full identifier must be │
│ specified as an example for the library foo, the │
│ inclusion of it would be lib.foo │
│ -h, --help Show this message and exit │
╰─────────────────────────────────────────────────────────────────────────────╯
The generate docs-site command (chr generate docs-site
) generates a complete site that documents the API of your dapp.
Configure the output by adding a docs
section to chromia.yml
:
docs:
title: My Rell Dapp
footerMessage: © 2024 Copyright MyCompany
customStyleSheets:
- my-styles.css
customAssets:
- my-logo.png
additionalContent:
- my-doc.md
sourceLink:
remoteUrl: https://github.com/my-org/my-repo/blob/main/src
remoteLineSuffix: "#L"
For more information on the configuration properties, see project config.
The generated site contains JS code to provide a navigation bar. Although you can open the index.html
page in your
browser, the best experience is achieved by hosting the site on a web server.
This can be done using docker:
docker run -dit --name my-docs-site -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
Or, if you already have a node-js project:
npm install http-server
npx http-server