Files
piratepoet/tasks/makepot/node_modules/load-grunt-tasks/index.js

30 lines
837 B
JavaScript

'use strict';
var path = require('path');
var findup = require('findup-sync');
var multimatch = require('multimatch');
function arrayify(el) {
return Array.isArray(el) ? el : [el];
}
module.exports = function (grunt, opts) {
opts = opts || {};
var pattern = arrayify(opts.pattern || ['grunt-*', '@*/grunt-*']);
var config = opts.config || findup('package.json');
var scope = arrayify(opts.scope || ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']);
if (typeof config === 'string') {
config = require(path.resolve(config));
}
pattern.push('!grunt', '!grunt-cli');
var names = scope.reduce(function (result, prop) {
var deps = config[prop] || [];
return result.concat(Array.isArray(deps) ? deps : Object.keys(deps));
}, []);
multimatch(names, pattern).forEach(grunt.loadNpmTasks);
};