compiler/core/README.md
The Lona Compiler is a CLI tool for generating cross-platform UI code from JSON definitions.
The Lona Compiler is published on npm as lonac.
First, install the compiler with:
npm install --global lonac
You may also install locally to your current project if you prefer, by removing the --global.
For each command, you'll choose a code generation target: swift, js, or xml.
You can specify a framework using the --framework=... option.
In the case of js, the options are:
reactnative: React Native (default)reactdom: React DOMreactsketchapp: React SketchAppIn the case of swift, the options are:
uikit: iOSappkit: macOSHere are a handful of examples. You can check out the scripts section of the package.json to see more targets/frameworks -- there is a snapshot command for each compiler target.
This will generate the colors, text styles, shadows, custom types, and all components, writing them to output-directory in the same structure as the input workspace directory.
lonac workspace --target js --workspace [path-to-workspace-directory] --output [output-directory]
This will output the generated colors code to stdout. You may also pass the colors.json file through stdin instead of as a parameter, if you prefer.
lonac colors --target js --input [path-to-colors.json]
The will output the generated component code to stdout.
lonac component --target js --input [path-to-colors.json]
To build the compiler from source, follow these steps.
This project is written in ReasonML, an OCaml dialect that can compile to JavaScript using BuckleScript.
Install from: https://reasonml.github.io/docs/en/installation
From this directory, run:
yarn
Note: If you don't have yarn installed already, you can download it with npm:
npm install --global yarn
I recommend developing with VSCode and the reason-vscode plugin (there are several plugins, but this one is most reliable in my experience).
yarn start
The above examples can now be run by replacing lonac with node src/main.bs.js.