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 SketchApp
In the case of swift
, the options are:
uikit
: iOSappkit
: macOS
Here 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
.