aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/util/file-matcher.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/util/file-matcher.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/util/file-matcher.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/util/file-matcher.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/util/file-matcher.js
new file mode 100644
index 00000000..fc5dc25f
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/util/file-matcher.js
@@ -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
+};
+