astroboy
Version:
Astroboy(阿童木)is a Nodejs SFB(Separation of Front and Back ends) framework, built on koa2.
27 lines • 1.06 kB
JavaScript
;
const lodash = require("lodash");
const Loader_1 = require("../core/Loader");
const util_1 = require("../core/lib/util");
class AstroboyConfigLoader extends Loader_1.Loader {
load() {
let config = {};
this.globDirs(this.config.pattern || [], entries => {
config = entries.reduce((a, b) => {
let content = require(b);
// 配置文件支持两种写法:
// 1、返回一个 function,执行改方法返回一个对象
// 2、普通 JS 对象
if (lodash.isFunction(content)) {
return lodash.merge(a, content(this.app));
}
else if (lodash.isPlainObject(content)) {
return lodash.merge(a, content);
}
}, config);
});
this.app.config = config;
util_1.outputJsonSync(`${this.app.ROOT_PATH}/run/config.json`, config);
}
}
module.exports = AstroboyConfigLoader;
//# sourceMappingURL=AstroboyConfigLoader.js.map