astroboy
Version:
Astroboy(阿童木)is a Nodejs SFB(Separation of Front and Back ends) framework, built on koa2.
60 lines • 2.38 kB
JavaScript
;
const Loader_1 = require("../core/Loader");
const BaseClass_1 = require("../core/base/BaseClass");
const requestProto = require('koa/lib/request');
const responseProto = require('koa/lib/response');
const contextProto = require('koa/lib/context');
const applicationProto = require('koa/lib/application').prototype;
const completeAssign = require('complete-assign');
const mockKoa_1 = require("../core/lib/mockKoa");
class AstroboyExtendLoader extends Loader_1.Loader {
async load() {
// application extend
const applicationEntries = await this.globDirs(this.config.applicationPattern || []);
applicationEntries.forEach(entry => {
if (this.app.MODE_AE) {
completeAssign(this.app, require(entry));
}
else {
completeAssign(applicationProto, require(entry));
}
});
// context extend
const contextEntries = await this.globDirs(this.config.contextPattern || []);
contextEntries.forEach(entry => {
if (this.app.MODE_AE) {
completeAssign(mockKoa_1.context, require(entry));
}
else {
completeAssign(contextProto, require(entry));
}
});
// request extend
const requestEntries = await this.globDirs(this.config.requestPattern || []);
requestEntries.forEach(entry => {
if (this.app.MODE_AE) {
completeAssign(mockKoa_1.request, require(entry));
}
else {
completeAssign(requestProto, require(entry));
}
});
// response extend
const responseEntries = await this.globDirs(this.config.responsePattern || []);
responseEntries.forEach(entry => {
if (this.app.MODE_AE) {
completeAssign(mockKoa_1.response, require(entry));
}
else {
completeAssign(responseProto, require(entry));
}
});
// controller extend
const controllerEntries = await this.globDirs(this.config.controllerPattern || []);
controllerEntries.forEach(entry => {
completeAssign(BaseClass_1.BaseClass.prototype, require(entry));
});
}
}
module.exports = AstroboyExtendLoader;
//# sourceMappingURL=AstroboyExtendLoader.js.map