mirror of
https://github.com/github/codeql-action.git
synced 2026-10-22 05:03:53 +00:00
42 lines
1.1 KiB
JavaScript
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;
|
|
}; |