UNPKG

1.2 kBJavaScriptView Raw
1'use strict';
2
3var _ = require('lodash');
4var resolve = require('resolve-dep');
5
6var defaultsDeep = _.partialRight(_.merge, function deep(value, other) {
7 if (_.isString(value) || _.isArray(value) || _.isDate(other)) return value;
8 return _.merge(value, other, deep);
9});
10
11var exports = module.exports = {};
12var taker;
13
14exports.bind = function(instance) {
15 taker = instance;
16 return exports;
17};
18
19exports.resolve = function(pattern) {
20 var resolved = resolve.npm(pattern, {type: 'devDependencies'});
21 return resolved.map(function(module) {
22 return require(module);
23 });
24};
25
26exports.registerTasks = function(registries) {
27 registries.forEach(function(module) {
28 var tasks = module.tasks;
29 Object.keys(tasks).forEach(function(task) {
30 taker.registry(new (tasks[task])(taker));
31 });
32 });
33};
34
35exports.registerIndexes = function(registries) {
36 registries.forEach(function(module) {
37 if(module.index) {
38 taker.registry(new (module.index)(taker));
39 }
40 });
41};
42
43exports.loadDefaults = function(registries) {
44 var config = {};
45 registries.forEach(function(module) {
46 if(module.defaults) {
47 defaultsDeep(config, module.defaults);
48 }
49 });
50 return config;
51};