Skip to main content

Morphir Command Line Tools

At the moment, Morphir provides two CLI programs that provide the tools that morphir offers, morphir-elm and morphir. morphir-elm is the first program created and may be deprecated in the future, so we advise that you use morphir whenever possible and only use morphir-elm if the feature you intend to use isn't currently available in morphir.

Compile (Elm)

Morphir revolves around the Intermediate Representation (IR), which is the data format for storing logic. Morphir users compile their business logic into the IR using morphir's compiler tools. For Elm-authored logic, is done through the following:

morphir-elm make
moprhir make

Options include:

Usage: morphir-elm make [options]
Usage: morphir make [options]

Translate Elm sources to Morphir IR

Options:
-p, --project-dir <path> Root directory of the project where morphir.json is located. (default: ".")
-o, --output <path> Target file location where the Morphir IR will be saved. (default: "morphir-ir.json")
-t, --types-only Only include type information in the IR, no values. (default: false)
-f, --fallback-cli Full rebuild. Only available for "morphir-elm make" (default: false)
-h, --help display help for command

Visualize

Morphir contains tools to interact with, learn, and test Morphir applications. This can be invoked via:

morphir-elm develop

Options include:

Usage: morphir-elm develop [options]

Start up a web server and expose developer tools through a web UI

Options:
-p, --port <port> Port to bind the web server to. (default: "3000")
-o, --host <host> Host to bind the web server to. (default: "0.0.0.0")
-i, --project-dir <path> Root directory of the project where morphir.json is located. (default: ".")
-h, --help display help for command

Note that the default http://0.0.0.0:3000 sometimes needs to be replaced with http://localhost:3000 depending on the host environment.

Generate

Morphir provides tools to generate useful things from a Morphir IR.

morphir-elm gen

Options include:

Usage: morphir-elm gen [options]

Generate code from Morphir IR

Options:
-i, --input <path> Source location where the Morphir IR will be loaded from. (default: "morphir-ir.json")
-o, --output <path> Target location where the generated code will be saved. (default: "./dist")
-t, --target <type> Language to Generate (Scala | SpringBoot | cypher | triples | TypeScript). (default: "Scala")
-m, --modules-to-include <comma.separated,list.of,module.names> Limit the set of modules that will be included.
-h, --help display help for command

Generate Scala

morphir-elm gen -t Scala

Options include:

  -e, --target-version <version>                                   Scala language version to Generate. (default: "2.11")
-c, --copy-deps Copy the dependencies used by the generated code to the output path. (default: false)
morphir scala-gen 

Options include:

  -i, --input <path>                                               Source location where the Morphir IR will be loaded from. (default: "morphir-ir.json")
-o, --output <path> Target location where the generated code will be saved. (default: "./dist")
-e, --target-version <version> Scala language version to Generate. (default: "2.11")
-c, --copy-deps Copy the dependencies used by the generated code to the output path. (default: false)
-m, --limitToModules <comma.separated,list.of,module.names> Limit the set of modules that will be included. (default: '')
-s, --include-codecs <boolean> Generate the scala codecs as well (default: false)
--generate-test-generic Generate generic test cases from morphir tests that can be used for testing. Since 2.74.0 (default: false)
--generate-test-scalatest Generate runnable scalatest test cases Since 2.74.0 (default: false)

Generate Json Schema

morphir-elm gen -t JsonSchema

Options include:

  -s, --include-codecs                                             Generate JSON codecs (default: false)
-f, --filename <filename> Filename of the generated JSON Schema. (default: "")

Generate TypeScript

morphir-elm gen -t TypeScript

Generate Turtle for semantic web technologies

morphir-elm gen -t semantic

Generate Cypher for graph databases

morphir-elm gen -t cypher