Comparing version 3.0.0 to 3.1.0-beta.0
@@ -19,4 +19,12 @@ /// <reference types="node" /> | ||
private loader; | ||
protected extends: { | ||
app: null; | ||
context: null; | ||
request: null; | ||
response: null; | ||
}; | ||
constructor(options?: Partial<IAstroboyOptions>); | ||
run(): Promise<Astroboy<IAstroboyFrameworkDefine>>; | ||
initAe(): Promise<void>; | ||
handleCtx(ctx: any): Promise<void>; | ||
protected init(): Promise<void>; | ||
@@ -23,0 +31,0 @@ private start; |
@@ -7,2 +7,5 @@ "use strict"; | ||
const BaseClass_1 = require("./base/BaseClass"); | ||
const completeAssign = require('complete-assign'); | ||
const mockKoa_1 = require("../core/lib/mockKoa"); | ||
const compose = require("koa-compose"); | ||
/** | ||
@@ -19,2 +22,8 @@ * ## Astroboy Framework | ||
super(); | ||
this.extends = { | ||
app: null, | ||
context: null, | ||
request: null, | ||
response: null, | ||
}; | ||
options.NODE_ENV = | ||
@@ -36,2 +45,25 @@ process.env.APPLICATION_STANDARD_ENV || process.env.NODE_ENV || options.NODE_ENV || 'development'; | ||
} | ||
async initAe() { | ||
this.app = new Koa(); | ||
this.app.env = this.options.NODE_ENV; | ||
this.app.proxy = this.options.PROXY; | ||
this.app.MODE_AE = this.options.MODE_AE; | ||
this.app.NODE_ENV = this.options.NODE_ENV; | ||
this.app.ROOT_PATH = this.options.ROOT_PATH; | ||
this.app.ROOT_NAME = path.basename(this.options.ROOT_PATH); | ||
this.loader = new CoreLoader_1.CoreLoader({ | ||
astroboy: this, | ||
app: this.app, | ||
}); | ||
await this.loader.load(); | ||
completeAssign(mockKoa_1.application, this.app); | ||
} | ||
handleCtx(ctx) { | ||
var _a, _b, _c, _d; | ||
Object.setPrototypeOf(ctx.app, (this.extends.app = (_a = this.extends.app) !== null && _a !== void 0 ? _a : Object.setPrototypeOf(mockKoa_1.application, Object.getPrototypeOf(ctx.app)))); | ||
Object.setPrototypeOf(ctx.request, (this.extends.request = (_b = this.extends.request) !== null && _b !== void 0 ? _b : Object.setPrototypeOf(mockKoa_1.request, Object.getPrototypeOf(ctx.request)))); | ||
Object.setPrototypeOf(ctx.response, (this.extends.response = (_c = this.extends.response) !== null && _c !== void 0 ? _c : Object.setPrototypeOf(mockKoa_1.response, Object.getPrototypeOf(ctx.response)))); | ||
Object.setPrototypeOf(ctx, (this.extends.context = (_d = this.extends.context) !== null && _d !== void 0 ? _d : Object.setPrototypeOf(mockKoa_1.context, Object.getPrototypeOf(ctx)))); | ||
return compose(this.loader.middlewareList)(ctx); | ||
} | ||
async init() { | ||
@@ -38,0 +70,0 @@ this.app = new Koa(); |
import { IInnerApplication, PureObject, IDir, PriorityDefine as IPriority, IDefaultLoaders, NormalizedMiddleware, ICoreLoaderOptions } from '../definitions/core'; | ||
import { Loader } from './Loader'; | ||
import { Middleware } from 'koa'; | ||
/** | ||
@@ -23,2 +24,3 @@ * ## Core Loader | ||
protected NODE_ENV: string; | ||
middlewareList: Middleware[]; | ||
get defaultPatterns(): IDefaultLoaders; | ||
@@ -25,0 +27,0 @@ constructor(options?: Partial<ICoreLoaderOptions<F, A>>); |
@@ -23,2 +23,3 @@ "use strict"; | ||
super(options); | ||
this.middlewareList = []; | ||
this.options = options || {}; | ||
@@ -253,2 +254,3 @@ this.astroboy = this.options.astroboy; | ||
const middlewares = app.middlewares; | ||
const self = this; | ||
app.middlewareQueue.forEach(item => { | ||
@@ -263,2 +265,3 @@ if (middlewares[item.name]) { | ||
app.use(fn); | ||
self.middlewareList.push(fn); | ||
} | ||
@@ -265,0 +268,0 @@ } |
@@ -45,2 +45,3 @@ import Koa from 'koa'; | ||
NODE_ENV: string; | ||
MODE_AE: boolean; | ||
libs: PureObject<any>; | ||
@@ -70,2 +71,3 @@ controllers: PureObject<PureObject<IConstructor<any>>>; | ||
PROXY: boolean; | ||
MODE_AE?: boolean; | ||
} | ||
@@ -72,0 +74,0 @@ export interface ILoaderOptions<F extends PureObject, A extends IBaseApplication> { |
@@ -9,2 +9,3 @@ "use strict"; | ||
const completeAssign = require('complete-assign'); | ||
const mockKoa_1 = require("../core/lib/mockKoa"); | ||
class AstroboyExtendLoader extends Loader_1.Loader { | ||
@@ -15,3 +16,8 @@ async load() { | ||
applicationEntries.forEach(entry => { | ||
completeAssign(applicationProto, require(entry)); | ||
if (this.app.MODE_AE) { | ||
completeAssign(this.app, require(entry)); | ||
} | ||
else { | ||
completeAssign(applicationProto, require(entry)); | ||
} | ||
}); | ||
@@ -21,3 +27,8 @@ // context extend | ||
contextEntries.forEach(entry => { | ||
completeAssign(contextProto, require(entry)); | ||
if (this.app.MODE_AE) { | ||
completeAssign(mockKoa_1.context, require(entry)); | ||
} | ||
else { | ||
completeAssign(contextProto, require(entry)); | ||
} | ||
}); | ||
@@ -27,3 +38,8 @@ // request extend | ||
requestEntries.forEach(entry => { | ||
completeAssign(requestProto, require(entry)); | ||
if (this.app.MODE_AE) { | ||
completeAssign(mockKoa_1.request, require(entry)); | ||
} | ||
else { | ||
completeAssign(requestProto, require(entry)); | ||
} | ||
}); | ||
@@ -33,3 +49,8 @@ // response extend | ||
responseEntries.forEach(entry => { | ||
completeAssign(responseProto, require(entry)); | ||
if (this.app.MODE_AE) { | ||
completeAssign(mockKoa_1.response, require(entry)); | ||
} | ||
else { | ||
completeAssign(responseProto, require(entry)); | ||
} | ||
}); | ||
@@ -36,0 +57,0 @@ // controller extend |
{ | ||
"name": "astroboy", | ||
"version": "3.0.0", | ||
"version": "3.1.0-beta.0", | ||
"description": "Astroboy(阿童木)is a Nodejs SFB(Separation of Front and Back ends) framework, built on koa2.", | ||
@@ -22,2 +22,3 @@ "main": "index.js", | ||
"@types/koa": "^2.0.46", | ||
"@types/koa-compose": "^3.2.5", | ||
"@types/lodash": "^4.14.123", | ||
@@ -24,0 +25,0 @@ "ajv": "^6.12.6", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
163426
173
2979
18
2
39
+ Added@types/koa-compose@^3.2.5