yaejunyang/packages/utils/requireDirectory.ts
2026-02-09 18:31:56 +00:00

13 lines
604 B
TypeScript

import { readdirSync } from "fs";
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 requireFiles.map(file => require(join(directory, file)).default as T);
}
export function requireDirectorySync<T>(directory: string): T[] {
const requireFiles = readdirSync(directory).filter(file => file.endsWith(".js"));
return requireFiles.map(file => require(join(directory, file)).default as T).filter(x=>x);
}