sb-mig
Version:
CLI to rule the world. (and handle stuff related to Storyblok CMS)
24 lines (23 loc) • 853 B
JavaScript
import * as glob from "glob";
const resolvedGlobSync = glob.globSync ??
glob.sync ??
glob.default?.globSync ??
glob.default?.sync;
if (!resolvedGlobSync) {
throw new Error("Unable to resolve globSync from 'glob'. Please ensure a compatible glob version is installed.");
}
export const NESTED_NODE_MODULES_PATTERN = "**/node_modules/**/node_modules/**";
export const safeGlobSync = (pattern, options) => {
const ignore = options?.ignore
? Array.isArray(options.ignore)
? options.ignore
: [options.ignore]
: [];
const result = resolvedGlobSync(pattern, {
...options,
follow: options?.follow ?? true,
// Avoid traversing nested node_modules trees, which can explode memory usage.
ignore: [...ignore, NESTED_NODE_MODULES_PATTERN],
});
return result;
};