yaejunyang/packages/utils/requireDirectory.ts
2026-05-21 18:21:38 +00:00

16 lines
441 B
TypeScript

import { readdir } from "fs/promises";
import { join } from "path";
export async function requireDirectory<T>(
directory: string,
ignores: string[] = [],
): Promise<T[]> {
const requireFiles = (await readdir(directory)).filter(
(file) => file.endsWith(".js") && !ignores.includes(file),
);
return await Promise.all(
requireFiles.map(
async (file) => (await import(join(directory, file))).default as T,
),
);
}