UNPKG

@neodx/vfs

Version:

Simple virtual file system - working dir context, lazy changes, different modes, integrations and moreover

1 lines 3.41 kB
{"version":3,"file":"glob.cjs","sources":["../../../src/plugins/glob.ts"],"sourcesContent":["import { walkGlob, type WalkGlobCommonParams } from '@neodx/glob';\nimport { isTypeOfString } from '@neodx/std';\nimport type { BaseVfs } from '../core/types.ts';\nimport { createVfsPlugin } from '../create-vfs-plugin.ts';\nimport { createScanVfsCache, scanVfs, type ScanVfsParams } from './scan.ts';\n\nexport interface GlobPluginApi {\n glob(params: GlobVfsParams): Promise<string[]>;\n glob(glob: string | string[], params?: Omit<GlobVfsParams, 'glob'>): Promise<string[]>;\n}\n\nexport interface GlobVfsParams extends Pick<ScanVfsParams, 'maxDepth'>, WalkGlobCommonParams {\n glob: string | string[];\n}\n\nexport function glob() {\n return createVfsPlugin<GlobPluginApi>('glob', vfs => {\n async function globImpl(\n globOrParams: string | string[] | GlobVfsParams,\n params?: GlobVfsParams\n ) {\n return await globVfs(\n vfs,\n Array.isArray(globOrParams) || isTypeOfString(globOrParams)\n ? { ...params, glob: globOrParams }\n : globOrParams\n );\n }\n\n vfs.glob = globImpl;\n return vfs;\n });\n}\n\nexport async function globVfs(\n vfs: BaseVfs,\n { glob, ignore, timeout, signal, log = vfs.log.child('glob'), maxDepth }: GlobVfsParams\n) {\n const cache = createScanVfsCache();\n\n return await walkGlob(glob, {\n timeout,\n ignore,\n signal,\n log,\n async reader({ path, isIgnored, isMatched, signal }) {\n if (await vfs.isFile(path)) return isMatched(path) ? [''] : [];\n return await scanVfs(vfs, {\n path,\n cache,\n signal,\n maxDepth,\n filter: ({ relativePath }) => isMatched(relativePath),\n barrier: ({ relativePath }) => isIgnored(relativePath)\n });\n }\n });\n}\n"],"names":["glob","createVfsPlugin","vfs","globImpl","globOrParams","params","globVfs","Array","isArray","isTypeOfString","ignore","timeout","signal","log","child","maxDepth","cache","createScanVfsCache","walkGlob","reader","path","isIgnored","isMatched","isFile","scanVfs","filter","relativePath","barrier"],"mappings":";;;;;;;AAeO,SAASA,IAAAA,GAAAA;IACd,OAAOC,+BAAAA,CAA+B,QAAQC,CAAAA,GAAAA,GAAAA;QAC5C,eAAeC,QAAAA,CACbC,YAA+C,EAC/CC,MAAsB,EAAA;YAEtB,OAAO,MAAMC,QACXJ,GACAK,EAAAA,KAAAA,CAAMC,OAAO,CAACJ,YAAAA,CAAAA,IAAiBK,mBAAeL,YAC1C,CAAA,GAAA;AAAE,gBAAA,GAAGC,MAAM;gBAAEL,IAAMI,EAAAA,YAAAA;aACnBA,GAAAA,YAAAA,CAAAA,CAAAA;AAER,SAAA;AAEAF,QAAAA,GAAAA,CAAIF,IAAI,GAAGG,QAAAA,CAAAA;QACX,OAAOD,GAAAA,CAAAA;AACT,KAAA,CAAA,CAAA;AACF,CAAA;AAEO,eAAeI,QACpBJ,GAAY,EACZ,EAAEF,IAAI,EAAEU,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAEC,GAAAA,GAAMX,IAAIW,GAAG,CAACC,KAAK,CAAC,MAAA,CAAO,EAAEC,QAAQ,EAAiB,EAAA;AAEvF,IAAA,MAAMC,KAAQC,GAAAA,+BAAAA,EAAAA,CAAAA;IAEd,OAAO,MAAMC,gBAASlB,IAAM,EAAA;AAC1BW,QAAAA,OAAAA;AACAD,QAAAA,MAAAA;AACAE,QAAAA,MAAAA;AACAC,QAAAA,GAAAA;QACA,MAAMM,MAAAA,CAAAA,CAAO,EAAEC,IAAI,EAAEC,SAAS,EAAEC,SAAS,EAAEV,MAAM,EAAE,EAAA;AACjD,YAAA,IAAI,MAAMV,GAAIqB,CAAAA,MAAM,CAACH,IAAO,CAAA,EAAA,OAAOE,UAAUF,IAAQ,CAAA,GAAA;AAAC,gBAAA,EAAA;AAAG,aAAA,GAAG,EAAE,CAAA;YAC9D,OAAO,MAAMI,qBAAQtB,GAAK,EAAA;AACxBkB,gBAAAA,IAAAA;AACAJ,gBAAAA,KAAAA;AACAJ,gBAAAA,MAAAA;AACAG,gBAAAA,QAAAA;AACAU,gBAAAA,MAAAA,EAAQ,CAAC,EAAEC,YAAY,EAAE,GAAKJ,SAAUI,CAAAA,YAAAA,CAAAA;AACxCC,gBAAAA,OAAAA,EAAS,CAAC,EAAED,YAAY,EAAE,GAAKL,SAAUK,CAAAA,YAAAA,CAAAA;AAC3C,aAAA,CAAA,CAAA;AACF,SAAA;AACF,KAAA,CAAA,CAAA;AACF;;;;;"}