Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
registerDecorator() {
// register handler for container
this.loader.registerHook(MidwayHandlerKey.CONFIG, key => {
return this.globalConfig[key];
});
this.loader.registerHook(MidwayHandlerKey.PLUGIN, (key, target) => {
const ctx = target[REQUEST_OBJ_CTX_KEY] || {};
return ctx[key];
});
this.loader.registerHook(MidwayHandlerKey.LOGGER, (key, target) => {
const ctx = target[REQUEST_OBJ_CTX_KEY] || {};
return ctx['logger'];
});
}
// 如果没有配置,默认就把扫描目录改到 /src or /dist
containerConfig.baseDir = this.baseDir;
}
// 在 super constructor 中会调用到getAppInfo,之后会被赋值
// 如果是typescript会加上 dist 或者 src 目录
this.containerLoader = new ContainerLoader({
baseDir: this.appDir,
isTsMode: this.isTsMode
});
this.containerLoader.initialize();
this.applicationContext.registerObject('appDir', this.appDir);
// 如果没有关闭autoLoad 则进行load
this.containerLoader.loadDirectory(containerConfig);
// register handler for container
this.containerLoader.registerHook(MidwayHandlerKey.CONFIG, (key: string) => {
return safelyGet(key, this.config);
});
this.containerLoader.registerHook(MidwayHandlerKey.PLUGIN, (key: string) => {
return this.app[key] || this.pluginContext.get(key);
});
this.containerLoader.registerHook(MidwayHandlerKey.LOGGER, (key: string) => {
if (this.app.getLogger) {
return this.app.getLogger(key);
}
return this.options.logger;
});
}