@eggjs/tegg-loader
Version:
tegg default loader implement
39 lines • 3.02 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleLoader = void 0;
const globby_1 = __importDefault(require("globby"));
const node_path_1 = __importDefault(require("node:path"));
const LoaderUtil_1 = require("../LoaderUtil");
const LoaderFactory_1 = require("../LoaderFactory");
class ModuleLoader {
constructor(moduleDir) {
this.moduleDir = moduleDir;
}
load() {
// optimise for EggModuleLoader
if (this.protoClazzList) {
return this.protoClazzList;
}
const protoClassList = [];
const filePattern = LoaderUtil_1.LoaderUtil.filePattern();
const files = globby_1.default.sync(filePattern, { cwd: this.moduleDir });
for (const file of files) {
const realPath = node_path_1.default.join(this.moduleDir, file);
const fileClazzList = LoaderUtil_1.LoaderUtil.loadFile(realPath);
for (const clazz of fileClazzList) {
protoClassList.push(clazz);
}
}
this.protoClazzList = Array.from(new Set(protoClassList));
return this.protoClazzList;
}
static createModuleLoader(path) {
return new ModuleLoader(path);
}
}
exports.ModuleLoader = ModuleLoader;
LoaderFactory_1.LoaderFactory.registerLoader('MODULE', ModuleLoader.createModuleLoader);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvTW9kdWxlTG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QiwwREFBNkI7QUFDN0IsOENBQTJDO0FBRTNDLG9EQUFpRDtBQUVqRCxNQUFhLFlBQVk7SUFJdkIsWUFBWSxTQUFpQjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSTtRQUNGLCtCQUErQjtRQUMvQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDN0IsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUF3QixFQUFFLENBQUM7UUFDL0MsTUFBTSxXQUFXLEdBQUcsdUJBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU3QyxNQUFNLEtBQUssR0FBRyxnQkFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEUsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pELE1BQU0sYUFBYSxHQUFHLHVCQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3BDLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBL0JELG9DQStCQztBQUVELDZCQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQyJ9