Files
pnpm/cache/api/src/cacheList.ts
Zoltan Kochan 5d5818e44f style: enforce node: protocol for builtin imports (#10951)
Add n/prefer-node-protocol rule and autofix all bare builtin imports
to use the node: prefix. Simplify the simple-import-sort builtins
pattern to just ^node: since all imports now use the prefix.
2026-03-13 07:59:51 +01:00

24 lines
965 B
TypeScript

import fs from 'node:fs'
import getRegistryName from 'encode-registry'
import { glob } from 'tinyglobby'
export async function cacheListRegistries (opts: { cacheDir: string, registry?: string, registries?: boolean }): Promise<string> {
return fs.readdirSync(opts.cacheDir).sort().join('\n')
}
export async function cacheList (opts: { cacheDir: string, registry?: string, registries?: boolean }, filter: string[]): Promise<string> {
const metaFiles = await findMetadataFiles(opts, filter)
return metaFiles.sort().join('\n')
}
export async function findMetadataFiles (opts: { cacheDir: string, registry?: string }, filter: string[]): Promise<string[]> {
const prefix = opts.registry ? `${getRegistryName(opts.registry)}` : '*'
const patterns = filter.length ? filter.map((filter) => `${prefix}/${filter}.json`) : [`${prefix}/**`]
const metaFiles = await glob(patterns, {
cwd: opts.cacheDir,
expandDirectories: false,
})
return metaFiles
}