16 lines
441 B
TypeScript
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,
|
|
),
|
|
);
|
|
}
|