@tsed/platform-koa 7.0.0-beta.9 → 7.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage.json +6 -0
- package/jest.config.js +9 -0
- package/lib/cjs/components/PlatformKoa.js +75 -55
- package/lib/cjs/components/PlatformKoa.js.map +1 -1
- package/lib/cjs/index.js +0 -4
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/PlatformKoaSettings.js.map +1 -1
- package/lib/cjs/services/PlatformKoaHandler.js +6 -48
- package/lib/cjs/services/PlatformKoaHandler.js.map +1 -1
- package/lib/cjs/services/PlatformKoaRequest.js +8 -18
- package/lib/cjs/services/PlatformKoaRequest.js.map +1 -1
- package/lib/cjs/services/PlatformKoaResponse.js +3 -7
- package/lib/cjs/services/PlatformKoaResponse.js.map +1 -1
- package/lib/esm/components/PlatformKoa.js +76 -56
- package/lib/esm/components/PlatformKoa.js.map +1 -1
- package/lib/esm/index.js +0 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/PlatformKoaSettings.js.map +1 -1
- package/lib/esm/services/PlatformKoaHandler.js +7 -49
- package/lib/esm/services/PlatformKoaHandler.js.map +1 -1
- package/lib/esm/services/PlatformKoaRequest.js +8 -18
- package/lib/esm/services/PlatformKoaRequest.js.map +1 -1
- package/lib/esm/services/PlatformKoaResponse.js +3 -8
- package/lib/esm/services/PlatformKoaResponse.js.map +1 -1
- package/lib/types/components/PlatformKoa.d.ts +10 -17
- package/lib/types/index.d.ts +0 -4
- package/lib/types/interfaces/PlatformKoaSettings.d.ts +1 -1
- package/lib/types/services/PlatformKoaHandler.d.ts +2 -7
- package/lib/types/services/PlatformKoaRequest.d.ts +3 -6
- package/lib/types/services/PlatformKoaResponse.d.ts +2 -3
- package/package.json +25 -17
- package/readme.md +3 -2
- package/lib/cjs/decorators/caseSensitive.js +0 -30
- package/lib/cjs/decorators/caseSensitive.js.map +0 -1
- package/lib/cjs/decorators/routerSettings.js +0 -31
- package/lib/cjs/decorators/routerSettings.js.map +0 -1
- package/lib/cjs/decorators/strict.js +0 -31
- package/lib/cjs/decorators/strict.js.map +0 -1
- package/lib/cjs/middlewares/resourceNotFoundMiddleware.js +0 -20
- package/lib/cjs/middlewares/resourceNotFoundMiddleware.js.map +0 -1
- package/lib/esm/decorators/caseSensitive.js +0 -26
- package/lib/esm/decorators/caseSensitive.js.map +0 -1
- package/lib/esm/decorators/routerSettings.js +0 -27
- package/lib/esm/decorators/routerSettings.js.map +0 -1
- package/lib/esm/decorators/strict.js +0 -27
- package/lib/esm/decorators/strict.js.map +0 -1
- package/lib/esm/middlewares/resourceNotFoundMiddleware.js +0 -16
- package/lib/esm/middlewares/resourceNotFoundMiddleware.js.map +0 -1
- package/lib/types/decorators/caseSensitive.d.ts +0 -22
- package/lib/types/decorators/routerSettings.d.ts +0 -24
- package/lib/types/decorators/strict.d.ts +0 -23
- package/lib/types/middlewares/resourceNotFoundMiddleware.d.ts +0 -6
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import KoaRouter from "@koa/router";
|
|
2
|
-
import { createContext, PlatformApplication, PlatformBuilder, PlatformHandler, PlatformRequest, PlatformResponse } from "@tsed/common";
|
|
3
|
-
import { PlatformExceptions } from "@tsed/platform-exceptions";
|
|
2
|
+
import { createContext, PlatformApplication, PlatformBuilder, PlatformHandler, PlatformRequest, PlatformResponse, runInContext } from "@tsed/common";
|
|
4
3
|
import { isFunction } from "@tsed/core";
|
|
4
|
+
import { PlatformExceptions } from "@tsed/platform-exceptions";
|
|
5
5
|
import Koa from "koa";
|
|
6
|
-
import
|
|
7
|
-
import { PlatformKoaResponse } from "../services/PlatformKoaResponse.js";
|
|
8
|
-
import { PlatformKoaRequest } from "../services/PlatformKoaRequest.js";
|
|
9
|
-
import { PlatformKoaHandler } from "../services/PlatformKoaHandler.js";
|
|
10
|
-
import { getMulter } from "../utils/multer.js";
|
|
11
|
-
import { staticsMiddleware } from "../middlewares/staticsMiddleware.js";
|
|
6
|
+
import koaBodyParser from "koa-bodyparser";
|
|
12
7
|
// @ts-ignore
|
|
13
8
|
import koaQs from "koa-qs";
|
|
14
|
-
import
|
|
9
|
+
import { staticsMiddleware } from "../middlewares/staticsMiddleware.js";
|
|
10
|
+
import { PlatformKoaHandler } from "../services/PlatformKoaHandler.js";
|
|
11
|
+
import { PlatformKoaRequest } from "../services/PlatformKoaRequest.js";
|
|
12
|
+
import { PlatformKoaResponse } from "../services/PlatformKoaResponse.js";
|
|
13
|
+
import { getMulter } from "../utils/multer.js";
|
|
15
14
|
// @ts-ignore
|
|
16
15
|
KoaRouter.prototype.$$match = KoaRouter.prototype.match;
|
|
17
16
|
KoaRouter.prototype.match = function match(...args) {
|
|
@@ -28,22 +27,23 @@ KoaRouter.prototype.match = function match(...args) {
|
|
|
28
27
|
* @koa
|
|
29
28
|
*/
|
|
30
29
|
export class PlatformKoa {
|
|
30
|
+
injector;
|
|
31
|
+
providers = [
|
|
32
|
+
{
|
|
33
|
+
provide: PlatformResponse,
|
|
34
|
+
useClass: PlatformKoaResponse
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
provide: PlatformRequest,
|
|
38
|
+
useClass: PlatformKoaRequest
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
provide: PlatformHandler,
|
|
42
|
+
useClass: PlatformKoaHandler
|
|
43
|
+
}
|
|
44
|
+
];
|
|
31
45
|
constructor(injector) {
|
|
32
46
|
this.injector = injector;
|
|
33
|
-
this.providers = [
|
|
34
|
-
{
|
|
35
|
-
provide: PlatformResponse,
|
|
36
|
-
useClass: PlatformKoaResponse
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
provide: PlatformRequest,
|
|
40
|
-
useClass: PlatformKoaRequest
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
provide: PlatformHandler,
|
|
44
|
-
useClass: PlatformKoaHandler
|
|
45
|
-
}
|
|
46
|
-
];
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Create new serverless application. In this mode, the component scan are disabled.
|
|
@@ -68,33 +68,62 @@ export class PlatformKoa {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
onInit() {
|
|
71
|
-
const
|
|
72
|
-
const app = this.injector.get(PlatformApplication);
|
|
73
|
-
const listener = (error, ctx) => {
|
|
74
|
-
var _a;
|
|
75
|
-
(_a = injector.get(PlatformExceptions)) === null || _a === void 0 ? void 0 : _a.catch(error, ctx.request.$ctx);
|
|
76
|
-
};
|
|
71
|
+
const app = this.getPlatformApplication();
|
|
77
72
|
app.getApp().silent = true;
|
|
78
|
-
app.getApp().on("error", listener);
|
|
79
73
|
}
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
app.
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
mapLayers(layers) {
|
|
75
|
+
const { settings } = this.injector;
|
|
76
|
+
const app = this.getPlatformApplication();
|
|
77
|
+
const options = settings.get("koa.router", {});
|
|
78
|
+
const rawRouter = new KoaRouter(options);
|
|
79
|
+
layers.forEach((layer) => {
|
|
80
|
+
switch (layer.method) {
|
|
81
|
+
case "statics":
|
|
82
|
+
rawRouter.use(layer.path, this.statics(layer.path, layer.opts));
|
|
83
|
+
break;
|
|
84
|
+
default:
|
|
85
|
+
rawRouter[layer.method](...layer.getArgs());
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
app.getApp().use(rawRouter.routes()).use(rawRouter.allowedMethods());
|
|
89
|
+
}
|
|
90
|
+
mapHandler(handler, metadata) {
|
|
91
|
+
if (metadata.isRawMiddleware()) {
|
|
92
|
+
return handler;
|
|
93
|
+
}
|
|
94
|
+
return async (koaContext, next) => {
|
|
95
|
+
const { $ctx } = koaContext.request;
|
|
96
|
+
$ctx.next = next;
|
|
97
|
+
await handler($ctx);
|
|
98
|
+
};
|
|
85
99
|
}
|
|
86
100
|
useContext() {
|
|
87
|
-
const app = this.
|
|
88
|
-
const { logger } = this.injector;
|
|
89
|
-
logger.info("Mount app context");
|
|
101
|
+
const app = this.getPlatformApplication();
|
|
90
102
|
const invoke = createContext(this.injector);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
const platformExceptions = this.injector.get(PlatformExceptions);
|
|
104
|
+
this.injector.logger.debug("Mount app context");
|
|
105
|
+
app.use(async (koaContext, next) => {
|
|
106
|
+
const $ctx = await invoke({
|
|
107
|
+
request: koaContext.request,
|
|
108
|
+
response: koaContext.response,
|
|
109
|
+
koaContext
|
|
110
|
+
});
|
|
111
|
+
return runInContext($ctx, async () => {
|
|
112
|
+
try {
|
|
113
|
+
await $ctx.start();
|
|
114
|
+
await next();
|
|
115
|
+
const status = koaContext.status || 404;
|
|
116
|
+
if (status === 404 && !$ctx.isDone()) {
|
|
117
|
+
platformExceptions?.resourceNotFound($ctx);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
platformExceptions?.catch(error, $ctx);
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
await $ctx.finish();
|
|
125
|
+
}
|
|
96
126
|
});
|
|
97
|
-
return next();
|
|
98
127
|
});
|
|
99
128
|
return this;
|
|
100
129
|
}
|
|
@@ -108,18 +137,6 @@ export class PlatformKoa {
|
|
|
108
137
|
}
|
|
109
138
|
};
|
|
110
139
|
}
|
|
111
|
-
router(routerOptions = {}) {
|
|
112
|
-
var _a;
|
|
113
|
-
const { settings } = this.injector;
|
|
114
|
-
const options = Object.assign({}, ((_a = settings.koa) === null || _a === void 0 ? void 0 : _a.router) || {}, routerOptions);
|
|
115
|
-
const router = new KoaRouter(options);
|
|
116
|
-
return {
|
|
117
|
-
router,
|
|
118
|
-
callback() {
|
|
119
|
-
return [router.routes(), router.allowedMethods()];
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
140
|
multipart(options) {
|
|
124
141
|
return getMulter(options);
|
|
125
142
|
}
|
|
@@ -136,5 +153,8 @@ export class PlatformKoa {
|
|
|
136
153
|
}
|
|
137
154
|
return parser({ ...options, ...additionalOptions });
|
|
138
155
|
}
|
|
156
|
+
getPlatformApplication() {
|
|
157
|
+
return this.injector.get(PlatformApplication);
|
|
158
|
+
}
|
|
139
159
|
}
|
|
140
160
|
//# sourceMappingURL=PlatformKoa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformKoa.js","sourceRoot":"","sources":["../../../src/components/PlatformKoa.ts"],"names":[],"mappings":"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","sourcesContent":["import KoaRouter, {RouterOptions as KoaRouterOptions} from \"@koa/router\";\nimport {\n createContext,\n InjectorService,\n PlatformAdapter,\n PlatformApplication,\n PlatformBuilder,\n PlatformHandler,\n PlatformMulter,\n PlatformMulterSettings,\n PlatformRequest,\n PlatformResponse,\n PlatformStaticsOptions\n} from \"@tsed/common\";\nimport {PlatformExceptions} from \"@tsed/platform-exceptions\";\nimport {isFunction, Type} from \"@tsed/core\";\nimport Koa, {Context, Next} from \"koa\";\nimport {resourceNotFoundMiddleware} from \"../middlewares/resourceNotFoundMiddleware\";\nimport {PlatformKoaResponse} from \"../services/PlatformKoaResponse\";\nimport {PlatformKoaRequest} from \"../services/PlatformKoaRequest\";\nimport {PlatformKoaHandler} from \"../services/PlatformKoaHandler\";\nimport {getMulter} from \"../utils/multer\";\nimport {staticsMiddleware} from \"../middlewares/staticsMiddleware\";\nimport send from \"koa-send\";\n// @ts-ignore\nimport koaQs from \"koa-qs\";\nimport koaBodyParser, {Options} from \"koa-bodyparser\";\n\ndeclare global {\n namespace TsED {\n export interface Application extends Koa {}\n }\n\n namespace TsED {\n export interface Router extends KoaRouter {}\n\n export interface RouterOptions extends KoaRouterOptions {}\n\n export interface StaticsOptions extends send.SendOptions {}\n }\n}\n\n// @ts-ignore\nKoaRouter.prototype.$$match = KoaRouter.prototype.match;\nKoaRouter.prototype.match = function match(...args: any[]) {\n const matched = this.$$match(...args);\n if (matched) {\n if (matched.path.length) {\n matched.route = true;\n }\n }\n\n return matched;\n};\n\n/**\n * @platform\n * @koa\n */\nexport class PlatformKoa implements PlatformAdapter<Koa, KoaRouter> {\n readonly providers = [\n {\n provide: PlatformResponse,\n useClass: PlatformKoaResponse\n },\n {\n provide: PlatformRequest,\n useClass: PlatformKoaRequest\n },\n {\n provide: PlatformHandler,\n useClass: PlatformKoaHandler\n }\n ];\n\n constructor(private injector: InjectorService) {}\n\n /**\n * Create new serverless application. In this mode, the component scan are disabled.\n * @param module\n * @param settings\n */\n static create(module: Type<any>, settings: Partial<TsED.Configuration> = {}) {\n return PlatformBuilder.create<Koa, KoaRouter>(module, {\n ...settings,\n adapter: PlatformKoa\n });\n }\n\n /**\n * Bootstrap a server application\n * @param module\n * @param settings\n */\n static async bootstrap(module: Type<any>, settings: Partial<TsED.Configuration> = {}) {\n return PlatformBuilder.bootstrap<Koa, KoaRouter>(module, {\n ...settings,\n adapter: PlatformKoa\n });\n }\n\n onInit() {\n const injector = this.injector;\n const app = this.injector.get<PlatformApplication>(PlatformApplication)!;\n\n const listener: any = (error: any, ctx: Koa.Context) => {\n injector.get<PlatformExceptions>(PlatformExceptions)?.catch(error, ctx.request.$ctx);\n };\n\n app.getApp().silent = true;\n app.getApp().on(\"error\", listener);\n }\n\n useRouter(): this {\n const app = this.injector.get<PlatformApplication<Koa>>(PlatformApplication)!;\n\n app.getApp().use(resourceNotFoundMiddleware);\n app.getApp().use(app.getRouter().routes()).use(app.getRouter().allowedMethods());\n\n return this;\n }\n\n useContext(): this {\n const app = this.injector.get<PlatformApplication<Koa>>(PlatformApplication)!;\n const {logger} = this.injector;\n logger.info(\"Mount app context\");\n\n const invoke = createContext(this.injector);\n\n app.getApp().use(async (ctx: Context, next: Next) => {\n await invoke({\n request: ctx.request as any,\n response: ctx.response as any,\n ctx\n });\n\n return next();\n });\n\n return this;\n }\n\n app() {\n const app = this.injector.settings.get(\"koa.app\") || new Koa();\n koaQs(app, \"extended\");\n\n return {\n app,\n callback() {\n return app.callback();\n }\n };\n }\n\n router(routerOptions: any = {}) {\n const {settings} = this.injector;\n\n const options = Object.assign({}, settings.koa?.router || {}, routerOptions);\n const router = new KoaRouter(options) as any;\n\n return {\n router,\n callback() {\n return [router.routes(), router.allowedMethods()];\n }\n };\n }\n\n multipart(options: PlatformMulterSettings): PlatformMulter {\n return getMulter(options);\n }\n\n statics(endpoint: string, options: PlatformStaticsOptions) {\n return staticsMiddleware(options);\n }\n\n bodyParser(type: \"json\" | \"urlencoded\" | \"raw\" | \"text\", additionalOptions: any = {}): any {\n const opts = this.injector.settings.get(`koa.bodyParser`);\n let parser: any = koaBodyParser;\n\n let options: Options = {};\n\n if (isFunction(opts)) {\n parser = opts;\n options = {};\n }\n\n return parser({...options, ...additionalOptions});\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PlatformKoa.js","sourceRoot":"","sources":["../../../src/components/PlatformKoa.ts"],"names":[],"mappings":"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","sourcesContent":["import KoaRouter from \"@koa/router\";\nimport {\n createContext,\n InjectorService,\n PlatformAdapter,\n PlatformApplication,\n PlatformBuilder,\n PlatformHandler,\n PlatformMulter,\n PlatformMulterSettings,\n PlatformRequest,\n PlatformResponse,\n PlatformStaticsOptions,\n runInContext\n} from \"@tsed/common\";\nimport {isFunction, Type} from \"@tsed/core\";\nimport {PlatformExceptions} from \"@tsed/platform-exceptions\";\nimport {PlatformHandlerMetadata, PlatformLayer} from \"@tsed/platform-router\";\nimport Koa, {Context, Next} from \"koa\";\nimport koaBodyParser, {Options} from \"koa-bodyparser\";\n// @ts-ignore\nimport koaQs from \"koa-qs\";\nimport send from \"koa-send\";\nimport {staticsMiddleware} from \"../middlewares/staticsMiddleware\";\nimport {PlatformKoaHandler} from \"../services/PlatformKoaHandler\";\nimport {PlatformKoaRequest} from \"../services/PlatformKoaRequest\";\nimport {PlatformKoaResponse} from \"../services/PlatformKoaResponse\";\nimport {getMulter} from \"../utils/multer\";\n\ndeclare global {\n namespace TsED {\n export interface Application extends Koa {}\n }\n\n namespace TsED {\n export interface StaticsOptions extends send.SendOptions {}\n }\n}\n\n// @ts-ignore\nKoaRouter.prototype.$$match = KoaRouter.prototype.match;\nKoaRouter.prototype.match = function match(...args: any[]) {\n const matched = this.$$match(...args);\n if (matched) {\n if (matched.path.length) {\n matched.route = true;\n }\n }\n\n return matched;\n};\n\n/**\n * @platform\n * @koa\n */\nexport class PlatformKoa implements PlatformAdapter<Koa> {\n readonly providers = [\n {\n provide: PlatformResponse,\n useClass: PlatformKoaResponse\n },\n {\n provide: PlatformRequest,\n useClass: PlatformKoaRequest\n },\n {\n provide: PlatformHandler,\n useClass: PlatformKoaHandler\n }\n ];\n\n constructor(private injector: InjectorService) {}\n\n /**\n * Create new serverless application. In this mode, the component scan are disabled.\n * @param module\n * @param settings\n */\n static create(module: Type<any>, settings: Partial<TsED.Configuration> = {}) {\n return PlatformBuilder.create<Koa>(module, {\n ...settings,\n adapter: PlatformKoa\n });\n }\n\n /**\n * Bootstrap a server application\n * @param module\n * @param settings\n */\n static async bootstrap(module: Type<any>, settings: Partial<TsED.Configuration> = {}) {\n return PlatformBuilder.bootstrap<Koa>(module, {\n ...settings,\n adapter: PlatformKoa\n });\n }\n\n onInit() {\n const app = this.getPlatformApplication();\n\n app.getApp().silent = true;\n }\n\n mapLayers(layers: PlatformLayer[]) {\n const {settings} = this.injector;\n const app = this.getPlatformApplication();\n const options = settings.get(\"koa.router\", {});\n const rawRouter = new KoaRouter(options) as any;\n\n layers.forEach((layer) => {\n switch (layer.method) {\n case \"statics\":\n rawRouter.use(layer.path, this.statics(layer.path as string, layer.opts as any));\n break;\n\n default:\n rawRouter[layer.method](...layer.getArgs());\n }\n });\n\n app.getApp().use(rawRouter.routes()).use(rawRouter.allowedMethods());\n }\n\n mapHandler(handler: Function, metadata: PlatformHandlerMetadata) {\n if (metadata.isRawMiddleware()) {\n return handler;\n }\n\n return async (koaContext: Koa.Context, next: Koa.Next) => {\n const {$ctx} = koaContext.request;\n $ctx.next = next;\n\n await handler($ctx);\n };\n }\n\n useContext(): this {\n const app = this.getPlatformApplication();\n const invoke = createContext(this.injector);\n const platformExceptions = this.injector.get<PlatformExceptions>(PlatformExceptions);\n\n this.injector.logger.debug(\"Mount app context\");\n\n app.use(async (koaContext: Context, next: Next) => {\n const $ctx = await invoke({\n request: koaContext.request as any,\n response: koaContext.response as any,\n koaContext\n });\n\n return runInContext($ctx, async () => {\n try {\n await $ctx.start();\n await next();\n const status = koaContext.status || 404;\n\n if (status === 404 && !$ctx.isDone()) {\n platformExceptions?.resourceNotFound($ctx);\n }\n } catch (error) {\n platformExceptions?.catch(error, $ctx);\n } finally {\n await $ctx.finish();\n }\n });\n });\n\n return this;\n }\n\n app() {\n const app = this.injector.settings.get(\"koa.app\") || new Koa();\n koaQs(app, \"extended\");\n\n return {\n app,\n callback() {\n return app.callback();\n }\n };\n }\n\n multipart(options: PlatformMulterSettings): PlatformMulter {\n return getMulter(options);\n }\n\n statics(endpoint: string, options: PlatformStaticsOptions) {\n return staticsMiddleware(options);\n }\n\n bodyParser(type: \"json\" | \"urlencoded\" | \"raw\" | \"text\", additionalOptions: any = {}): any {\n const opts = this.injector.settings.get(`koa.bodyParser`);\n let parser: any = koaBodyParser;\n\n let options: Options = {};\n\n if (isFunction(opts)) {\n parser = opts;\n options = {};\n }\n\n return parser({...options, ...additionalOptions});\n }\n\n private getPlatformApplication() {\n return this.injector.get<PlatformApplication<Koa>>(PlatformApplication)!;\n }\n}\n"]}
|
package/lib/esm/index.js
CHANGED
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from "./exports.js";
|
|
5
5
|
export * from "./components/PlatformKoa.js";
|
|
6
|
-
export * from "./decorators/caseSensitive.js";
|
|
7
6
|
export * from "./decorators/ctx.js";
|
|
8
|
-
export * from "./decorators/routerSettings.js";
|
|
9
7
|
export * from "./decorators/state.js";
|
|
10
|
-
export * from "./decorators/strict.js";
|
|
11
8
|
export * from "./interfaces/PlatformKoaSettings.js";
|
|
12
9
|
export * from "./interfaces/interfaces.js";
|
|
13
|
-
export * from "./middlewares/resourceNotFoundMiddleware.js";
|
|
14
10
|
export * from "./middlewares/staticsMiddleware.js";
|
|
15
11
|
export * from "./services/PlatformKoaHandler.js";
|
|
16
12
|
export * from "./services/PlatformKoaRequest.js";
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./exports\";\nexport * from \"./components/PlatformKoa\";\nexport * from \"./decorators/ctx\";\nexport * from \"./decorators/state\";\nexport * from \"./interfaces/PlatformKoaSettings\";\nexport * from \"./interfaces/interfaces\";\nexport * from \"./middlewares/staticsMiddleware\";\nexport * from \"./services/PlatformKoaHandler\";\nexport * from \"./services/PlatformKoaRequest\";\nexport * from \"./services/PlatformKoaResponse\";\nexport * from \"./utils/multer\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformKoaSettings.js","sourceRoot":"","sources":["../../../src/interfaces/PlatformKoaSettings.ts"],"names":[],"mappings":"","sourcesContent":["import type {RouterOptions} from \"@koa/router\";\nimport type {Middleware} from \"koa\";\nimport type {Options} from \"koa-bodyparser\";\n\nexport interface PlatformKoaSettings {\n /**\n * Koa router options\n */\n router?: RouterOptions;\n /**\n * Body parser options\n * @param opts\n */\n bodyParser?: (opts?: Options) => Middleware | Options;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PlatformKoaSettings.js","sourceRoot":"","sources":["../../../src/interfaces/PlatformKoaSettings.ts"],"names":[],"mappings":"","sourcesContent":["import type {RouterOptions} from \"@koa/router\";\nimport type {Middleware} from \"koa\";\nimport type {Options} from \"koa-bodyparser\";\n\nexport interface PlatformKoaSettings {\n /**\n * Koa router options\n */\n router?: RouterOptions;\n /**\n * Body parser options\n * @param opts\n */\n bodyParser?: ((opts?: Options) => Middleware) | Options;\n}\n"]}
|
|
@@ -1,56 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PlatformHandler } from "@tsed/common";
|
|
2
2
|
import "./PlatformKoaRequest.js";
|
|
3
|
-
const OVERRIDE_TYPES = [HandlerType.ENDPOINT, HandlerType.MIDDLEWARE, HandlerType.ERR_MIDDLEWARE, HandlerType.CTX_FN];
|
|
4
3
|
export class PlatformKoaHandler extends PlatformHandler {
|
|
5
|
-
async flush(
|
|
6
|
-
if (
|
|
7
|
-
|
|
4
|
+
async flush($ctx) {
|
|
5
|
+
if ($ctx.error) {
|
|
6
|
+
throw $ctx.error;
|
|
8
7
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
createRawHandler(metadata) {
|
|
12
|
-
if (OVERRIDE_TYPES.includes(metadata.type)) {
|
|
13
|
-
const handler = this.compileHandler(metadata);
|
|
14
|
-
return async (ctx, next) => handler({ next, $ctx: ctx.request.$ctx });
|
|
15
|
-
}
|
|
16
|
-
return super.createRawHandler(metadata);
|
|
17
|
-
}
|
|
18
|
-
async onRequest(requestOptions) {
|
|
19
|
-
const { metadata, $ctx } = requestOptions;
|
|
20
|
-
if ($ctx.data instanceof Error) {
|
|
21
|
-
if (metadata.hasErrorParam) {
|
|
22
|
-
requestOptions.err = $ctx.data;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return this.onError($ctx.data, requestOptions);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return super.onRequest(requestOptions);
|
|
29
|
-
}
|
|
30
|
-
onError(error, requestOptions) {
|
|
31
|
-
const { next, $ctx, metadata } = requestOptions;
|
|
32
|
-
// istanbul ignore next
|
|
33
|
-
if ($ctx.isDone()) {
|
|
34
|
-
return;
|
|
8
|
+
if ($ctx.data === undefined && $ctx.getResponse().body) {
|
|
9
|
+
$ctx.data = $ctx.getResponse().body;
|
|
35
10
|
}
|
|
36
|
-
$ctx
|
|
37
|
-
if (!next || metadata.isFinal()) {
|
|
38
|
-
this.throwError(error, $ctx);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
return next();
|
|
42
|
-
}
|
|
43
|
-
async onCtxRequest(requestOptions) {
|
|
44
|
-
const { $ctx } = requestOptions;
|
|
45
|
-
try {
|
|
46
|
-
return await super.onCtxRequest(requestOptions);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
this.throwError(error, $ctx);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
throwError(error, $ctx) {
|
|
53
|
-
$ctx.getApp().emit("error", error, $ctx.getRequest().ctx);
|
|
11
|
+
return super.flush($ctx);
|
|
54
12
|
}
|
|
55
13
|
}
|
|
56
14
|
//# sourceMappingURL=PlatformKoaHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformKoaHandler.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,
|
|
1
|
+
{"version":3,"file":"PlatformKoaHandler.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,sBAAsB,CAAC;AAE9B,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAC9C,KAAK,CAAC,KAAK,CAAC,IAAqB;QACtC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,CAAC,KAAK,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC;SACrC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF","sourcesContent":["import {PlatformContext, PlatformHandler} from \"@tsed/common\";\nimport \"./PlatformKoaRequest\";\n\nexport class PlatformKoaHandler extends PlatformHandler {\n public async flush($ctx: PlatformContext) {\n if ($ctx.error) {\n throw $ctx.error;\n }\n\n if ($ctx.data === undefined && $ctx.getResponse().body) {\n $ctx.data = $ctx.getResponse().body;\n }\n\n return super.flush($ctx);\n }\n}\n"]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
var _PlatformKoaRequest_ctx;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
1
|
import "@koa/router";
|
|
4
2
|
import { PlatformRequest } from "@tsed/common";
|
|
5
3
|
/**
|
|
@@ -7,34 +5,26 @@ import { PlatformRequest } from "@tsed/common";
|
|
|
7
5
|
* @koa
|
|
8
6
|
*/
|
|
9
7
|
export class PlatformKoaRequest extends PlatformRequest {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
_PlatformKoaRequest_ctx.set(this, void 0);
|
|
13
|
-
__classPrivateFieldSet(this, _PlatformKoaRequest_ctx, this.raw.ctx, "f");
|
|
8
|
+
get ctx() {
|
|
9
|
+
return this.$ctx.event.koaContext;
|
|
14
10
|
}
|
|
15
11
|
get protocol() {
|
|
16
|
-
return
|
|
12
|
+
return this.ctx.request.protocol;
|
|
17
13
|
}
|
|
18
14
|
get host() {
|
|
19
|
-
return
|
|
15
|
+
return this.ctx.request.host;
|
|
20
16
|
}
|
|
21
17
|
get secure() {
|
|
22
|
-
return
|
|
18
|
+
return this.ctx.request.secure;
|
|
23
19
|
}
|
|
24
20
|
get cookies() {
|
|
25
|
-
return
|
|
21
|
+
return this.ctx.cookie || this.ctx.cookies;
|
|
26
22
|
}
|
|
27
23
|
get session() {
|
|
28
|
-
return
|
|
24
|
+
return this.ctx.session;
|
|
29
25
|
}
|
|
30
26
|
getReq() {
|
|
31
|
-
return this.
|
|
32
|
-
}
|
|
33
|
-
destroy() {
|
|
34
|
-
// @ts-ignore
|
|
35
|
-
__classPrivateFieldSet(this, _PlatformKoaRequest_ctx, null, "f");
|
|
36
|
-
return super.destroy();
|
|
27
|
+
return this.ctx.request.req;
|
|
37
28
|
}
|
|
38
29
|
}
|
|
39
|
-
_PlatformKoaRequest_ctx = new WeakMap();
|
|
40
30
|
//# sourceMappingURL=PlatformKoaRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformKoaRequest.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformKoaRequest.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaRequest.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAkB,eAAe,EAAC,MAAM,cAAc,CAAC;AAgB9D;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,eAA4B;IAClE,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAyB,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,CAAC;CACF","sourcesContent":["import \"@koa/router\";\nimport {PlatformContext, PlatformRequest} from \"@tsed/common\";\nimport Koa from \"koa\";\n\ndeclare module \"koa\" {\n export interface Request {\n id: string;\n $ctx: PlatformContext;\n }\n}\n\ndeclare global {\n namespace TsED {\n export interface Request extends Koa.Request {}\n }\n}\n\n/**\n * @platform\n * @koa\n */\nexport class PlatformKoaRequest extends PlatformRequest<Koa.Request> {\n get ctx(): Koa.Context {\n return this.$ctx.event.koaContext as Koa.Context;\n }\n\n get protocol(): string {\n return this.ctx.request.protocol;\n }\n\n get host(): string {\n return this.ctx.request.host;\n }\n\n get secure(): boolean {\n return this.ctx.request.secure;\n }\n\n get cookies(): {[p: string]: any} {\n return this.ctx.cookie || this.ctx.cookies;\n }\n\n get session(): any {\n return this.ctx.session;\n }\n\n getReq() {\n return this.ctx.request.req;\n }\n}\n"]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
var _PlatformKoaResponse_ctx;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
1
|
import { PlatformResponse } from "@tsed/common";
|
|
4
2
|
import { getStatusMessage } from "@tsed/schema";
|
|
5
3
|
import encodeUrl from "encodeurl";
|
|
@@ -8,16 +6,14 @@ import encodeUrl from "encodeurl";
|
|
|
8
6
|
* @koa
|
|
9
7
|
*/
|
|
10
8
|
export class PlatformKoaResponse extends PlatformResponse {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
_PlatformKoaResponse_ctx.set(this, void 0);
|
|
14
|
-
__classPrivateFieldSet(this, _PlatformKoaResponse_ctx, this.raw.ctx, "f");
|
|
9
|
+
get ctx() {
|
|
10
|
+
return this.raw.ctx;
|
|
15
11
|
}
|
|
16
12
|
get statusCode() {
|
|
17
13
|
return this.raw.status;
|
|
18
14
|
}
|
|
19
15
|
get locals() {
|
|
20
|
-
return
|
|
16
|
+
return this.ctx.state;
|
|
21
17
|
}
|
|
22
18
|
/**
|
|
23
19
|
* Return the Node.js response object
|
|
@@ -97,5 +93,4 @@ export class PlatformKoaResponse extends PlatformResponse {
|
|
|
97
93
|
return this;
|
|
98
94
|
}
|
|
99
95
|
}
|
|
100
|
-
_PlatformKoaResponse_ctx = new WeakMap();
|
|
101
96
|
//# sourceMappingURL=PlatformKoaResponse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformKoaResponse.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaResponse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformKoaResponse.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAG9E,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,SAAS,MAAM,WAAW,CAAC;AAQlC;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,gBAA8B;IACrE,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,SAAS;QACP,yBAAyB;QACzB,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,IAAS;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,GAAW;QAClC,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC;QACvB,sBAAsB;QACtB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC,CAAC;QAE1E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;YAClC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,sCAAsC;QACtC,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;SAChD;QAED,eAAe;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["import {IncomingEvent, PlatformContext, PlatformResponse} from \"@tsed/common\";\nimport {ServerResponse} from \"http\";\nimport Koa from \"koa\";\nimport {getStatusMessage} from \"@tsed/schema\";\nimport encodeUrl from \"encodeurl\";\n\ndeclare global {\n namespace TsED {\n export interface Response extends Koa.Response {}\n }\n}\n\n/**\n * @platform\n * @koa\n */\nexport class PlatformKoaResponse extends PlatformResponse<Koa.Response> {\n get ctx() {\n return this.raw.ctx;\n }\n\n get statusCode() {\n return this.raw.status;\n }\n\n get locals() {\n return this.ctx.state;\n }\n\n /**\n * Return the Node.js response object\n */\n getRes(): ServerResponse {\n return this.raw.res;\n }\n\n hasStatus() {\n // KOA set 404 by default\n return this.statusCode !== 404;\n }\n\n /**\n * Sets the HTTP status for the response.\n *\n * @param status\n */\n status(status: number) {\n this.raw.status = status;\n\n return this;\n }\n\n /**\n * Set `Content-Type` response header with `type` through `mime.lookup()`\n * when it does not contain \"/\", or set the Content-Type to `type` otherwise.\n *\n * Examples:\n *\n * res.type('.html');\n * res.type('html');\n * res.type('json');\n * res.type('application/json');\n * res.type('png');\n */\n contentType(contentType: string) {\n this.raw.type = contentType;\n\n return this;\n }\n\n getHeaders() {\n return this.raw.headers;\n }\n\n /**\n * Send any data to your consumer.\n *\n * This method accept a ReadableStream, a plain object, boolean, string, number, null and undefined data.\n * It choose the better way to send the data.\n *\n * @param data\n */\n body(data: any): this {\n this.raw.body = data;\n\n return this;\n }\n\n getBody(): any {\n return this.raw.body;\n }\n\n redirect(status: number, url: string): this {\n status = status || 302;\n // Set location header\n url = this.location(url).raw.get(\"Location\");\n\n this.body(`${getStatusMessage(status)}. Redirecting to ${url}`);\n this.status(status);\n this.setHeader(\"Content-Length\", Buffer.byteLength(this.raw.body as any));\n\n if (this.request.method === \"HEAD\") {\n this.getRes().end();\n } else {\n this.getRes().end(this.getBody());\n }\n\n return this;\n }\n\n location(location: string): this {\n // \"back\" is an alias for the referrer\n if (location === \"back\") {\n location = this.request.get(\"Referrer\") || \"/\";\n }\n\n // set location\n this.raw.set(\"Location\", encodeUrl(location));\n\n return this;\n }\n}\n"]}
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
/// <reference types="koa__router" />
|
|
2
|
-
import KoaRouter, { RouterOptions as KoaRouterOptions } from "@koa/router";
|
|
3
1
|
import { InjectorService, PlatformAdapter, PlatformBuilder, PlatformHandler, PlatformMulter, PlatformMulterSettings, PlatformRequest, PlatformResponse, PlatformStaticsOptions } from "@tsed/common";
|
|
4
2
|
import { Type } from "@tsed/core";
|
|
3
|
+
import { PlatformHandlerMetadata, PlatformLayer } from "@tsed/platform-router";
|
|
5
4
|
import Koa from "koa";
|
|
6
|
-
import { PlatformKoaResponse } from "../services/PlatformKoaResponse";
|
|
7
|
-
import { PlatformKoaRequest } from "../services/PlatformKoaRequest";
|
|
8
|
-
import { PlatformKoaHandler } from "../services/PlatformKoaHandler";
|
|
9
5
|
import send from "koa-send";
|
|
6
|
+
import { PlatformKoaHandler } from "../services/PlatformKoaHandler";
|
|
7
|
+
import { PlatformKoaRequest } from "../services/PlatformKoaRequest";
|
|
8
|
+
import { PlatformKoaResponse } from "../services/PlatformKoaResponse";
|
|
10
9
|
declare global {
|
|
11
10
|
namespace TsED {
|
|
12
11
|
interface Application extends Koa {
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
14
|
namespace TsED {
|
|
16
|
-
interface Router extends KoaRouter {
|
|
17
|
-
}
|
|
18
|
-
interface RouterOptions extends KoaRouterOptions {
|
|
19
|
-
}
|
|
20
15
|
interface StaticsOptions extends send.SendOptions {
|
|
21
16
|
}
|
|
22
17
|
}
|
|
@@ -25,7 +20,7 @@ declare global {
|
|
|
25
20
|
* @platform
|
|
26
21
|
* @koa
|
|
27
22
|
*/
|
|
28
|
-
export declare class PlatformKoa implements PlatformAdapter<Koa
|
|
23
|
+
export declare class PlatformKoa implements PlatformAdapter<Koa> {
|
|
29
24
|
private injector;
|
|
30
25
|
readonly providers: ({
|
|
31
26
|
provide: typeof PlatformResponse;
|
|
@@ -43,25 +38,23 @@ export declare class PlatformKoa implements PlatformAdapter<Koa, KoaRouter> {
|
|
|
43
38
|
* @param module
|
|
44
39
|
* @param settings
|
|
45
40
|
*/
|
|
46
|
-
static create(module: Type<any>, settings?: Partial<TsED.Configuration>): PlatformBuilder<Koa<Koa.DefaultState, Koa.DefaultContext
|
|
41
|
+
static create(module: Type<any>, settings?: Partial<TsED.Configuration>): PlatformBuilder<Koa<Koa.DefaultState, Koa.DefaultContext>>;
|
|
47
42
|
/**
|
|
48
43
|
* Bootstrap a server application
|
|
49
44
|
* @param module
|
|
50
45
|
* @param settings
|
|
51
46
|
*/
|
|
52
|
-
static bootstrap(module: Type<any>, settings?: Partial<TsED.Configuration>): Promise<PlatformBuilder<Koa<Koa.DefaultState, Koa.DefaultContext
|
|
47
|
+
static bootstrap(module: Type<any>, settings?: Partial<TsED.Configuration>): Promise<PlatformBuilder<Koa<Koa.DefaultState, Koa.DefaultContext>>>;
|
|
53
48
|
onInit(): void;
|
|
54
|
-
|
|
49
|
+
mapLayers(layers: PlatformLayer[]): void;
|
|
50
|
+
mapHandler(handler: Function, metadata: PlatformHandlerMetadata): Function;
|
|
55
51
|
useContext(): this;
|
|
56
52
|
app(): {
|
|
57
53
|
app: any;
|
|
58
54
|
callback(): any;
|
|
59
55
|
};
|
|
60
|
-
router(routerOptions?: any): {
|
|
61
|
-
router: any;
|
|
62
|
-
callback(): any[];
|
|
63
|
-
};
|
|
64
56
|
multipart(options: PlatformMulterSettings): PlatformMulter;
|
|
65
57
|
statics(endpoint: string, options: PlatformStaticsOptions): any;
|
|
66
58
|
bodyParser(type: "json" | "urlencoded" | "raw" | "text", additionalOptions?: any): any;
|
|
59
|
+
private getPlatformApplication;
|
|
67
60
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from "./exports";
|
|
5
5
|
export * from "./components/PlatformKoa";
|
|
6
|
-
export * from "./decorators/caseSensitive";
|
|
7
6
|
export * from "./decorators/ctx";
|
|
8
|
-
export * from "./decorators/routerSettings";
|
|
9
7
|
export * from "./decorators/state";
|
|
10
|
-
export * from "./decorators/strict";
|
|
11
8
|
export * from "./interfaces/PlatformKoaSettings";
|
|
12
9
|
export * from "./interfaces/interfaces";
|
|
13
|
-
export * from "./middlewares/resourceNotFoundMiddleware";
|
|
14
10
|
export * from "./middlewares/staticsMiddleware";
|
|
15
11
|
export * from "./services/PlatformKoaHandler";
|
|
16
12
|
export * from "./services/PlatformKoaRequest";
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PlatformContext, PlatformHandler } from "@tsed/common";
|
|
2
2
|
import "./PlatformKoaRequest";
|
|
3
3
|
export declare class PlatformKoaHandler extends PlatformHandler {
|
|
4
|
-
flush(
|
|
5
|
-
protected createRawHandler(metadata: HandlerMetadata): any;
|
|
6
|
-
protected onRequest(requestOptions: OnRequestOptions): Promise<any>;
|
|
7
|
-
protected onError(error: unknown, requestOptions: OnRequestOptions): any;
|
|
8
|
-
protected onCtxRequest(requestOptions: OnRequestOptions): Promise<any>;
|
|
9
|
-
protected throwError(error: any, $ctx: PlatformContext): void;
|
|
4
|
+
flush($ctx: PlatformContext): Promise<void>;
|
|
10
5
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import "@koa/router";
|
|
3
|
-
import {
|
|
4
|
-
import { IncomingMessage } from "http";
|
|
3
|
+
import { PlatformContext, PlatformRequest } from "@tsed/common";
|
|
5
4
|
import Koa from "koa";
|
|
6
5
|
declare module "koa" {
|
|
7
6
|
interface Request {
|
|
@@ -20,8 +19,7 @@ declare global {
|
|
|
20
19
|
* @koa
|
|
21
20
|
*/
|
|
22
21
|
export declare class PlatformKoaRequest extends PlatformRequest<Koa.Request> {
|
|
23
|
-
|
|
24
|
-
constructor(event: IncomingEvent, $ctx: PlatformContext);
|
|
22
|
+
get ctx(): Koa.Context;
|
|
25
23
|
get protocol(): string;
|
|
26
24
|
get host(): string;
|
|
27
25
|
get secure(): boolean;
|
|
@@ -29,6 +27,5 @@ export declare class PlatformKoaRequest extends PlatformRequest<Koa.Request> {
|
|
|
29
27
|
[p: string]: any;
|
|
30
28
|
};
|
|
31
29
|
get session(): any;
|
|
32
|
-
getReq(): IncomingMessage;
|
|
33
|
-
destroy(): void;
|
|
30
|
+
getReq(): import("http").IncomingMessage;
|
|
34
31
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { PlatformResponse } from "@tsed/common";
|
|
3
3
|
import { ServerResponse } from "http";
|
|
4
4
|
import Koa from "koa";
|
|
5
5
|
declare global {
|
|
@@ -13,8 +13,7 @@ declare global {
|
|
|
13
13
|
* @koa
|
|
14
14
|
*/
|
|
15
15
|
export declare class PlatformKoaResponse extends PlatformResponse<Koa.Response> {
|
|
16
|
-
|
|
17
|
-
constructor(event: IncomingEvent, $ctx: PlatformContext);
|
|
16
|
+
get ctx(): Koa.Context;
|
|
18
17
|
get statusCode(): number;
|
|
19
18
|
get locals(): Koa.DefaultState;
|
|
20
19
|
/**
|