atlassian-soy-cli v2.0.0
THIS PACKAGE IS DEPRECATED - PLEASE MIGRATE
As at 19.03.2021, this package is deprecated and no longer maintained. We recommend https://www.npmjs.com/package/@atlassian/soy-loader.
Node.js: Atlassian Soy CLI
atlassian-soy-cli is a Node wrapper for Atlassian Soy Templates CLI.
Why?
Compile Soy to Javascript as part of your frontend build using frontend tools, not Maven and Java. Easily integrate with Gulp, Karma, and others.
Installation
npm install --save-dev atlassian-soy-cliUsage
atlassian-soy-cli exposes a factory function that takes an options object.
var soyCli = require('atlassian-soy-cli');
var cli = soyCli({
version: '4.1.2', // optional
basedir: 'src/main/resources',
outdir: 'target/classes',
type: 'js' // optional
});From then on, call compile(glob) to compile Soy files that match the glob. All methods support both callback and
promise style.
// compile all soy templates in basedir (using callback style)
cli.compile('**/*.soy', callback)
// compile a single soy template (using promise style)
cli.compile('myTemplate.soy').then(...)Options
The basedir and outdir options are mandatory. Arguments passed in the extraArgs option are passed through to the Soy CLI.
{
version: "4.1.2", // optional
basedir: "/path/to/soy/templates",
outdir: "/path/to/compiled/js",
type: 'js', // optional
extraArgs: {
'use-ajs-context': true,
'rootnamespace': 'mynamespace',
'i18n': [
'/path/to/file1',
'/path/to/file2'
]
}
}The above extraArgs will append the following arguments to the Soy CLI invocation.
--use-ajs-context --rootnamespace "mynamespace" --i18n "/path/to/file1" --i18n "/path/to/file2"