MCPcopy
hub / github.com/blitz-js/blitz / readdirRecursive

Function readdirRecursive

packages/generator/src/utils/readdir-recursive.ts:6–24  ·  view source on GitHub ↗
(root: string, filter?: Filter, dir = "")

Source from the content-addressed store, hash-verified

4type Filter = (name: string, dir: string) => boolean
5
6export async function readdirRecursive(root: string, filter?: Filter, dir = ""): Promise<string[]> {
7 const absoluteDir = path.resolve(root, dir)
8 const dirStats = await fs.stat(absoluteDir)
9
10 if (dirStats.isDirectory()) {
11 let entries = await fs.readdir(absoluteDir)
12
13 if (filter) {
14 entries = entries.filter((name) => filter(name, dir))
15 }
16
17 const recursiveList = await Promise.all(
18 entries.map((name) => readdirRecursive(root, filter, path.join(dir, name))),
19 )
20 return recursiveList.flat(Infinity) as string[]
21 } else {
22 return [dir]
23 }
24}

Callers 1

writeFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected