frau-appconfig-builder
A free-range-app utility for building your FRA's appconfig.json.
Installation
Install from NPM:
npm install frau-appconfig-builder
Usage
From CLI
The FRAU appconfig builder can be run either directly on the console CLI (assuming dependencies are installed) or specified as a script in package.json
. Arguments may be passed directly to the CLI, or may be configured in package.json
. An environment variable may be specified to indicate local vs. remote (ex. Travis) build environment.
Typical configuration for running in TRAVIS:
frau-appconfig-builder --dist|-d ./dist
--appfile|-f app.js
--loader|-l umd
--envvar|-e TRAVIS
--showloading|-s
--oslo|-o oslo/langterms/
+ local appresolver options
+ publisher options
In the above example, the CLI utility will use the envVar
to determine whether to use frau-local-appresolver or frau-publisher to determine the app end-point. Therefore, the configurations for these CLI utilities are also necessary.
Since this utility, as well as the frau-local-appresolver and frau-publisher utilities are typically used together for a FRA, it is much clearer to simply configure these options in package.json
:
"scripts": {
"build:appconfig": "frau-appconfig-builder"
},
"config": {
"frauAppConfigBuilder": {
"appFile": "app.js",
"dist": "./dist",
"envVar": "TRAVIS",
"loader": "umd",
"showLoading": false
},
"frauLocalAppResolver": {
...
},
"frauPublisher": {
...
}
}
From JavaScript
To build the appconfig.json:
var builder = require('frau-appconfig-builder').umd; // (umd|html|iframe)
var vfs = require('vinyl-fs');
var target;
if (process.env['TRAVIS']) {
var publisher = require('gulp-frau-publisher');
target = publisher.app(options)
.getLocation() + 'app.js';
} else {
var localAppResolver = require('frau-local-appresolver');
target = localAppResolver.resolver(appClass, options)
.getUrl() + 'app.js';
}
builder.buildStream(target)
.pipe(vfs.dest('./dist')
.on('end', function() {
console.log('appconfig.json created!');
});
Parameters:
-
appFile
(required) - The name of the app end-point file (ex. app.js) -
dist
(required) - The directory where theappconfig.json
file should be saved -
envVar
(optional) - The environment variable for checking to determine the build environment (local vs. remote), necessary to resolve app end-point -
loader
(optional) - The app loader type to be specified in theappconfig.json
, controls how the FRA will be loaded (ex. umd, iframe, html) -
showLoading
(optional umd) - Whether to show the loading indicator when using the umd loader. The defaults to false. -
oslo
(optional) - The oslo translation xml language terms path (ex. oslo/langterms/)
Contributing
Contributions are welcome, please submit a pull request!
Code Style
This repository is configured with EditorConfig rules and contributions should make use of them.
Versioning and Releasing
This repo is configured to use semantic-release
. Commits prefixed with fix:
and feat:
will trigger patch and minor releases when merged to main
.
To learn how to create major releases and release from maintenance branches, refer to the semantic-release GitHub Action documentation.