UNPKG

@nestjs/graphql

Version:

Nest - modern, fast, powerful node.js web framework (@graphql)

23 lines (22 loc) 882 B
import { isAbsolute, win32 } from 'path'; import { glob } from 'tinyglobby'; export 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) => glob([pattern, ...negativePatterns], { ...globOptions, absolute: isAbsoluteGlob(pattern), }))); return [...new Set(matches.flat())]; } function isNegativePattern(pattern) { return pattern[0] === '!' && pattern[1] !== '('; } function isAbsoluteGlob(pattern) { return isAbsolute(pattern) || win32.isAbsolute(pattern); }