forked from enviPath/enviPy
Current Dev State
This commit is contained in:
76
static/js/ketcher2/node_modules/babel-istanbul/lib/util/file-matcher.js
generated
vendored
Normal file
76
static/js/ketcher2/node_modules/babel-istanbul/lib/util/file-matcher.js
generated
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
Copyright (c) 2012, Yahoo! Inc. All rights reserved.
|
||||
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
||||
*/
|
||||
|
||||
var async = require('async'),
|
||||
fileset = require('fileset'),
|
||||
fs = require('fs'),
|
||||
path = require('path'),
|
||||
seq = 0;
|
||||
|
||||
function filesFor(options, callback) {
|
||||
if (!callback && typeof options === 'function') {
|
||||
callback = options;
|
||||
options = null;
|
||||
}
|
||||
options = options || {};
|
||||
|
||||
var root = options.root,
|
||||
includes = options.includes,
|
||||
excludes = options.excludes,
|
||||
realpath = options.realpath,
|
||||
relative = options.relative,
|
||||
opts;
|
||||
|
||||
root = root || process.cwd();
|
||||
includes = includes && Array.isArray(includes) ? includes : [ '**/*.js' ];
|
||||
excludes = excludes && Array.isArray(excludes) ? excludes : [ '**/node_modules/**' ];
|
||||
|
||||
opts = { cwd: root, nodir: true };
|
||||
seq += 1;
|
||||
opts['x' + seq + new Date().getTime()] = true; //cache buster for minimatch cache bug
|
||||
fileset(includes.join(' '), excludes.join(' '), opts, function (err, files) {
|
||||
if (err) { return callback(err); }
|
||||
if (relative) { return callback(err, files); }
|
||||
|
||||
if (!realpath) {
|
||||
files = files.map(function (file) { return path.resolve(root, file); });
|
||||
return callback(err, files);
|
||||
}
|
||||
|
||||
var realPathCache = module.constructor._realpathCache || {};
|
||||
|
||||
async.map(files, function (file, done) {
|
||||
fs.realpath(path.resolve(root, file), realPathCache, done);
|
||||
}, callback);
|
||||
});
|
||||
}
|
||||
|
||||
function matcherFor(options, callback) {
|
||||
|
||||
if (!callback && typeof options === 'function') {
|
||||
callback = options;
|
||||
options = null;
|
||||
}
|
||||
options = options || {};
|
||||
options.relative = false; //force absolute paths
|
||||
options.realpath = true; //force real paths (to match Node.js module paths)
|
||||
|
||||
filesFor(options, function (err, files) {
|
||||
var fileMap = {},
|
||||
matchFn;
|
||||
if (err) { return callback(err); }
|
||||
files.forEach(function (file) { fileMap[file] = true; });
|
||||
|
||||
matchFn = function (file) { return fileMap[file]; };
|
||||
matchFn.files = Object.keys(fileMap);
|
||||
return callback(null, matchFn);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
filesFor: filesFor,
|
||||
matcherFor: matcherFor
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user