yaejunyang/packages/utils/requireDirectory.ts

13 lines
382 B
TypeScript

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