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()`
42 lines (37 loc) • 996 B
JavaScript
;
var debug = require('debug')('base:cli:process:middleware');
var utils = require('../utils');
/**
* Load pipeline plugins. Requires the [base-pipeline][] plugin to be
* registered.
*
* _(Modules must be locally installed and listed in `dependencies` or
* `devDependencies`)_.
*
* ```json
* {"verb": {"plugins": {"eslint": {"name": "gulp-eslint"}}}}
* ```
* @name plugins
* @api public
*/
module.exports = function(app) {
return function(obj, name, config, next) {
for (var key in obj) {
if (typeof app[key] !== 'function') {
continue;
}
if (obj.hasOwnProperty(key)) {
var arr = obj[key];
var len = arr.length;
var idx = -1;
while (++idx < len) {
var val = arr[idx];
debug('adding middleware <%s> to stage <%s>', val.name, key);
var re = utils.toRegex(val.regex || val.match || /./);
app[key](re, val.fn(val.options));
}
}
}
next();
};
};