import { promises } from "fs"; import { join } from "path"; const { readdir, lstat } = promises; export async function* listAllFiles(p: string): AsyncGenerator { for (const entry of await readdir(p)) { const fullname = join(p, entry); if (await isdir(fullname)) { yield* listAllFiles(fullname); } else { yield fullname; } } } async function isdir(p: string): Promise { return (await lstat(p)).isDirectory(); }