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
-- however, this is likely outdated. You should build the development version for now.
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
There are currently 3 commands:
colors
- Generate colors code from acolors.json
filecomponent
- Generate component code from a.component
fileworkspace
- Generate a directory with code for colors, text styles, and every.component
file in a directory
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
Check out the scripts section of the package.json
to see some examples. There is a snapshot
command for each compiler target.
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] [path-to-colors.json]
The will output the generated component code to stdout
.
lonac component [target] [path-to-component.component]
This will generate the colors, text styles, and all components, writing them to output-directory
in the same structure as the input workspace directory.
lonac workspace [target] [path-to-workspace] [output-directory]