Package Exports
- rna
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rna) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
RNA
RNA is a template/model based code generator.
It takes mustash templates and json models to generate code.
Usage:
Usage: rna [--dir working_directory] <model> <template> [output]
rna [--dir working_directory] <rna_config_file>
model:
supported formats:
- json
template:
supported formats:
- handlebars template
rna_config_file:
supported formats:
- json
possible objects:
{
model: <string>,
template: <string>,
output: <string>
}
or
{
RnaConf: {
model: <string>,
template: <string>,
output: <string>
}
}
The advantage of using the second form is to be able tu have the same file for
the rna configuration and the model.
API
Template
You can use everything Handlebars has to offer.
Model
Your model must be a valid json object. (JSON.parse compliant).
There are two helpers available: $files and $custom.
$files
Example :
{
"$files": {
"matching": "*.coffee",
"type": "file",
"ignore": "index.coffee"
}
}
Here, the configuration of the $files field will be replaced by a liste of matching files.
Configuration options :
{
"$files": {
"dir": ".", "_": "base directory",
"matching": "*.coffee", "_": "only files matching *.coffee will be listed",
"type": "file", "_": "possible: file | dir (both if not specified)",
"ignore": "index.coffee", "_": "either a file name or a glob match",
"contains": "filename", "_": "directories containing a specific file (only with type=dir)"
}
}
$custom
Shamefully not tested ...
configuration:
{
"dir": ".", "_": "base directory",
"path": "./", "_" : "import path",
"data": {}, "_": "data to pass to the custom helper"
}
TODO
- write tests
- test $custom
- create more default helpers
- create gulp plugin