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