UNPKG

@visulima/fs

Version:

Human friendly file system utilities for Node.js

17 lines (14 loc) 736 B
const globToRegExp = (glob) => { const reString = glob.replace(/\.\*/g, ".([^/]*)").replace(/\*\*/g, "(.*)").replace(/(?<!\.)\*(?!\*)/g, "([^/]*)").replace(/\?/g, "[^/]").replace(/\.(?!\*)/g, String.raw`\.`).replace(/\{/g, "(").replace(/\}/g, ")").replace(/,/g, "|").replace(/\[!(.*?)\]/g, "[^$1]"); return new RegExp(`^${reString}$`); }; const walkInclude = (path, extensions, match, skip) => { if (Array.isArray(extensions) && extensions.length > 0 && !extensions.some((extension) => path.endsWith(extension))) { return false; } if (match && !match.some((pattern) => pattern.test(path))) { return false; } return !skip?.some((pattern) => pattern.test(path)); }; export { globToRegExp as g, walkInclude as w };