@nestjs/graphql
Version:
Nest - modern, fast, powerful node.js web framework (@graphql)
26 lines (25 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.globPaths = globPaths;
const path_1 = require("path");
const tinyglobby_1 = require("tinyglobby");
async function globPaths(patterns, options = {}) {
const patternsArray = Array.isArray(patterns) ? patterns : [patterns];
const negativePatterns = patternsArray.filter(isNegativePattern);
const positivePatterns = patternsArray.filter((pattern) => !isNegativePattern(pattern));
const globOptions = {
...options,
expandDirectories: false,
};
const matches = await Promise.all(positivePatterns.map((pattern) => (0, tinyglobby_1.glob)([pattern, ...negativePatterns], {
...globOptions,
absolute: isAbsoluteGlob(pattern),
})));
return [...new Set(matches.flat())];
}
function isNegativePattern(pattern) {
return pattern[0] === '!' && pattern[1] !== '(';
}
function isAbsoluteGlob(pattern) {
return (0, path_1.isAbsolute)(pattern) || path_1.win32.isAbsolute(pattern);
}