Added Gulp.js for compiling SCSS stylesheets
This commit is contained in:
76
node_modules/matchdep/lib/matchdep.js
generated
vendored
Normal file
76
node_modules/matchdep/lib/matchdep.js
generated
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* matchdep
|
||||
* https://github.com/tkellen/node-matchdep
|
||||
*
|
||||
* Copyright (c) 2012 Tyler Kellen
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var micromatch = require('micromatch');
|
||||
var findup = require('findup-sync');
|
||||
var resolve = require('resolve').sync;
|
||||
var stackTrace = require('stack-trace');
|
||||
var path = require('path');
|
||||
|
||||
// export object
|
||||
var matchdep = module.exports = {};
|
||||
|
||||
// Ensure configuration has the correct properties.
|
||||
function loadConfig(config, props) {
|
||||
// The calling module's path. Unfortunately, because modules are cached,
|
||||
// module.parent is the FIRST calling module parent, not necessarily the
|
||||
// current one.
|
||||
var callerPath = path.dirname(stackTrace.get(loadConfig)[1].getFileName());
|
||||
|
||||
// If no config defined, resolve to nearest package.json to the calling lib. If not found, throw an error.
|
||||
if (config == null) {
|
||||
config = findup('package.json', {cwd: callerPath});
|
||||
if (config == null) {
|
||||
throw new Error('No package.json found.');
|
||||
}
|
||||
}
|
||||
// If filename was specified with no path parts, make the path absolute so
|
||||
// that resolve doesn't look in node_module directories for it.
|
||||
else if (typeof config === 'string' && !/[\\\/]/.test(config)) {
|
||||
config = path.join(callerPath, config);
|
||||
}
|
||||
|
||||
// If package is a string, try to require it.
|
||||
if (typeof config === 'string') {
|
||||
config = require(resolve(config, {basedir: callerPath}));
|
||||
}
|
||||
|
||||
// If config is not an object yet, something is amiss.
|
||||
if (typeof config !== 'object') {
|
||||
throw new Error('Invalid configuration specified.');
|
||||
}
|
||||
|
||||
// For all specified props, populate result object.
|
||||
var result = {};
|
||||
props.forEach(function(prop) {
|
||||
result[prop] = config[prop] ? Object.keys(config[prop]) : [];
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
// What config properties should each method search?
|
||||
var methods = {
|
||||
filter: ['dependencies'],
|
||||
filterDev: ['devDependencies'],
|
||||
filterPeer: ['peerDependencies'],
|
||||
filterAll: ['dependencies', 'devDependencies', 'peerDependencies'],
|
||||
};
|
||||
|
||||
// Dynamically generate methods.
|
||||
Object.keys(methods).forEach(function(method) {
|
||||
var props = methods[method];
|
||||
matchdep[method] = function(pattern, config) {
|
||||
config = loadConfig(config, props);
|
||||
var search = props.reduce(function(result, prop) {
|
||||
return result.concat(config[prop]);
|
||||
}, []);
|
||||
return micromatch(search, pattern);
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user