import { readdir } from "fs/promises"; import { join } from "path"; export async function requireDirectory( directory: string, ignores: string[] = [], ): Promise { 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, ), ); }