UNPKG

@sanity/cli

Version:

Sanity CLI tool for managing Sanity installations, managing plugins, schemas and datasets

27 lines (20 loc) 649 B
import fs from 'node:fs/promises' import path from 'node:path' export interface ReaddirItem { path: string isDir: boolean } export async function readdirRecursive(dir: string): Promise<ReaddirItem[]> { let content: ReaddirItem[] = [] const currentPath = path.resolve(dir) const dirContent = (await fs.readdir(currentPath)).map((item) => path.join(currentPath, item)) for (const subPath of dirContent) { const stat = await fs.stat(subPath) const isDir = stat.isDirectory() content.push({path: subPath, isDir}) if (isDir) { content = content.concat(await readdirRecursive(subPath)) } } return content }