base-config-process
Version:
Commonly used config mappings for the base-config plugin. Also pre-processes the given object with base-config-schema before calling `.process()`
46 lines (39 loc) • 1.12 kB
JavaScript
;
var debug = require('debug')('base:cli:process');
/**
* _(Requires [templates][], otherwise ignored)_
*
* Register engines to use for rendering templates. Object-keys are used
* for the engine name, and the value can either be the module name, or
* an options object with the module name defined on the `name` property.
*
* _(Modules must be locally installed and listed in `dependencies` or
* `devDependencies`)_.
*
* ```json
* // module name
* {"verb": {"engines": {"*": "engine-base"}}}
*
* // options
* {"verb": {"engines": {"*": {"name": "engine-base"}}}}
* ```
* @name engines
* @api public
*/
module.exports = function(app) {
return function(engines, key, config, next) {
if (typeof app.engine !== 'function') {
next(new TypeError('expected app.engine to be a function'));
return;
}
if (key === 'engine') {
engines = config.engines = config.engine;
delete config.engine;
}
for (var prop in engines) {
debug('adding engine "%s"', prop);
app.engine(prop, engines[prop].fn, engines[prop]);
}
next();
};
};