35 lines
717 B
JavaScript
35 lines
717 B
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Dependencies
|
|
*/
|
|
const glob = require('glob');
|
|
|
|
/**
|
|
* Async wrapper for glob
|
|
*/
|
|
module.exports = function globAsync(pattern, ignore, allowEmptyPaths, cfg) {
|
|
|
|
//Prepare glob config
|
|
cfg = Object.assign({ignore}, cfg, {nodir: true});
|
|
|
|
//Return promise
|
|
return new Promise((resolve, reject) => {
|
|
glob(pattern, cfg, (error, files) => {
|
|
|
|
//istanbul ignore if: hard to make glob error
|
|
if (error) {
|
|
return reject(error);
|
|
}
|
|
|
|
//Error if no files match, unless allowed
|
|
if (!allowEmptyPaths && files.length === 0) {
|
|
return reject(new Error('No files match the pattern: ' + pattern));
|
|
}
|
|
|
|
//Resolve
|
|
resolve(files);
|
|
});
|
|
});
|
|
};
|