@eggjs/tegg-config
Version:
module config plugin for egg
42 lines • 3.6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleScanner = void 0;
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
const path_1 = __importDefault(require("path"));
class ModuleScanner {
constructor(baseDir, readModuleOptions) {
this.baseDir = baseDir;
this.readModuleOptions = readModuleOptions;
}
/**
* - load module references from config or scan from baseDir
* - load framework module as optional module reference
*/
loadModuleReferences() {
var _a;
const moduleReferences = tegg_common_util_1.ModuleConfigUtil.readModuleReference(this.baseDir, this.readModuleOptions || {});
// eslint-disable-next-line @typescript-eslint/no-var-requires
const appPkg = require(path_1.default.join(this.baseDir, 'package.json'));
const framework = (_a = appPkg.egg) === null || _a === void 0 ? void 0 : _a.framework;
if (!framework) {
return tegg_common_util_1.ModuleConfigUtil.deduplicateModules(moduleReferences);
}
// eslint-disable-next-line @typescript-eslint/no-var-requires
const frameworkPkg = require.resolve(`${framework}/package.json`, {
paths: [this.baseDir],
});
const frameworkDir = path_1.default.dirname(frameworkPkg);
const optionalModuleReferences = tegg_common_util_1.ModuleConfigUtil.readModuleReference(frameworkDir, this.readModuleOptions || {});
// 合并所有模块引用并去重
const allModuleReferences = [
...moduleReferences,
...optionalModuleReferences.map(ref => ({ ...ref, optional: true })),
];
return tegg_common_util_1.ModuleConfigUtil.deduplicateModules(allModuleReferences);
}
}
exports.ModuleScanner = ModuleScanner;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1vZHVsZVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQXdHO0FBQ3hHLGdEQUF3QjtBQUV4QixNQUFhLGFBQWE7SUFJeEIsWUFBWSxPQUFlLEVBQUUsaUJBQTZDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9COztRQUNsQixNQUFNLGdCQUFnQixHQUFHLG1DQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLDhEQUE4RDtRQUM5RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxTQUFTLEdBQUcsTUFBQSxNQUFNLENBQUMsR0FBRywwQ0FBRSxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxtQ0FBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCw4REFBOEQ7UUFDOUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsZUFBZSxFQUFFO1lBQ2hFLEtBQUssRUFBRSxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUU7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxNQUFNLHdCQUF3QixHQUFHLG1DQUFnQixDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbEgsY0FBYztRQUNkLE1BQU0sbUJBQW1CLEdBQUc7WUFDMUIsR0FBRyxnQkFBZ0I7WUFDbkIsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDckUsQ0FBQztRQUVGLE9BQU8sbUNBQWdCLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUFwQ0Qsc0NBb0NDIn0=