2025-03-29 15:51:03 -04:00

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);
});
});
};