Skip to main content
Module

x/dinar/lib/utils/AutoInject.ts

deno web framewrok maybe :<
Latest
File
import { path, process } from "../deps.ts";import { Path } from "../@types/types.ts";
const promises: Promise<void>[] = [];export const Utils = { async atuoInject(include?: Path[]) { const include_path = include ?? ["/"]; const __dirname = Deno.cwd(); try { for (const relative_path of include_path) { const abs_path = path.resolve(__dirname, relative_path); if ((await Deno.stat(abs_path)).isFile) { await this.DynamicImport(abs_path); } else { await this.RecursiveImport(abs_path); } } await Promise.all(promises); } catch (e) { console.log("not fount"); } },
async RecursiveImport(dir: Path) { const files = Deno.readDir(dir); for await (const file of files) { if (file.isDirectory) { await this.RecursiveImport(path.resolve(dir, file.name)); } else { await this.DynamicImport(path.resolve(dir, file.name)); } } },
async DynamicImport(file: Path) { const file_protocol = !process.platform.includes("win") ? "file:///" : "file:\\\\\\"; const s = file.split("."); const extension = s[s.length - 1]; const isTsFile = extension === "ts" || extension === "tsx"; if (!isTsFile) { return; } promises.push(import(`${file_protocol}${file}`)); },
async filterFile(include: (string | RegExp)[]) { const files = await Deno.readDir("./"); for await (const file of files) { } },};