@eggjs/tegg-plugin
Version:
module plugin for egg
20 lines • 2.04 kB
JavaScript
import { PrototypeUtil, QualifierUtil, ConfigSourceQualifier, ConfigSourceQualifierAttribute, } from '@eggjs/tegg';
/**
* Copy from standalone/src/ConfigSourceLoadUnitHook
* Hook for inject moduleConfig.
* Add default qualifier value is current module name.
*/
export class ConfigSourceLoadUnitHook {
async preCreate(ctx, loadUnit) {
const classList = await ctx.loader.load();
for (const clazz of classList) {
const injectObjects = PrototypeUtil.getInjectObjects(clazz);
const moduleConfigObject = injectObjects.find(t => t.objName === 'moduleConfig');
const configSourceQualifier = QualifierUtil.getProperQualifier(clazz, 'moduleConfig', ConfigSourceQualifierAttribute);
if (moduleConfigObject && !configSourceQualifier) {
ConfigSourceQualifier(loadUnit.name)(clazz.prototype, moduleConfigObject.refName);
}
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU291cmNlTG9hZFVuaXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29uZmlnU291cmNlTG9hZFVuaXRIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSxhQUFhLENBQUM7QUFFckI7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUE2QixFQUFFLFFBQWtCO1FBQy9ELE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsOEJBQThCLENBQUMsQ0FBQztZQUN0SCxJQUFJLGtCQUFrQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDakQscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==