Files
codeql-action/node_modules/glob-hash/lib/resolve-globs.js
2020-12-09 21:28:55 +01:00

42 lines
1.1 KiB
JavaScript

'use strict'
var async = require('async');
var filterPaths = require('./filter-paths');
var glob = require('glob');
var normalise = require('./normalise');
var q = require('q');
/**
* Resolves an array of globs to
* a sorted array of file paths.
*
* @param {Array} globs An array of globs.
* @return {Promise} A promise to resolve the globs.
*/
module.exports = function(globs) {
var deferred = q.defer();
var funcs = globs.map(function(g) {
return function(callback) {
glob(g, function(error, paths) {
if (error) {
callback(error);
} else {
filterPaths(
paths.map(normalise),
callback
);
}
});
}
});
async.parallel(funcs, function(error, files) {
if (error) {
deferred.reject(error);
} else {
deferred.resolve(
Array.prototype.concat.apply([], files)
);
}
});
return deferred.promise;
};