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()`
53 lines (47 loc) • 1.18 kB
JavaScript
;
var debug = require('debug')('base:cli:process');
/**
* _(Requires [templates][], otherwise ignored)_
*
* Register generators to use in templates. Value can be a string or
* array of module names, glob patterns, or file paths, or an object
* where each key is a filepath, glob or module name, and the value
* is an options object to pass to resolved generators.
*
* _(Modules must be locally installed and listed in `dependencies` or
* `devDependencies`)_.
*
* ```json
* // module names
* {
* "verb": {
* "generators": {
* "generator-foo": {},
* "generator-bar": {}
* }
* }
* }
*
* // register a glob of generators
* {
* "verb": {
* "generators": ["foo/*.js"]
* }
* }
* ```
* @name generators
* @api public
*/
module.exports = function(app, base, env, options) {
return function(generators, key, config, next) {
if (typeof app.generator !== 'function') {
next(new Error('expected app.generator to be a function'));
return;
}
for (var prop in generators) {
debug('loading generator "%s"', prop);
this.register(prop, generators[prop].fn);
}
next();
};
};