UNPKG

@busy-hour/blaze-types

Version:

<h1 align='center'>🔥 Blaze Types</h1> <div align='center'> An event driven framework for 🔥 Hono.js </div>

54 lines (53 loc) • 1.48 kB
// src/lib/service-loader.ts import fs from "node:fs"; import path from "node:path"; import { EXTENSION } from "../utils/constant.js"; import { tsModule } from "../utils/module.js"; function getServicesPaths() { const rootPath = tsModule.getRootPath(); const { servicePaths } = tsModule.getConfig(); return servicePaths.map((p) => path.join(rootPath, p)); } function readServiceDir(dirPath) { const infos = fs.readdirSync(dirPath); return infos.map((info) => { let finalPath = path.join(dirPath, info); if (info.match(EXTENSION)) { return finalPath; } if (fs.existsSync(path.join(finalPath, "index.ts"))) { finalPath = path.join(finalPath, "index.ts"); } else { finalPath = path.join(finalPath, "index.js"); } return finalPath; }); } function getServiceInformation(servicePath) { try { const relativePath = path.relative( tsModule.getOutputPath(), path.dirname(servicePath) ); let fileName = ""; if (fs.lstatSync(servicePath).isDirectory()) { fileName = path.basename(servicePath); } else { fileName = path.basename(path.join(servicePath, "..")); } fileName = fileName.replace(/\.|-/g, "_"); return { importPath: relativePath, fileName }; } catch (err) { tsModule.logger(`Failed to load service: ${servicePath}`); tsModule.logger(err?.message); return null; } } export { getServiceInformation, getServicesPaths, readServiceDir };