{"version":3,"file":"glob.js","names":[],"sources":["../src/glob.ts"],"sourcesContent":["import { type Stats, statSync } from 'node:fs'\nimport { join, relative, resolve } from 'node:path'\nimport picomatch from 'picomatch'\n\nexport function createIgnore(_root: string, pattern: string | string[] = []) {\n const paths = Array.isArray(pattern) ? pattern : [pattern]\n const root = _root.replace(/\\\\/g, '/')\n\n const globs = paths\n .flatMap((f) => {\n const resolvedPath = resolve(root, f)\n const relativePath = relative(root, resolvedPath).replace(/\\\\/g, '/')\n try {\n const isDirectory =\n !relativePath.includes('*') && statSync(resolvedPath).isDirectory()\n if (isDirectory) {\n return [relativePath, join(relativePath, '**/*').replace(/\\\\/g, '/')]\n }\n } catch {}\n return [relativePath]\n })\n .filter(Boolean)\n\n const matcher = picomatch(globs)\n\n return (path: string, _stats?: Stats) => {\n if (path.includes('node_modules')) {\n return true\n }\n const relativePath = relative(root, path).replace(/\\\\/g, '/')\n try {\n return (\n !!relativePath &&\n !matcher(relativePath) &&\n !(_stats ?? statSync(path)).isDirectory()\n )\n } catch {\n // do not ignore files that have been deleted as the watcher is iterating on them\n return false\n }\n }\n}\n"],"mappings":";;;;AAIA,SAAgB,aAAa,OAAe,UAA6B,CAAC,GAAG;CAC3E,MAAM,QAAQ,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;CACzD,MAAM,OAAO,MAAM,QAAQ,OAAO,GAAG;CAiBrC,MAAM,UAAU,UAfF,MACX,SAAS,MAAM;EACd,MAAM,eAAe,QAAQ,MAAM,CAAC;EACpC,MAAM,eAAe,SAAS,MAAM,YAAY,CAAC,CAAC,QAAQ,OAAO,GAAG;EACpE,IAAI;GAGF,IADE,CAAC,aAAa,SAAS,GAAG,KAAK,SAAS,YAAY,CAAC,CAAC,YAAY,GAElE,OAAO,CAAC,cAAc,KAAK,cAAc,MAAM,CAAC,CAAC,QAAQ,OAAO,GAAG,CAAC;EAExE,QAAQ,CAAC;EACT,OAAO,CAAC,YAAY;CACtB,CAAC,CAAC,CACD,OAAO,OAEoB,CAAC;CAE/B,QAAQ,MAAc,WAAmB;EACvC,IAAI,KAAK,SAAS,cAAc,GAC9B,OAAO;EAET,MAAM,eAAe,SAAS,MAAM,IAAI,CAAC,CAAC,QAAQ,OAAO,GAAG;EAC5D,IAAI;GACF,OACE,CAAC,CAAC,gBACF,CAAC,QAAQ,YAAY,KACrB,EAAE,UAAU,SAAS,IAAI,EAAA,CAAG,YAAY;EAE5C,QAAQ;GAEN,OAAO;EACT;CACF;AACF"}