import { promises as fs } from "fs"; import { resolve } from "path"; export async function walkDir(dir: string): Promise { const entries = await fs.readdir(dir); let ret: string[] = []; for (const entry of entries) { if (entry.includes(".#")) { continue; } const fullpath = resolve(dir, entry); let info; try { // eslint-disable-next-line no-await-in-loop info = await fs.stat(fullpath); } catch (e) { console.error(e); return []; } if (info.isDirectory()) { // eslint-disable-next-line no-await-in-loop ret = [...ret, ...(await walkDir(fullpath))]; } else { ret = [...ret, fullpath]; } } return ret; }