#Morphir Tools
Morphir is provided as a set of command-line tools that are distribution through the NPM packaging system. The current version is:
Installation​
To install morphir, use the standard NPM installation commands:
npm install -g morphir-elm
Usage​
All the features can be accessed through sub-commands within the morphir-elm command:
Usage: morphir-elm [options] [command]
Options:
  -v, --version  output the version number
  -h, --help     output usage information
Commands:
  make           Translate Elm sources to Morphir IR
  gen            Generate code from Morphir IR
  develop        Start up a web server and expose developer tools through a web UI
  help [cmd]     display help for [cmd]
Each command has different options which are detailed below:
morphir-elm make​
This command reads Elm sources, translates to Morphir IR and outputs the IR into JSON.
Usage: morphir-elm 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")
  -h, --help                output usage information
Important: The command requires a configuration file called morphir.json located in the project
root directory with the following structure:
{
    "name": "My.Package",
    "sourceDirectory": "src",
    "exposedModules": [
        "Foo",
        "Bar"
    ]
}
- name - The name of the package. The package name should be a valid Elm module name and it should be used as a
module prefix in your Elm models. If your package name is My.Packageall your module files should either be directly under that or in submodules.
- sourceDirectory - The directory where your Elm sources are located.
- exposedModules - The list of modules in the public interface of the package. Module names should exclude the
common package prefix. In the above example Foorefers to the Elm moduleMy.Package.Foo.
Examples​
If you want to try the make command you can use the reference model we have under tests-integration/reference-model. Simply cd into the directory and run the command.
morphir-elm gen​
This command reads the JSON produced by morphir-elm make and generates code into the specified folder:
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). (default: "Scala")
  -e, --target-version <version>  Language version to Generate. (default: "2.11")
  -c, --copy-deps                 Copy the dependencies used by the generated code to the output path. (default: false)
  -h, --help                      output usage information
Examples​
If you want to try the gen command you can use the reference model we have under tests-integration/reference-model. Simply cd into the directory and run the command.
morphir-elm develop​
This command relies on the JSON produced by morphir-elm make and brings up a web server to browse the Morphir IR.
Usage: morphir-elm develop [options]
Start up a web server and expose developer tools through a web UI
Options:
  -p, --project-dir <path>  Root directory of the project where morphir.json is located. (default: ".")
  -h, --help                output usage information