@tsed/platform-koa 7.0.0-alpha.1 → 7.0.0-beta.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.
Files changed (122) hide show
  1. package/lib/cjs/components/PlatformKoa.js +89 -0
  2. package/lib/cjs/components/PlatformKoa.js.map +1 -0
  3. package/lib/{decorators → cjs/decorators}/caseSensitive.js +1 -1
  4. package/lib/cjs/decorators/caseSensitive.js.map +1 -0
  5. package/lib/{decorators → cjs/decorators}/ctx.js +1 -1
  6. package/lib/cjs/decorators/ctx.js.map +1 -0
  7. package/lib/cjs/decorators/index.js +9 -0
  8. package/lib/cjs/decorators/index.js.map +1 -0
  9. package/lib/{decorators → cjs/decorators}/routerSettings.js +1 -1
  10. package/lib/cjs/decorators/routerSettings.js.map +1 -0
  11. package/lib/{decorators → cjs/decorators}/state.js +0 -0
  12. package/lib/cjs/decorators/state.js.map +1 -0
  13. package/lib/{decorators → cjs/decorators}/strict.js +1 -1
  14. package/lib/cjs/decorators/strict.js.map +1 -0
  15. package/lib/cjs/index.js +16 -0
  16. package/lib/cjs/index.js.map +1 -0
  17. package/lib/{interfaces → cjs/interfaces}/PlatformKoaSettings.js +0 -0
  18. package/lib/cjs/interfaces/PlatformKoaSettings.js.map +1 -0
  19. package/lib/{interfaces → cjs/interfaces}/index.js +1 -1
  20. package/lib/cjs/interfaces/index.js.map +1 -0
  21. package/lib/{middlewares → cjs/middlewares}/resourceNotFoundMiddleware.js +0 -0
  22. package/lib/cjs/middlewares/resourceNotFoundMiddleware.js.map +1 -0
  23. package/lib/{middlewares → cjs/middlewares}/staticsMiddleware.js +2 -2
  24. package/lib/cjs/middlewares/staticsMiddleware.js.map +1 -0
  25. package/lib/{services → cjs/services}/PlatformKoaApplication.js +5 -4
  26. package/lib/cjs/services/PlatformKoaApplication.js.map +1 -0
  27. package/lib/{services → cjs/services}/PlatformKoaHandler.js +0 -0
  28. package/lib/cjs/services/PlatformKoaHandler.js.map +1 -0
  29. package/lib/cjs/services/PlatformKoaRequest.js +44 -0
  30. package/lib/cjs/services/PlatformKoaRequest.js.map +1 -0
  31. package/lib/{services → cjs/services}/PlatformKoaResponse.js +8 -8
  32. package/lib/cjs/services/PlatformKoaResponse.js.map +1 -0
  33. package/lib/{services → cjs/services}/PlatformKoaRouter.js +7 -7
  34. package/lib/cjs/services/PlatformKoaRouter.js.map +1 -0
  35. package/lib/cjs/services/index.js +9 -0
  36. package/lib/cjs/services/index.js.map +1 -0
  37. package/lib/{utils → cjs/utils}/multer.js +1 -1
  38. package/lib/cjs/utils/multer.js.map +1 -0
  39. package/lib/esm/components/PlatformKoa.js +85 -0
  40. package/lib/esm/components/PlatformKoa.js.map +1 -0
  41. package/lib/esm/decorators/caseSensitive.js +26 -0
  42. package/lib/esm/decorators/caseSensitive.js.map +1 -0
  43. package/lib/esm/decorators/ctx.js +27 -0
  44. package/lib/esm/decorators/ctx.js.map +1 -0
  45. package/lib/esm/decorators/index.js +6 -0
  46. package/lib/esm/decorators/index.js.map +1 -0
  47. package/lib/esm/decorators/routerSettings.js +27 -0
  48. package/lib/esm/decorators/routerSettings.js.map +1 -0
  49. package/lib/esm/decorators/state.js +5 -0
  50. package/lib/esm/decorators/state.js.map +1 -0
  51. package/lib/esm/decorators/strict.js +27 -0
  52. package/lib/esm/decorators/strict.js.map +1 -0
  53. package/lib/esm/index.js +13 -0
  54. package/lib/esm/index.js.map +1 -0
  55. package/lib/esm/interfaces/PlatformKoaSettings.js +2 -0
  56. package/lib/esm/interfaces/PlatformKoaSettings.js.map +1 -0
  57. package/lib/esm/interfaces/index.js +2 -0
  58. package/lib/esm/interfaces/index.js.map +1 -0
  59. package/lib/esm/middlewares/resourceNotFoundMiddleware.js +16 -0
  60. package/lib/esm/middlewares/resourceNotFoundMiddleware.js.map +1 -0
  61. package/lib/esm/middlewares/staticsMiddleware.js +30 -0
  62. package/lib/esm/middlewares/staticsMiddleware.js.map +1 -0
  63. package/lib/esm/services/PlatformKoaApplication.js +29 -0
  64. package/lib/esm/services/PlatformKoaApplication.js.map +1 -0
  65. package/lib/esm/services/PlatformKoaHandler.js +56 -0
  66. package/lib/esm/services/PlatformKoaHandler.js.map +1 -0
  67. package/lib/esm/services/PlatformKoaRequest.js +40 -0
  68. package/lib/esm/services/PlatformKoaRequest.js.map +1 -0
  69. package/lib/esm/services/PlatformKoaResponse.js +101 -0
  70. package/lib/esm/services/PlatformKoaResponse.js.map +1 -0
  71. package/lib/esm/services/PlatformKoaRouter.js +42 -0
  72. package/lib/esm/services/PlatformKoaRouter.js.map +1 -0
  73. package/lib/esm/services/index.js +6 -0
  74. package/lib/esm/services/index.js.map +1 -0
  75. package/lib/esm/utils/multer.js +51 -0
  76. package/lib/esm/utils/multer.js.map +1 -0
  77. package/lib/types/components/PlatformKoa.d.ts +45 -0
  78. package/lib/{decorators → types/decorators}/caseSensitive.d.ts +0 -0
  79. package/lib/{decorators → types/decorators}/ctx.d.ts +0 -0
  80. package/lib/{decorators → types/decorators}/index.d.ts +0 -0
  81. package/lib/{decorators → types/decorators}/routerSettings.d.ts +0 -0
  82. package/lib/{decorators → types/decorators}/state.d.ts +0 -0
  83. package/lib/{decorators → types/decorators}/strict.d.ts +0 -0
  84. package/lib/{index.d.ts → types/index.d.ts} +0 -0
  85. package/lib/{interfaces → types/interfaces}/PlatformKoaSettings.d.ts +0 -0
  86. package/lib/{interfaces → types/interfaces}/index.d.ts +0 -0
  87. package/lib/{middlewares → types/middlewares}/resourceNotFoundMiddleware.d.ts +0 -0
  88. package/lib/{middlewares → types/middlewares}/staticsMiddleware.d.ts +0 -0
  89. package/lib/{services → types/services}/PlatformKoaApplication.d.ts +0 -0
  90. package/lib/{services → types/services}/PlatformKoaHandler.d.ts +0 -0
  91. package/lib/{services → types/services}/PlatformKoaRequest.d.ts +1 -1
  92. package/lib/{services → types/services}/PlatformKoaResponse.d.ts +2 -2
  93. package/lib/{services → types/services}/PlatformKoaRouter.d.ts +0 -0
  94. package/lib/{services → types/services}/index.d.ts +0 -0
  95. package/lib/{utils → types/utils}/multer.d.ts +0 -0
  96. package/package.json +35 -26
  97. package/tsconfig.compile.esm.json +23 -0
  98. package/lib/components/PlatformKoa.d.ts +0 -32
  99. package/lib/components/PlatformKoa.js +0 -65
  100. package/lib/components/PlatformKoa.js.map +0 -1
  101. package/lib/decorators/caseSensitive.js.map +0 -1
  102. package/lib/decorators/ctx.js.map +0 -1
  103. package/lib/decorators/index.js +0 -9
  104. package/lib/decorators/index.js.map +0 -1
  105. package/lib/decorators/routerSettings.js.map +0 -1
  106. package/lib/decorators/state.js.map +0 -1
  107. package/lib/decorators/strict.js.map +0 -1
  108. package/lib/index.js +0 -16
  109. package/lib/index.js.map +0 -1
  110. package/lib/interfaces/PlatformKoaSettings.js.map +0 -1
  111. package/lib/interfaces/index.js.map +0 -1
  112. package/lib/middlewares/resourceNotFoundMiddleware.js.map +0 -1
  113. package/lib/middlewares/staticsMiddleware.js.map +0 -1
  114. package/lib/services/PlatformKoaApplication.js.map +0 -1
  115. package/lib/services/PlatformKoaHandler.js.map +0 -1
  116. package/lib/services/PlatformKoaRequest.js +0 -44
  117. package/lib/services/PlatformKoaRequest.js.map +0 -1
  118. package/lib/services/PlatformKoaResponse.js.map +0 -1
  119. package/lib/services/PlatformKoaRouter.js.map +0 -1
  120. package/lib/services/index.js +0 -9
  121. package/lib/services/index.js.map +0 -1
  122. package/lib/utils/multer.js.map +0 -1
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatformKoa = void 0;
4
+ const common_1 = require("@tsed/common");
5
+ const resourceNotFoundMiddleware_1 = require("../middlewares/resourceNotFoundMiddleware");
6
+ const services_1 = require("../services");
7
+ /**
8
+ * @platform
9
+ * @koa
10
+ */
11
+ class PlatformKoa {
12
+ constructor(platform) {
13
+ this.platform = platform;
14
+ this.providers = [
15
+ {
16
+ provide: common_1.PlatformResponse,
17
+ useClass: services_1.PlatformKoaResponse
18
+ },
19
+ {
20
+ provide: common_1.PlatformRequest,
21
+ useClass: services_1.PlatformKoaRequest
22
+ },
23
+ {
24
+ provide: common_1.PlatformHandler,
25
+ useClass: services_1.PlatformKoaHandler
26
+ },
27
+ {
28
+ provide: common_1.PlatformRouter,
29
+ useClass: services_1.PlatformKoaRouter
30
+ },
31
+ {
32
+ provide: common_1.PlatformApplication,
33
+ useClass: services_1.PlatformKoaApplication
34
+ }
35
+ ];
36
+ }
37
+ /**
38
+ * Create new serverless application. In this mode, the component scan are disabled.
39
+ * @param module
40
+ * @param settings
41
+ */
42
+ static create(module, settings = {}) {
43
+ return common_1.PlatformBuilder.create(module, {
44
+ ...settings,
45
+ adapter: PlatformKoa
46
+ });
47
+ }
48
+ /**
49
+ * Bootstrap a server application
50
+ * @param module
51
+ * @param settings
52
+ */
53
+ static async bootstrap(module, settings = {}) {
54
+ return common_1.PlatformBuilder.bootstrap(module, {
55
+ ...settings,
56
+ adapter: PlatformKoa
57
+ });
58
+ }
59
+ onInit() {
60
+ const { injector, app } = this.platform;
61
+ const listener = (error, ctx) => {
62
+ var _a;
63
+ (_a = injector.get(common_1.PlatformExceptions)) === null || _a === void 0 ? void 0 : _a.catch(error, ctx.request.$ctx);
64
+ };
65
+ app.getApp().silent = true;
66
+ app.getApp().on("error", listener);
67
+ }
68
+ useRouter() {
69
+ const { app } = this.platform;
70
+ app.getApp().use(resourceNotFoundMiddleware_1.resourceNotFoundMiddleware).use(app.getRouter().routes()).use(app.getRouter().allowedMethods());
71
+ return this;
72
+ }
73
+ useContext() {
74
+ const { injector, app, logger } = this.platform;
75
+ logger.info("Mount app context");
76
+ const invoke = (0, common_1.createContext)(injector);
77
+ app.getApp().use(async (ctx, next) => {
78
+ await invoke({
79
+ request: ctx.request,
80
+ response: ctx.response,
81
+ ctx
82
+ });
83
+ return next();
84
+ });
85
+ return this;
86
+ }
87
+ }
88
+ exports.PlatformKoa = PlatformKoa;
89
+ //# sourceMappingURL=PlatformKoa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoa.js","sourceRoot":"","sources":["../../../src/components/PlatformKoa.ts"],"names":[],"mappings":";;;AACA,yCAUsB;AAGtB,0FAAqF;AACrF,0CAAmI;AAEnI;;;GAGG;AACH,MAAa,WAAW;IAwBtB,YAAoB,QAAyC;QAAzC,aAAQ,GAAR,QAAQ,CAAiC;QAvBpD,cAAS,GAAG;YACnB;gBACE,OAAO,EAAE,yBAAgB;gBACzB,QAAQ,EAAE,8BAAmB;aAC9B;YACD;gBACE,OAAO,EAAE,wBAAe;gBACxB,QAAQ,EAAE,6BAAkB;aAC7B;YACD;gBACE,OAAO,EAAE,wBAAe;gBACxB,QAAQ,EAAE,6BAAkB;aAC7B;YACD;gBACE,OAAO,EAAE,uBAAc;gBACvB,QAAQ,EAAE,4BAAiB;aAC5B;YACD;gBACE,OAAO,EAAE,4BAAmB;gBAC5B,QAAQ,EAAE,iCAAsB;aACjC;SACF,CAAC;IAE8D,CAAC;IAEjE;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,MAAiB,EAAE,WAAwC,EAAE;QACzE,OAAO,wBAAe,CAAC,MAAM,CAAiB,MAAM,EAAE;YACpD,GAAG,QAAQ;YACX,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAiB,EAAE,WAAwC,EAAE;QAClF,OAAO,wBAAe,CAAC,SAAS,CAAiB,MAAM,EAAE;YACvD,GAAG,QAAQ;YACX,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,MAAM,EAAC,QAAQ,EAAE,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEtC,MAAM,QAAQ,GAAQ,CAAC,KAAU,EAAE,GAAgB,EAAE,EAAE;;YACrD,MAAA,QAAQ,CAAC,GAAG,CAAqB,2BAAkB,CAAC,0CAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC,CAAC;QAEF,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;QACP,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,uDAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QAEjH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,MAAM,EAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAC;QAEvC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAY,EAAE,IAAU,EAAE,EAAE;YAClD,MAAM,MAAM,CAAC;gBACX,OAAO,EAAE,GAAG,CAAC,OAAc;gBAC3B,QAAQ,EAAE,GAAG,CAAC,QAAe;gBAC7B,GAAG;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtFD,kCAsFC","sourcesContent":["import KoaRouter from \"@koa/router\";\nimport {\n createContext,\n PlatformAdapter,\n PlatformApplication,\n PlatformBuilder,\n PlatformExceptions,\n PlatformHandler,\n PlatformRequest,\n PlatformResponse,\n PlatformRouter\n} from \"@tsed/common\";\nimport {Type} from \"@tsed/core\";\nimport Koa, {Context, Next} from \"koa\";\nimport {resourceNotFoundMiddleware} from \"../middlewares/resourceNotFoundMiddleware\";\nimport {PlatformKoaApplication, PlatformKoaHandler, PlatformKoaRequest, PlatformKoaResponse, PlatformKoaRouter} from \"../services\";\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 provide: PlatformRouter,\n useClass: PlatformKoaRouter\n },\n {\n provide: PlatformApplication,\n useClass: PlatformKoaApplication\n }\n ];\n\n constructor(private platform: PlatformBuilder<Koa, KoaRouter>) {}\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, app} = this.platform;\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.platform;\n app.getApp().use(resourceNotFoundMiddleware).use(app.getRouter().routes()).use(app.getRouter().allowedMethods());\n\n return this;\n }\n\n useContext(): this {\n const {injector, app, logger} = this.platform;\n logger.info(\"Mount app context\");\n\n const invoke = createContext(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"]}
@@ -24,7 +24,7 @@ const routerSettings_1 = require("./routerSettings");
24
24
  * @param sensitive
25
25
  */
26
26
  function CaseSensitive(sensitive) {
27
- return routerSettings_1.RouterSettings({ sensitive });
27
+ return (0, routerSettings_1.RouterSettings)({ sensitive });
28
28
  }
29
29
  exports.CaseSensitive = CaseSensitive;
30
30
  //# sourceMappingURL=caseSensitive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caseSensitive.js","sourceRoot":"","sources":["../../../src/decorators/caseSensitive.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,aAAa,CAAC,SAAkB;IAC9C,OAAO,IAAA,+BAAc,EAAC,EAAC,SAAS,EAAC,CAAC,CAAC;AACrC,CAAC;AAFD,sCAEC","sourcesContent":["import {RouterSettings} from \"./routerSettings\";\n\n/**\n * Specify the behavior of the router controller.\n *\n * ```typescript\n * @Controller(\"/\")\n * @CaseSensitive(true)\n * class MyCtrl {\n *\n * }\n * ```\n *\n * Property | Description | Default\n * ---|---|---\n * CaseSensitive | Enable case sensitivity. | Disabled by default, treating “/Foo” and “/foo” as the same.\n * Strict | Enable strict routing. | Disabled by default, “/foo” and “/foo/” are treated the same by the router.\n *\n * @returns {Function}\n * @decorator\n * @koa\n * @param sensitive\n */\nexport function CaseSensitive(sensitive: boolean) {\n return RouterSettings({sensitive});\n}\n"]}
@@ -10,7 +10,7 @@ const common_1 = require("@tsed/common");
10
10
  * @koa
11
11
  */
12
12
  function KoaCtx() {
13
- return common_1.UseParam({
13
+ return (0, common_1.UseParam)({
14
14
  paramType: "KOA_CTX",
15
15
  dataPath: "$ctx.request.ctx",
16
16
  useConverter: false,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../../../src/decorators/ctx.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC;;;;;;GAMG;AACH,SAAgB,MAAM;IACpB,OAAO,IAAA,iBAAQ,EAAC;QACd,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC;AAPD,wBAOC;AAED;;;;;;GAMG;AACH,SAAgB,GAAG;IACjB,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC;AAFD,kBAEC","sourcesContent":["import {UseParam} from \"@tsed/common\";\nimport type {Context} from \"koa\";\n\n/**\n * Return the original Koa context.\n * @decorator\n * @operation\n * @input\n * @koa\n */\nexport function KoaCtx(): ParameterDecorator {\n return UseParam({\n paramType: \"KOA_CTX\",\n dataPath: \"$ctx.request.ctx\",\n useConverter: false,\n useValidation: false\n });\n}\n\n/**\n * Return the original Koa context.\n * @decorator\n * @operation\n * @input\n * @koa\n */\nexport function Ctx(): ParameterDecorator {\n return KoaCtx();\n}\n\nexport type Ctx = Context;\nexport type KoaCtx = Context;\n"]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./routerSettings"), exports);
5
+ (0, tslib_1.__exportStar)(require("./caseSensitive"), exports);
6
+ (0, tslib_1.__exportStar)(require("./strict"), exports);
7
+ (0, tslib_1.__exportStar)(require("./state"), exports);
8
+ (0, tslib_1.__exportStar)(require("./ctx"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,gEAAiC;AACjC,+DAAgC;AAChC,wDAAyB;AACzB,uDAAwB;AACxB,qDAAsB","sourcesContent":["export * from \"./routerSettings\";\nexport * from \"./caseSensitive\";\nexport * from \"./strict\";\nexport * from \"./state\";\nexport * from \"./ctx\";\n"]}
@@ -25,7 +25,7 @@ const core_1 = require("@tsed/core");
25
25
  * @koa
26
26
  */
27
27
  function RouterSettings(routerOptions) {
28
- return core_1.StoreMerge(common_1.ROUTER_OPTIONS, routerOptions);
28
+ return (0, core_1.StoreMerge)(common_1.ROUTER_OPTIONS, routerOptions);
29
29
  }
30
30
  exports.RouterSettings = RouterSettings;
31
31
  //# sourceMappingURL=routerSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routerSettings.js","sourceRoot":"","sources":["../../../src/decorators/routerSettings.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,qCAAsC;AAGtC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,cAAc,CAAC,aAA4B;IACzD,OAAO,IAAA,iBAAU,EAAC,uBAAc,EAAE,aAAa,CAAC,CAAC;AACnD,CAAC;AAFD,wCAEC","sourcesContent":["import {ROUTER_OPTIONS} from \"@tsed/common\";\nimport {StoreMerge} from \"@tsed/core\";\nimport {RouterOptions} from \"@koa/router\";\n\n/**\n * Specify the behavior of the router controller.\n *\n * ```typescript\n * @Controller(\"/\")\n * @RouterSettings({sensitive: true})\n * class MyCtrl {\n *\n * }\n * ```\n *\n * Property | Description | Default\n * ---|---|---\n * sensitive | Enable case sensitivity. | Disabled by default, treating “/Foo” and “/foo” as the same.\n * strict | Enable strict routing. | Disabled by default, “/foo” and “/foo/” are treated the same by the router.\n *\n * @returns {(target:any)=>void}\n * @decorator\n * @param routerOptions\n * @koa\n */\nexport function RouterSettings(routerOptions: RouterOptions): Function {\n return StoreMerge(ROUTER_OPTIONS, routerOptions);\n}\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/decorators/state.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAwCpC,SAAgB,KAAK,CAAC,GAAG,IAAW;IAClC,OAAQ,eAAc,CAAC,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC;AAFD,sBAEC","sourcesContent":["import {Locals} from \"@tsed/common\";\n\n/**\n * State return the value from koa.ctx.state object.\n *\n * #### Example\n *\n * ```typescript\n * * @Middleware()\n * class StateMiddleware {\n * use(@State() state: any) {\n * // set some on locals\n * state.user = \"user\"\n * }\n * }\n *\n * @Controller('/')\n * @UseBefore(StateMiddleware)\n * class MyCtrl {\n * @Get('/')\n * @View('home.ejs') // will use locals and returned data to render the page\n * get(@State('user') user: any) {\n * console.log('user', user);\n *\n * return {\n * description: 'Hello world'\n * }\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n * @response\n * @koa\n */\nexport function State(expression: string): ParameterDecorator;\nexport function State(): ParameterDecorator;\nexport function State(...args: any[]): ParameterDecorator {\n return (Locals as any)(...args);\n}\n"]}
@@ -25,7 +25,7 @@ const routerSettings_1 = require("./routerSettings");
25
25
  * @koa
26
26
  */
27
27
  function Strict(strict) {
28
- return routerSettings_1.RouterSettings({ strict });
28
+ return (0, routerSettings_1.RouterSettings)({ strict });
29
29
  }
30
30
  exports.Strict = Strict;
31
31
  //# sourceMappingURL=strict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict.js","sourceRoot":"","sources":["../../../src/decorators/strict.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,MAAM,CAAC,MAAe;IACpC,OAAO,IAAA,+BAAc,EAAC,EAAC,MAAM,EAAC,CAAC,CAAC;AAClC,CAAC;AAFD,wBAEC","sourcesContent":["import {RouterSettings} from \"./routerSettings\";\n\n/**\n * Specify the behavior of the router controller.\n *\n * ```typescript\n * @Controller(\"/\")\n * @Strict(true)\n * class MyCtrl {\n *\n * }\n * ```\n *\n * Property | Description | Default\n * ---|---|---\n * CaseSensitive | Enable case sensitivity. | Disabled by default, treating “/Foo” and “/foo” as the same.\n * MergeParams | Preserve the req.params values from the parent router. If the parent and the child have conflicting param names, the child’s value take precedence. | false\n * Strict | Enable strict routing. | Disabled by default, “/foo” and “/foo/” are treated the same by the router.\n *\n * @param strict\n * @returns {Function}\n * @decorator\n * @koa\n */\nexport function Strict(strict: boolean) {\n return RouterSettings({strict});\n}\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const common_1 = require("@tsed/common");
5
+ const PlatformKoa_1 = require("./components/PlatformKoa");
6
+ common_1.PlatformTest.adapter = PlatformKoa_1.PlatformKoa;
7
+ common_1.PlatformBuilder.adapter = PlatformKoa_1.PlatformKoa;
8
+ // interfaces
9
+ (0, tslib_1.__exportStar)(require("./interfaces"), exports);
10
+ // decorators
11
+ (0, tslib_1.__exportStar)(require("./decorators"), exports);
12
+ // services
13
+ (0, tslib_1.__exportStar)(require("./services"), exports);
14
+ // components
15
+ (0, tslib_1.__exportStar)(require("./components/PlatformKoa"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA2D;AAC3D,0DAAqD;AAErD,qBAAY,CAAC,OAAO,GAAG,yBAAW,CAAC;AACnC,wBAAe,CAAC,OAAO,GAAG,yBAAW,CAAC;AAEtC,aAAa;AACb,4DAA6B;AAE7B,aAAa;AACb,4DAA6B;AAE7B,WAAW;AACX,0DAA2B;AAE3B,aAAa;AACb,wEAAyC","sourcesContent":["import {PlatformBuilder, PlatformTest} from \"@tsed/common\";\nimport {PlatformKoa} from \"./components/PlatformKoa\";\n\nPlatformTest.adapter = PlatformKoa;\nPlatformBuilder.adapter = PlatformKoa;\n\n// interfaces\nexport * from \"./interfaces\";\n\n// decorators\nexport * from \"./decorators\";\n\n// services\nexport * from \"./services\";\n\n// components\nexport * from \"./components/PlatformKoa\";\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoaSettings.js","sourceRoot":"","sources":["../../../src/interfaces/PlatformKoaSettings.ts"],"names":[],"mappings":"","sourcesContent":["import {RouterOptions} from \"@koa/router\";\n\nexport interface PlatformKoaSettings {\n /**\n * Global configuration for the Express.Router. See express [documentation](http://expressjs.com/en/api.html#express.router).\n */\n router: RouterOptions;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./PlatformKoaSettings"), exports);
4
+ (0, tslib_1.__exportStar)(require("./PlatformKoaSettings"), exports);
5
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAGA,qEAAsC","sourcesContent":["import Koa from \"koa\";\nimport {PlatformKoaSettings} from \"./PlatformKoaSettings\";\n\nexport * from \"./PlatformKoaSettings\";\n\ndeclare global {\n namespace TsED {\n export interface Configuration {\n /**\n * Configuration related to Koa platform application.\n */\n koa: PlatformKoaSettings;\n }\n\n export interface NextFunction extends Koa.Next {}\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceNotFoundMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/resourceNotFoundMiddleware.ts"],"names":[],"mappings":";;;AAAA,yCAAiE;AAEjE;;;;GAIG;AACI,KAAK,UAAU,0BAA0B,CAAC,GAAQ,EAAE,IAAS;;IAClE,MAAM,IAAI,GAAoB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,MAAM,IAAI,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;IAEjC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;QACpC,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAqB,2BAAkB,CAAC,0CAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACnF;AACH,CAAC;AARD,gEAQC","sourcesContent":["import {PlatformContext, PlatformExceptions} from \"@tsed/common\";\n\n/**\n * @ignore\n * @param ctx\n * @param next\n */\nexport async function resourceNotFoundMiddleware(ctx: any, next: any) {\n const $ctx: PlatformContext = ctx.request.$ctx;\n await next();\n const status = ctx.status || 404;\n\n if (status === 404 && !$ctx.isDone()) {\n $ctx.injector.get<PlatformExceptions>(PlatformExceptions)?.resourceNotFound($ctx);\n }\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.staticsMiddleware = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const koa_send_1 = tslib_1.__importDefault(require("koa-send"));
5
+ const koa_send_1 = (0, tslib_1.__importDefault)(require("koa-send"));
6
6
  /**
7
7
  * @ignore
8
8
  * @param options
@@ -17,7 +17,7 @@ function staticsMiddleware(options) {
17
17
  path = path.replace(String(ctx._matchedRoute).replace("/(.*)", ""), "");
18
18
  }
19
19
  try {
20
- const done = await koa_send_1.default(ctx, path, options);
20
+ const done = await (0, koa_send_1.default)(ctx, path, options);
21
21
  if (done) {
22
22
  return;
23
23
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticsMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/staticsMiddleware.ts"],"names":[],"mappings":";;;;AAEA,qEAA4B;AAE5B;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAA+B;IAC/D,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;IAE3E,OAAO,KAAK,EAAE,GAAY,EAAE,IAAS,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACrD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAEpB,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,KAAK,GAAG,EAAE;gBAClD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACzE;YACD,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAI,EAAC,GAAU,EAAE,IAAI,EAAE,OAA2B,CAAC,CAAC;gBAEvE,IAAI,IAAI,EAAE;oBACR,OAAO;iBACR;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,MAAM,GAAG,CAAC;iBACX;aACF;SACF;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAzBD,8CAyBC","sourcesContent":["import {PlatformStaticsOptions} from \"@tsed/common\";\nimport type {Context} from \"koa\";\nimport send from \"koa-send\";\n\n/**\n * @ignore\n * @param options\n */\nexport function staticsMiddleware(options: PlatformStaticsOptions): any {\n if (options.index !== false) options.index = options.index || \"index.html\";\n\n return async (ctx: Context, next: any) => {\n if ([\"GET\", \"HEAD\"].includes(ctx.method) && !ctx.body) {\n let path = ctx.path;\n\n if (ctx._matchedRoute && ctx._matchedRoute !== \"/\") {\n path = path.replace(String(ctx._matchedRoute).replace(\"/(.*)\", \"\"), \"\");\n }\n try {\n const done = await send(ctx as any, path, options as send.SendOptions);\n\n if (done) {\n return;\n }\n } catch (err) {\n if (err.status !== 404) {\n throw err;\n }\n }\n }\n\n return next();\n };\n}\n"]}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlatformKoaApplication = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const common_1 = require("@tsed/common");
6
- const koa_1 = tslib_1.__importDefault(require("koa"));
6
+ const koa_1 = (0, tslib_1.__importDefault)(require("koa"));
7
7
  const PlatformKoaRouter_1 = require("./PlatformKoaRouter");
8
8
  const koaQs = require("koa-qs");
9
9
  /**
@@ -23,9 +23,10 @@ let PlatformKoaApplication = class PlatformKoaApplication extends PlatformKoaRou
23
23
  return this.getApp().callback();
24
24
  }
25
25
  };
26
- PlatformKoaApplication = tslib_1.__decorate([
27
- tslib_1.__param(0, common_1.Inject()), tslib_1.__param(1, common_1.Configuration()),
28
- tslib_1.__metadata("design:paramtypes", [common_1.PlatformHandler, Object])
26
+ PlatformKoaApplication = (0, tslib_1.__decorate)([
27
+ (0, tslib_1.__param)(0, (0, common_1.Inject)()),
28
+ (0, tslib_1.__param)(1, (0, common_1.Configuration)()),
29
+ (0, tslib_1.__metadata)("design:paramtypes", [common_1.PlatformHandler, Object])
29
30
  ], PlatformKoaApplication);
30
31
  exports.PlatformKoaApplication = PlatformKoaApplication;
31
32
  //# sourceMappingURL=PlatformKoaApplication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoaApplication.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaApplication.ts"],"names":[],"mappings":";;;;AACA,yCAAyF;AACzF,2DAAsB;AACtB,2DAAsD;AAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAQhC;;;GAGG;AACH,IAAa,sBAAsB,GAAnC,MAAa,sBAAuB,SAAQ,qCAAiB;IAI3D,YAAsB,eAAgC,EAAmB,aAA4B;QACnG,KAAK,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,aAAG,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF,CAAA;AAlBY,sBAAsB;IAIpB,wBAAA,IAAA,eAAM,GAAE,CAAA;IAAoC,wBAAA,IAAA,sBAAa,GAAE,CAAA;kDAAjC,wBAAe;GAJ3C,sBAAsB,CAkBlC;AAlBY,wDAAsB","sourcesContent":["import KoaRouter from \"@koa/router\";\nimport {Configuration, Inject, PlatformApplication, PlatformHandler} from \"@tsed/common\";\nimport Koa from \"koa\";\nimport {PlatformKoaRouter} from \"./PlatformKoaRouter\";\n\nconst koaQs = require(\"koa-qs\");\n\ndeclare global {\n namespace TsED {\n export interface Application extends Koa {}\n }\n}\n\n/**\n * @platform\n * @express\n */\nexport class PlatformKoaApplication extends PlatformKoaRouter implements PlatformApplication<Koa, KoaRouter> {\n app: Koa;\n rawApp: Koa;\n\n constructor(@Inject() platformHandler: PlatformHandler, @Configuration() configuration: Configuration) {\n super(platformHandler, configuration, {});\n\n this.rawApp = configuration.get(\"koa.app\") || new Koa();\n koaQs(this.rawApp, \"extended\");\n }\n\n getApp(): Koa {\n return this.rawApp;\n }\n\n callback(): any {\n return this.getApp().callback();\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoaHandler.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaHandler.ts"],"names":[],"mappings":";;;AAAA,yCAA8G;AAE9G,gCAA8B;AAE9B,MAAM,cAAc,GAAG,CAAC,oBAAW,CAAC,QAAQ,EAAE,oBAAW,CAAC,UAAU,EAAE,oBAAW,CAAC,cAAc,EAAE,oBAAW,CAAC,MAAM,CAAC,CAAC;AAEtH,MAAa,kBAAmB,SAAQ,wBAAe;IAC9C,KAAK,CAAC,KAAK,CAAC,IAAS,EAAE,GAAoB;QAChD,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAChD,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC;SAC/B;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAES,gBAAgB,CAAC,QAAyB;QAClD,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,KAAK,EAAE,GAAgB,EAAE,IAAc,EAAE,EAAE,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAC,CAAC,CAAC;SAC5F;QAED,OAAO,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,cAAgC;QACxD,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,cAAc,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,YAAY,KAAK,EAAE;YAC9B,IAAI,QAAQ,CAAC,aAAa,EAAE;gBAC1B,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;aAChC;iBAAM;gBACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;aAChD;SACF;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAES,OAAO,CAAC,KAAc,EAAE,cAAgC;QAChE,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,cAAc,CAAC;QAE9C,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE7B,OAAO;SACR;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,cAAgC;QAC3D,MAAM,EAAC,IAAI,EAAC,GAAG,cAAc,CAAC;QAE9B,IAAI;YACF,OAAO,MAAM,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;IAES,UAAU,CAAC,KAAU,EAAE,IAAqB;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;CACF;AAhED,gDAgEC","sourcesContent":["import {HandlerMetadata, HandlerType, OnRequestOptions, PlatformContext, PlatformHandler} from \"@tsed/common\";\nimport Koa from \"koa\";\nimport \"./PlatformKoaRequest\";\n\nconst OVERRIDE_TYPES = [HandlerType.ENDPOINT, HandlerType.MIDDLEWARE, HandlerType.ERR_MIDDLEWARE, HandlerType.CTX_FN];\n\nexport class PlatformKoaHandler extends PlatformHandler {\n public async flush(data: any, ctx: PlatformContext): Promise<void> {\n if (data === undefined && ctx.getResponse().body) {\n data = ctx.getResponse().body;\n }\n\n return super.flush(data, ctx);\n }\n\n protected createRawHandler(metadata: HandlerMetadata) {\n if (OVERRIDE_TYPES.includes(metadata.type)) {\n const handler = this.compileHandler(metadata);\n return async (ctx: Koa.Context, next: Koa.Next) => handler({next, $ctx: ctx.request.$ctx});\n }\n\n return super.createRawHandler(metadata);\n }\n\n protected async onRequest(requestOptions: OnRequestOptions): Promise<any> {\n const {metadata, $ctx} = requestOptions;\n\n if ($ctx.data instanceof Error) {\n if (metadata.hasErrorParam) {\n requestOptions.err = $ctx.data;\n } else {\n return this.onError($ctx.data, requestOptions);\n }\n }\n\n return super.onRequest(requestOptions);\n }\n\n protected onError(error: unknown, requestOptions: OnRequestOptions) {\n const {next, $ctx, metadata} = requestOptions;\n\n // istanbul ignore next\n if ($ctx.isDone()) {\n return;\n }\n\n $ctx.data = error;\n\n if (!next || metadata.isFinal()) {\n this.throwError(error, $ctx);\n\n return;\n }\n\n return next();\n }\n\n protected async onCtxRequest(requestOptions: OnRequestOptions): Promise<any> {\n const {$ctx} = requestOptions;\n\n try {\n return await super.onCtxRequest(requestOptions);\n } catch (error) {\n this.throwError(error, $ctx);\n }\n }\n\n protected throwError(error: any, $ctx: PlatformContext) {\n $ctx.getApp().emit(\"error\", error, $ctx.getRequest().ctx);\n }\n}\n"]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var _PlatformKoaRequest_ctx;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PlatformKoaRequest = void 0;
5
+ const tslib_1 = require("tslib");
6
+ require("@koa/router");
7
+ const common_1 = require("@tsed/common");
8
+ /**
9
+ * @platform
10
+ * @koa
11
+ */
12
+ class PlatformKoaRequest extends common_1.PlatformRequest {
13
+ constructor(event, $ctx) {
14
+ super(event, $ctx);
15
+ _PlatformKoaRequest_ctx.set(this, void 0);
16
+ (0, tslib_1.__classPrivateFieldSet)(this, _PlatformKoaRequest_ctx, this.raw.ctx, "f");
17
+ }
18
+ get protocol() {
19
+ return (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaRequest_ctx, "f").request.protocol;
20
+ }
21
+ get host() {
22
+ return (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaRequest_ctx, "f").request.host;
23
+ }
24
+ get secure() {
25
+ return (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaRequest_ctx, "f").request.secure;
26
+ }
27
+ get cookies() {
28
+ return (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaRequest_ctx, "f").cookie || (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaRequest_ctx, "f").cookies;
29
+ }
30
+ get session() {
31
+ return (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaRequest_ctx, "f").session;
32
+ }
33
+ getReq() {
34
+ return this.raw.req;
35
+ }
36
+ destroy() {
37
+ // @ts-ignore
38
+ (0, tslib_1.__classPrivateFieldSet)(this, _PlatformKoaRequest_ctx, null, "f");
39
+ return super.destroy();
40
+ }
41
+ }
42
+ exports.PlatformKoaRequest = PlatformKoaRequest;
43
+ _PlatformKoaRequest_ctx = new WeakMap();
44
+ //# sourceMappingURL=PlatformKoaRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoaRequest.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaRequest.ts"],"names":[],"mappings":";;;;;AAAA,uBAAqB;AACrB,yCAA6E;AAiB7E;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,wBAA4B;IAGlE,YAAY,KAAoB,EAAE,IAAqB;QACrD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAHrB,0CAAkB;QAIhB,oCAAA,IAAI,2BAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,MAAA,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,oCAAA,IAAI,+BAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,oCAAA,IAAI,+BAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,oCAAA,IAAI,+BAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,oCAAA,IAAI,+BAAK,CAAC,MAAM,IAAI,oCAAA,IAAI,+BAAK,CAAC,OAAO,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,oCAAA,IAAI,+BAAK,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,OAAO;QACL,aAAa;QACb,oCAAA,IAAI,2BAAQ,IAAI,MAAA,CAAC;QACjB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;CACF;AArCD,gDAqCC","sourcesContent":["import \"@koa/router\";\nimport {IncomingEvent, PlatformContext, PlatformRequest} from \"@tsed/common\";\nimport {IncomingMessage} from \"http\";\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 #ctx: Koa.Context;\n\n constructor(event: IncomingEvent, $ctx: PlatformContext) {\n super(event, $ctx);\n this.#ctx = this.raw.ctx;\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(): IncomingMessage {\n return this.raw.req;\n }\n\n destroy() {\n // @ts-ignore\n this.#ctx = null;\n return super.destroy();\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- var _ctx;
2
+ var _PlatformKoaResponse_ctx;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.PlatformKoaResponse = void 0;
5
5
  const tslib_1 = require("tslib");
@@ -11,16 +11,16 @@ const encodeUrl = require("encodeurl");
11
11
  * @koa
12
12
  */
13
13
  class PlatformKoaResponse extends common_1.PlatformResponse {
14
- constructor(event) {
15
- super(event);
16
- _ctx.set(this, void 0);
17
- tslib_1.__classPrivateFieldSet(this, _ctx, this.raw.ctx);
14
+ constructor(event, $ctx) {
15
+ super(event, $ctx);
16
+ _PlatformKoaResponse_ctx.set(this, void 0);
17
+ (0, tslib_1.__classPrivateFieldSet)(this, _PlatformKoaResponse_ctx, this.raw.ctx, "f");
18
18
  }
19
19
  get statusCode() {
20
20
  return this.raw.status;
21
21
  }
22
22
  get locals() {
23
- return tslib_1.__classPrivateFieldGet(this, _ctx).state;
23
+ return (0, tslib_1.__classPrivateFieldGet)(this, _PlatformKoaResponse_ctx, "f").state;
24
24
  }
25
25
  /**
26
26
  * Return the Node.js response object
@@ -79,7 +79,7 @@ class PlatformKoaResponse extends common_1.PlatformResponse {
79
79
  status = status || 302;
80
80
  // Set location header
81
81
  url = this.location(url).raw.get("Location");
82
- this.body(`${schema_1.getStatusMessage(status)}. Redirecting to ${url}`);
82
+ this.body(`${(0, schema_1.getStatusMessage)(status)}. Redirecting to ${url}`);
83
83
  this.status(status);
84
84
  this.setHeader("Content-Length", Buffer.byteLength(this.raw.body));
85
85
  if (this.request.method === "HEAD") {
@@ -101,5 +101,5 @@ class PlatformKoaResponse extends common_1.PlatformResponse {
101
101
  }
102
102
  }
103
103
  exports.PlatformKoaResponse = PlatformKoaResponse;
104
- _ctx = new WeakMap();
104
+ _PlatformKoaResponse_ctx = new WeakMap();
105
105
  //# sourceMappingURL=PlatformKoaResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoaResponse.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaResponse.ts"],"names":[],"mappings":";;;;;AAAA,yCAA8E;AAG9E,yCAA8C;AAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAQvC;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,yBAA8B;IAGrE,YAAY,KAAoB,EAAE,IAAqB;QACrD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAHrB,2CAAkB;QAIhB,oCAAA,IAAI,4BAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,MAAA,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,oCAAA,IAAI,gCAAK,CAAC,KAAK,CAAC;IACzB,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,IAAA,yBAAgB,EAAC,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,IAAI,CAAC,CAAC,CAAC;QAEnE,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;AA5GD,kDA4GC","sourcesContent":["import {IncomingEvent, PlatformContext, PlatformResponse} from \"@tsed/common\";\nimport {ServerResponse} from \"http\";\nimport Koa from \"koa\";\nimport {getStatusMessage} from \"@tsed/schema\";\n\nconst encodeUrl = require(\"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 #ctx: Koa.Context;\n\n constructor(event: IncomingEvent, $ctx: PlatformContext) {\n super(event, $ctx);\n this.#ctx = 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() {\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));\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"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlatformKoaRouter = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const router_1 = tslib_1.__importDefault(require("@koa/router"));
5
+ const router_1 = (0, tslib_1.__importDefault)(require("@koa/router"));
6
6
  const common_1 = require("@tsed/common");
7
7
  const di_1 = require("@tsed/di");
8
8
  const staticsMiddleware_1 = require("../middlewares/staticsMiddleware");
@@ -29,17 +29,17 @@ let PlatformKoaRouter = class PlatformKoaRouter extends common_1.PlatformRouter
29
29
  return [this.getRouter().routes(), this.getRouter().allowedMethods()];
30
30
  }
31
31
  multer(options) {
32
- return multer_1.getMulter(options);
32
+ return (0, multer_1.getMulter)(options);
33
33
  }
34
34
  statics(path, options) {
35
- this.rawRouter.use(path, staticsMiddleware_1.staticsMiddleware(options));
35
+ this.rawRouter.use(path, (0, staticsMiddleware_1.staticsMiddleware)(options));
36
36
  return this;
37
37
  }
38
38
  };
39
- PlatformKoaRouter = tslib_1.__decorate([
40
- tslib_1.__param(1, di_1.Configuration()),
41
- tslib_1.__param(2, di_1.Inject(common_1.PLATFORM_ROUTER_OPTIONS)),
42
- tslib_1.__metadata("design:paramtypes", [common_1.PlatformHandler, Object, Object])
39
+ PlatformKoaRouter = (0, tslib_1.__decorate)([
40
+ (0, tslib_1.__param)(1, (0, di_1.Configuration)()),
41
+ (0, tslib_1.__param)(2, (0, di_1.Inject)(common_1.PLATFORM_ROUTER_OPTIONS)),
42
+ (0, tslib_1.__metadata)("design:paramtypes", [common_1.PlatformHandler, Object, Object])
43
43
  ], PlatformKoaRouter);
44
44
  exports.PlatformKoaRouter = PlatformKoaRouter;
45
45
  //# sourceMappingURL=PlatformKoaRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoaRouter.js","sourceRoot":"","sources":["../../../src/services/PlatformKoaRouter.ts"],"names":[],"mappings":";;;;AAAA,sEAAoC;AAGpC,yCAOsB;AACtB,iCAA+C;AAE/C,wEAAmE;AACnE,4CAA0C;AAY1C,aAAa;AACb,gBAAS,CAAC,SAAS,CAAC,OAAO,GAAG,gBAAS,CAAC,SAAS,CAAC,KAAK,CAAC;AACxD,gBAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,CAAC,GAAG,IAAW;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,EAAE;QACX,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YACvB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;SACtB;KACF;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,uBAAyB;IAC9D,YACE,QAAyB,EACR,aAA4B,EACZ,aAAkB;;QAEnD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA,MAAA,aAAa,CAAC,GAAG,0CAAE,MAAM,KAAI,EAAE,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAS,CAAC,OAAO,CAAQ,CAAC;IACjD,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,OAA+B;QACpC,OAAO,IAAA,kBAAS,EAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAA+B;QACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAQ,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAzBY,iBAAiB;IAGzB,wBAAA,IAAA,kBAAa,GAAE,CAAA;IACf,wBAAA,IAAA,WAAM,EAAC,gCAAuB,CAAC,CAAA;kDAFtB,wBAAe;GAFhB,iBAAiB,CAyB7B;AAzBY,8CAAiB","sourcesContent":["import KoaRouter from \"@koa/router\";\nimport {RouterOptions as KoaRouterOptions} from \"@koa/router\";\n\nimport {\n PLATFORM_ROUTER_OPTIONS,\n PlatformHandler,\n PlatformMulter,\n PlatformMulterSettings,\n PlatformRouter,\n PlatformStaticsOptions\n} from \"@tsed/common\";\nimport {Configuration, Inject} from \"@tsed/di\";\nimport send from \"koa-send\";\nimport {staticsMiddleware} from \"../middlewares/staticsMiddleware\";\nimport {getMulter} from \"../utils/multer\";\n\ndeclare global {\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\nexport class PlatformKoaRouter extends PlatformRouter<KoaRouter> {\n constructor(\n platform: PlatformHandler,\n @Configuration() configuration: Configuration,\n @Inject(PLATFORM_ROUTER_OPTIONS) routerOptions: any\n ) {\n super(platform);\n\n const options = Object.assign({}, configuration.koa?.router || {}, routerOptions);\n this.rawRouter = new KoaRouter(options) as any;\n }\n\n callback() {\n return [this.getRouter().routes(), this.getRouter().allowedMethods()];\n }\n\n multer(options: PlatformMulterSettings): PlatformMulter {\n return getMulter(options);\n }\n\n statics(path: string, options: PlatformStaticsOptions) {\n this.rawRouter.use(path, staticsMiddleware(options) as any);\n\n return this;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./PlatformKoaApplication"), exports);
5
+ (0, tslib_1.__exportStar)(require("./PlatformKoaHandler"), exports);
6
+ (0, tslib_1.__exportStar)(require("./PlatformKoaRouter"), exports);
7
+ (0, tslib_1.__exportStar)(require("./PlatformKoaRequest"), exports);
8
+ (0, tslib_1.__exportStar)(require("./PlatformKoaResponse"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,wEAAyC;AACzC,oEAAqC;AACrC,mEAAoC;AACpC,oEAAqC;AACrC,qEAAsC","sourcesContent":["export * from \"./PlatformKoaApplication\";\nexport * from \"./PlatformKoaHandler\";\nexport * from \"./PlatformKoaRouter\";\nexport * from \"./PlatformKoaRequest\";\nexport * from \"./PlatformKoaResponse\";\n"]}
@@ -36,7 +36,7 @@ function makePromise(multer, name) {
36
36
  const fn = multer[name];
37
37
  multer[name] = function apply(...args) {
38
38
  const middleware = Reflect.apply(fn, this, args);
39
- return createRawMiddleware(util_1.promisify(middleware));
39
+ return createRawMiddleware((0, util_1.promisify)(middleware));
40
40
  };
41
41
  }
42
42
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multer.js","sourceRoot":"","sources":["../../../src/utils/multer.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAE/B;;GAEG;AACH,SAAS,mBAAmB,CAAC,UAAe;IAC1C,OAAO,KAAK,EAAE,OAAoB,EAAE,EAAE;QACpC,MAAM,GAAG,GAAQ,OAAO,CAAC,GAAG,CAAC;QAE7B,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;YACjC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAChB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACrB;QACH,CAAC,CAAC;QAEF,IAAI,SAAS,IAAI,GAAG,EAAE;YACpB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;gBAChB,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAChC,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;aACrB;YAED,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,UAAU,CAAC,OAAO,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAW,EAAE,IAAY;IAC5C,uBAAuB;IACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO;IAE1B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,IAAW;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEjD,OAAO,mBAAmB,CAAC,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAY;IACpC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;IAErC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtB,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxB,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzB,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvB,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEzB,OAAO,CAAC,CAAC;AACX,CAAC;AAVD,8BAUC","sourcesContent":["import Koa from \"koa\";\nimport {promisify} from \"util\";\n\n/**\n * @ignore\n */\nfunction createRawMiddleware(middleware: any) {\n return async (request: Koa.Request) => {\n const ctx: any = request.ctx;\n\n await middleware(ctx.req, ctx.res);\n\n const forwardKey = (key: string) => {\n if (ctx.req[key]) {\n ctx.request[key] = ctx.req[key];\n ctx[key] = ctx.req[key];\n delete ctx.req[key];\n }\n };\n\n if (\"request\" in ctx) {\n if (ctx.req.body) {\n ctx.request.body = ctx.req.body;\n delete ctx.req.body;\n }\n\n forwardKey(\"file\");\n forwardKey(\"files\");\n }\n };\n}\n\n/**\n * @ignore\n */\nfunction makePromise(multer: any, name: string) {\n // istanbul ignore next\n if (!multer[name]) return;\n\n const fn = multer[name];\n\n multer[name] = function apply(...args: any[]) {\n const middleware = Reflect.apply(fn, this, args);\n\n return createRawMiddleware(promisify(middleware));\n };\n}\n\n/**\n * @ignore\n */\nexport function getMulter(options: any) {\n const m = require(\"multer\")(options);\n\n makePromise(m, \"any\");\n makePromise(m, \"array\");\n makePromise(m, \"fields\");\n makePromise(m, \"none\");\n makePromise(m, \"single\");\n\n return m;\n}\n"]}
@@ -0,0 +1,85 @@
1
+ import { createContext, PlatformApplication, PlatformBuilder, PlatformExceptions, PlatformHandler, PlatformRequest, PlatformResponse, PlatformRouter } from "@tsed/common";
2
+ import { resourceNotFoundMiddleware } from "../middlewares/resourceNotFoundMiddleware";
3
+ import { PlatformKoaApplication, PlatformKoaHandler, PlatformKoaRequest, PlatformKoaResponse, PlatformKoaRouter } from "../services";
4
+ /**
5
+ * @platform
6
+ * @koa
7
+ */
8
+ export class PlatformKoa {
9
+ constructor(platform) {
10
+ this.platform = platform;
11
+ this.providers = [
12
+ {
13
+ provide: PlatformResponse,
14
+ useClass: PlatformKoaResponse
15
+ },
16
+ {
17
+ provide: PlatformRequest,
18
+ useClass: PlatformKoaRequest
19
+ },
20
+ {
21
+ provide: PlatformHandler,
22
+ useClass: PlatformKoaHandler
23
+ },
24
+ {
25
+ provide: PlatformRouter,
26
+ useClass: PlatformKoaRouter
27
+ },
28
+ {
29
+ provide: PlatformApplication,
30
+ useClass: PlatformKoaApplication
31
+ }
32
+ ];
33
+ }
34
+ /**
35
+ * Create new serverless application. In this mode, the component scan are disabled.
36
+ * @param module
37
+ * @param settings
38
+ */
39
+ static create(module, settings = {}) {
40
+ return PlatformBuilder.create(module, {
41
+ ...settings,
42
+ adapter: PlatformKoa
43
+ });
44
+ }
45
+ /**
46
+ * Bootstrap a server application
47
+ * @param module
48
+ * @param settings
49
+ */
50
+ static async bootstrap(module, settings = {}) {
51
+ return PlatformBuilder.bootstrap(module, {
52
+ ...settings,
53
+ adapter: PlatformKoa
54
+ });
55
+ }
56
+ onInit() {
57
+ const { injector, app } = this.platform;
58
+ const listener = (error, ctx) => {
59
+ var _a;
60
+ (_a = injector.get(PlatformExceptions)) === null || _a === void 0 ? void 0 : _a.catch(error, ctx.request.$ctx);
61
+ };
62
+ app.getApp().silent = true;
63
+ app.getApp().on("error", listener);
64
+ }
65
+ useRouter() {
66
+ const { app } = this.platform;
67
+ app.getApp().use(resourceNotFoundMiddleware).use(app.getRouter().routes()).use(app.getRouter().allowedMethods());
68
+ return this;
69
+ }
70
+ useContext() {
71
+ const { injector, app, logger } = this.platform;
72
+ logger.info("Mount app context");
73
+ const invoke = createContext(injector);
74
+ app.getApp().use(async (ctx, next) => {
75
+ await invoke({
76
+ request: ctx.request,
77
+ response: ctx.response,
78
+ ctx
79
+ });
80
+ return next();
81
+ });
82
+ return this;
83
+ }
84
+ }
85
+ //# sourceMappingURL=PlatformKoa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformKoa.js","sourceRoot":"","sources":["../../../src/components/PlatformKoa.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAEb,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAC,0BAA0B,EAAC,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAC,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAEnI;;;GAGG;AACH,MAAM,OAAO,WAAW;IAwBtB,YAAoB,QAAyC;QAAzC,aAAQ,GAAR,QAAQ,CAAiC;QAvBpD,cAAS,GAAG;YACnB;gBACE,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,mBAAmB;aAC9B;YACD;gBACE,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,kBAAkB;aAC7B;YACD;gBACE,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,kBAAkB;aAC7B;YACD;gBACE,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,iBAAiB;aAC5B;YACD;gBACE,OAAO,EAAE,mBAAmB;gBAC5B,QAAQ,EAAE,sBAAsB;aACjC;SACF,CAAC;IAE8D,CAAC;IAEjE;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,MAAiB,EAAE,WAAwC,EAAE;QACzE,OAAO,eAAe,CAAC,MAAM,CAAiB,MAAM,EAAE;YACpD,GAAG,QAAQ;YACX,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAiB,EAAE,WAAwC,EAAE;QAClF,OAAO,eAAe,CAAC,SAAS,CAAiB,MAAM,EAAE;YACvD,GAAG,QAAQ;YACX,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,MAAM,EAAC,QAAQ,EAAE,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEtC,MAAM,QAAQ,GAAQ,CAAC,KAAU,EAAE,GAAgB,EAAE,EAAE;;YACrD,MAAA,QAAQ,CAAC,GAAG,CAAqB,kBAAkB,CAAC,0CAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC,CAAC;QAEF,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;QACP,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;QAEjH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,MAAM,EAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEvC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAY,EAAE,IAAU,EAAE,EAAE;YAClD,MAAM,MAAM,CAAC;gBACX,OAAO,EAAE,GAAG,CAAC,OAAc;gBAC3B,QAAQ,EAAE,GAAG,CAAC,QAAe;gBAC7B,GAAG;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["import KoaRouter from \"@koa/router\";\nimport {\n createContext,\n PlatformAdapter,\n PlatformApplication,\n PlatformBuilder,\n PlatformExceptions,\n PlatformHandler,\n PlatformRequest,\n PlatformResponse,\n PlatformRouter\n} from \"@tsed/common\";\nimport {Type} from \"@tsed/core\";\nimport Koa, {Context, Next} from \"koa\";\nimport {resourceNotFoundMiddleware} from \"../middlewares/resourceNotFoundMiddleware\";\nimport {PlatformKoaApplication, PlatformKoaHandler, PlatformKoaRequest, PlatformKoaResponse, PlatformKoaRouter} from \"../services\";\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 provide: PlatformRouter,\n useClass: PlatformKoaRouter\n },\n {\n provide: PlatformApplication,\n useClass: PlatformKoaApplication\n }\n ];\n\n constructor(private platform: PlatformBuilder<Koa, KoaRouter>) {}\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, app} = this.platform;\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.platform;\n app.getApp().use(resourceNotFoundMiddleware).use(app.getRouter().routes()).use(app.getRouter().allowedMethods());\n\n return this;\n }\n\n useContext(): this {\n const {injector, app, logger} = this.platform;\n logger.info(\"Mount app context\");\n\n const invoke = createContext(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"]}
@@ -0,0 +1,26 @@
1
+ import { RouterSettings } from "./routerSettings";
2
+ /**
3
+ * Specify the behavior of the router controller.
4
+ *
5
+ * ```typescript
6
+ * @Controller("/")
7
+ * @CaseSensitive(true)
8
+ * class MyCtrl {
9
+ *
10
+ * }
11
+ * ```
12
+ *
13
+ * Property | Description | Default
14
+ * ---|---|---
15
+ * CaseSensitive | Enable case sensitivity. | Disabled by default, treating “/Foo” and “/foo” as the same.
16
+ * Strict | Enable strict routing. | Disabled by default, “/foo” and “/foo/” are treated the same by the router.
17
+ *
18
+ * @returns {Function}
19
+ * @decorator
20
+ * @koa
21
+ * @param sensitive
22
+ */
23
+ export function CaseSensitive(sensitive) {
24
+ return RouterSettings({ sensitive });
25
+ }
26
+ //# sourceMappingURL=caseSensitive.js.map