UNPKG

tit

Version:

A simple api framework by use TypeScript & Node.js

55 lines 2.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMainDir = getMainDir; exports.getSourceRoot = getSourceRoot; exports.walkDirectory = walkDirectory; exports.newModule = newModule; const path_1 = __importDefault(require("path")); const process_1 = __importDefault(require("process")); const fs_1 = __importDefault(require("fs")); const app_root_path_1 = __importDefault(require("app-root-path")); function getMainDir() { const mainModule = require.main || process_1.default.mainModule; if (!mainModule) throw "Can't find main module"; return path_1.default.dirname(mainModule.filename); } function getSourceRoot() { return app_root_path_1.default.path; } function walkDirectory(dir) { let results = []; const list = fs_1.default.readdirSync(dir); list.forEach(function (file) { file = dir + '/' + file; const stat = fs_1.default.statSync(file); if (stat && stat.isDirectory()) { results = results.concat(walkDirectory(file)); } else { results.push(file); } }); return results; } function newModule(filepath, app) { const mod = module.require(filepath); if (mod.__esModule) { let modConstructor = mod.default; if (!modConstructor) { const name = Object.getOwnPropertyNames(mod).find((n) => (/controller$/ig.test(n))); if (!name) { throw new Error(`Can't load controller file [${filepath}]. Not found module constructor. Please check module has default export or Controller class like 'IndexController'`); } modConstructor = mod[name]; } return new modConstructor(app); } if (mod.constructor) return new mod(app); throw Error(`Invalid Module: ${filepath}`); } //# sourceMappingURL=util.js.map