@tsed/common 7.0.0-beta.13 → 7.0.0-beta.16

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 (143) hide show
  1. package/jest.config.js +4 -4
  2. package/lib/cjs/builder/PlatformBuilder.js +20 -10
  3. package/lib/cjs/builder/PlatformBuilder.js.map +1 -1
  4. package/lib/cjs/decorators/params/error.js +1 -1
  5. package/lib/cjs/decorators/params/error.js.map +1 -1
  6. package/lib/cjs/domain/AnyToPromiseWithCtx.js +1 -3
  7. package/lib/cjs/domain/AnyToPromiseWithCtx.js.map +1 -1
  8. package/lib/cjs/domain/PlatformContext.js +28 -1
  9. package/lib/cjs/domain/PlatformContext.js.map +1 -1
  10. package/lib/cjs/domain/PlatformRouteDetails.js +0 -25
  11. package/lib/cjs/domain/PlatformRouteDetails.js.map +1 -1
  12. package/lib/cjs/exports.js +1 -0
  13. package/lib/cjs/exports.js.map +1 -1
  14. package/lib/cjs/index.js +1 -7
  15. package/lib/cjs/index.js.map +1 -1
  16. package/lib/cjs/interfaces/Route.js.map +1 -1
  17. package/lib/cjs/middlewares/PlatformMulterMiddleware.js.map +1 -1
  18. package/lib/cjs/services/FakeAdapter.js +5 -9
  19. package/lib/cjs/services/FakeAdapter.js.map +1 -1
  20. package/lib/cjs/services/Platform.js +41 -85
  21. package/lib/cjs/services/Platform.js.map +1 -1
  22. package/lib/cjs/services/PlatformAdapter.js +0 -2
  23. package/lib/cjs/services/PlatformAdapter.js.map +1 -1
  24. package/lib/cjs/services/PlatformApplication.js +22 -10
  25. package/lib/cjs/services/PlatformApplication.js.map +1 -1
  26. package/lib/cjs/services/PlatformHandler.js +87 -163
  27. package/lib/cjs/services/PlatformHandler.js.map +1 -1
  28. package/lib/cjs/services/PlatformMiddlewaresChain.js +2 -18
  29. package/lib/cjs/services/PlatformMiddlewaresChain.js.map +1 -1
  30. package/lib/cjs/services/PlatformRequest.js +2 -2
  31. package/lib/cjs/services/PlatformRequest.js.map +1 -1
  32. package/lib/cjs/services/PlatformResponse.js +5 -9
  33. package/lib/cjs/services/PlatformResponse.js.map +1 -1
  34. package/lib/cjs/services/PlatformTest.js +1 -0
  35. package/lib/cjs/services/PlatformTest.js.map +1 -1
  36. package/lib/cjs/utils/createContext.js +7 -11
  37. package/lib/cjs/utils/createContext.js.map +1 -1
  38. package/lib/cjs/utils/createInjector.js +0 -2
  39. package/lib/cjs/utils/createInjector.js.map +1 -1
  40. package/lib/cjs/utils/ensureContext.js +16 -0
  41. package/lib/cjs/utils/ensureContext.js.map +1 -0
  42. package/lib/cjs/utils/printRoutes.js +10 -8
  43. package/lib/cjs/utils/printRoutes.js.map +1 -1
  44. package/lib/cjs/utils/setResponseHeaders.js.map +1 -1
  45. package/lib/esm/builder/PlatformBuilder.js +20 -10
  46. package/lib/esm/builder/PlatformBuilder.js.map +1 -1
  47. package/lib/esm/decorators/params/error.js +1 -1
  48. package/lib/esm/decorators/params/error.js.map +1 -1
  49. package/lib/esm/domain/AnyToPromiseWithCtx.js +1 -3
  50. package/lib/esm/domain/AnyToPromiseWithCtx.js.map +1 -1
  51. package/lib/esm/domain/PlatformContext.js +28 -1
  52. package/lib/esm/domain/PlatformContext.js.map +1 -1
  53. package/lib/esm/domain/PlatformRouteDetails.js +1 -23
  54. package/lib/esm/domain/PlatformRouteDetails.js.map +1 -1
  55. package/lib/esm/exports.js +1 -0
  56. package/lib/esm/exports.js.map +1 -1
  57. package/lib/esm/index.js +1 -7
  58. package/lib/esm/index.js.map +1 -1
  59. package/lib/esm/interfaces/Route.js.map +1 -1
  60. package/lib/esm/middlewares/PlatformMulterMiddleware.js.map +1 -1
  61. package/lib/esm/services/FakeAdapter.js +5 -9
  62. package/lib/esm/services/FakeAdapter.js.map +1 -1
  63. package/lib/esm/services/Platform.js +42 -86
  64. package/lib/esm/services/Platform.js.map +1 -1
  65. package/lib/esm/services/PlatformAdapter.js +0 -2
  66. package/lib/esm/services/PlatformAdapter.js.map +1 -1
  67. package/lib/esm/services/PlatformApplication.js +22 -10
  68. package/lib/esm/services/PlatformApplication.js.map +1 -1
  69. package/lib/esm/services/PlatformHandler.js +89 -165
  70. package/lib/esm/services/PlatformHandler.js.map +1 -1
  71. package/lib/esm/services/PlatformMiddlewaresChain.js +2 -18
  72. package/lib/esm/services/PlatformMiddlewaresChain.js.map +1 -1
  73. package/lib/esm/services/PlatformRequest.js +2 -2
  74. package/lib/esm/services/PlatformRequest.js.map +1 -1
  75. package/lib/esm/services/PlatformResponse.js +5 -9
  76. package/lib/esm/services/PlatformResponse.js.map +1 -1
  77. package/lib/esm/services/PlatformTest.js +1 -0
  78. package/lib/esm/services/PlatformTest.js.map +1 -1
  79. package/lib/esm/utils/createContext.js +5 -9
  80. package/lib/esm/utils/createContext.js.map +1 -1
  81. package/lib/esm/utils/createInjector.js +0 -2
  82. package/lib/esm/utils/createInjector.js.map +1 -1
  83. package/lib/esm/utils/ensureContext.js +12 -0
  84. package/lib/esm/utils/ensureContext.js.map +1 -0
  85. package/lib/esm/utils/printRoutes.js +10 -8
  86. package/lib/esm/utils/printRoutes.js.map +1 -1
  87. package/lib/esm/utils/setResponseHeaders.js.map +1 -1
  88. package/lib/types/builder/PlatformBuilder.d.ts +13 -11
  89. package/lib/types/domain/AnyToPromiseWithCtx.d.ts +1 -9
  90. package/lib/types/domain/PlatformContext.d.ts +16 -1
  91. package/lib/types/domain/PlatformRouteDetails.d.ts +6 -15
  92. package/lib/types/exports.d.ts +1 -0
  93. package/lib/types/index.d.ts +1 -7
  94. package/lib/types/interfaces/Route.d.ts +2 -3
  95. package/lib/types/middlewares/PlatformMulterMiddleware.d.ts +1 -1
  96. package/lib/types/services/FakeAdapter.d.ts +7 -6
  97. package/lib/types/services/Platform.d.ts +11 -28
  98. package/lib/types/services/PlatformAdapter.d.ts +19 -10
  99. package/lib/types/services/PlatformApplication.d.ts +14 -6
  100. package/lib/types/services/PlatformHandler.d.ts +19 -55
  101. package/lib/types/services/PlatformMiddlewaresChain.d.ts +1 -2
  102. package/lib/types/services/PlatformRequest.d.ts +1 -5
  103. package/lib/types/services/PlatformResponse.d.ts +2 -4
  104. package/lib/types/services/PlatformTest.d.ts +2 -1
  105. package/lib/types/utils/createContext.d.ts +2 -2
  106. package/lib/types/utils/createInjector.d.ts +1 -1
  107. package/lib/types/utils/ensureContext.d.ts +2 -0
  108. package/package.json +16 -15
  109. package/lib/cjs/builder/PlatformControllerBuilder.js +0 -82
  110. package/lib/cjs/builder/PlatformControllerBuilder.js.map +0 -1
  111. package/lib/cjs/domain/ControllerProvider.js +0 -52
  112. package/lib/cjs/domain/ControllerProvider.js.map +0 -1
  113. package/lib/cjs/domain/HandlerMetadata.js +0 -62
  114. package/lib/cjs/domain/HandlerMetadata.js.map +0 -1
  115. package/lib/cjs/middlewares/bindEndpointMiddleware.js +0 -13
  116. package/lib/cjs/middlewares/bindEndpointMiddleware.js.map +0 -1
  117. package/lib/cjs/services/PlatformRouter.js +0 -114
  118. package/lib/cjs/services/PlatformRouter.js.map +0 -1
  119. package/lib/cjs/utils/createHandlerMetadata.js +0 -49
  120. package/lib/cjs/utils/createHandlerMetadata.js.map +0 -1
  121. package/lib/cjs/utils/useCtxHandler.js +0 -15
  122. package/lib/cjs/utils/useCtxHandler.js.map +0 -1
  123. package/lib/esm/builder/PlatformControllerBuilder.js +0 -76
  124. package/lib/esm/builder/PlatformControllerBuilder.js.map +0 -1
  125. package/lib/esm/domain/ControllerProvider.js +0 -48
  126. package/lib/esm/domain/ControllerProvider.js.map +0 -1
  127. package/lib/esm/domain/HandlerMetadata.js +0 -58
  128. package/lib/esm/domain/HandlerMetadata.js.map +0 -1
  129. package/lib/esm/middlewares/bindEndpointMiddleware.js +0 -9
  130. package/lib/esm/middlewares/bindEndpointMiddleware.js.map +0 -1
  131. package/lib/esm/services/PlatformRouter.js +0 -111
  132. package/lib/esm/services/PlatformRouter.js.map +0 -1
  133. package/lib/esm/utils/createHandlerMetadata.js +0 -45
  134. package/lib/esm/utils/createHandlerMetadata.js.map +0 -1
  135. package/lib/esm/utils/useCtxHandler.js +0 -11
  136. package/lib/esm/utils/useCtxHandler.js.map +0 -1
  137. package/lib/types/builder/PlatformControllerBuilder.d.ts +0 -18
  138. package/lib/types/domain/ControllerProvider.d.ts +0 -24
  139. package/lib/types/domain/HandlerMetadata.d.ts +0 -32
  140. package/lib/types/middlewares/bindEndpointMiddleware.d.ts +0 -6
  141. package/lib/types/services/PlatformRouter.d.ts +0 -51
  142. package/lib/types/utils/createHandlerMetadata.d.ts +0 -8
  143. package/lib/types/utils/useCtxHandler.d.ts +0 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/common",
3
- "version": "7.0.0-beta.13",
3
+ "version": "7.0.0-beta.16",
4
4
  "description": "A TypeScript Framework on top of Express",
5
5
  "private": false,
6
6
  "source": "./src/index.ts",
@@ -62,22 +62,23 @@
62
62
  }
63
63
  ],
64
64
  "dependencies": {
65
- "@tsed/components-scan": "7.0.0-beta.13",
66
- "@tsed/core": "7.0.0-beta.13",
67
- "@tsed/di": "7.0.0-beta.13",
68
- "@tsed/exceptions": "7.0.0-beta.13",
69
- "@tsed/json-mapper": "7.0.0-beta.13",
65
+ "@tsed/components-scan": "7.0.0-beta.16",
66
+ "@tsed/core": "7.0.0-beta.16",
67
+ "@tsed/di": "7.0.0-beta.16",
68
+ "@tsed/exceptions": "7.0.0-beta.16",
69
+ "@tsed/json-mapper": "7.0.0-beta.16",
70
70
  "@tsed/logger": ">=6.2.0",
71
71
  "@tsed/logger-file": ">=6.2.0",
72
- "@tsed/perf": "7.0.0-beta.13",
73
- "@tsed/platform-cache": "7.0.0-beta.13",
74
- "@tsed/platform-exceptions": "7.0.0-beta.13",
75
- "@tsed/platform-log-middleware": "7.0.0-beta.13",
76
- "@tsed/platform-middlewares": "7.0.0-beta.13",
77
- "@tsed/platform-params": "7.0.0-beta.13",
78
- "@tsed/platform-response-filter": "7.0.0-beta.13",
79
- "@tsed/platform-views": "7.0.0-beta.13",
80
- "@tsed/schema": "7.0.0-beta.13",
72
+ "@tsed/perf": "7.0.0-beta.16",
73
+ "@tsed/platform-cache": "7.0.0-beta.16",
74
+ "@tsed/platform-exceptions": "7.0.0-beta.16",
75
+ "@tsed/platform-log-middleware": "7.0.0-beta.16",
76
+ "@tsed/platform-middlewares": "7.0.0-beta.16",
77
+ "@tsed/platform-params": "7.0.0-beta.16",
78
+ "@tsed/platform-response-filter": "7.0.0-beta.16",
79
+ "@tsed/platform-router": "7.0.0-beta.16",
80
+ "@tsed/platform-views": "7.0.0-beta.16",
81
+ "@tsed/schema": "7.0.0-beta.16",
81
82
  "@types/json-schema": "7.0.11",
82
83
  "@types/on-finished": "2.3.1",
83
84
  "on-finished": "2.4.1",
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildRouter = exports.createRouter = exports.getRouter = void 0;
4
- const di_1 = require("@tsed/di");
5
- const schema_1 = require("@tsed/schema");
6
- const ControllerProvider_1 = require("../domain/ControllerProvider");
7
- const PlatformRouter_1 = require("../services/PlatformRouter");
8
- const PlatformMiddlewaresChain_1 = require("../services/PlatformMiddlewaresChain");
9
- di_1.GlobalProviders.createRegistry(di_1.ProviderType.CONTROLLER, ControllerProvider_1.ControllerProvider, {
10
- onInvoke(provider, locals, { injector }) {
11
- const router = createRouter(injector, provider);
12
- locals.set(PlatformRouter_1.PlatformRouter, router);
13
- }
14
- });
15
- /**
16
- * @ignore
17
- */
18
- function formatMethod(method) {
19
- return (method === schema_1.OperationMethods.CUSTOM ? "use" : method || "use").toLowerCase();
20
- }
21
- /**
22
- * @ignore
23
- */
24
- function getRouter(injector, provider) {
25
- return injector.get(provider.tokenRouter);
26
- }
27
- exports.getRouter = getRouter;
28
- /**
29
- * @ignore
30
- */
31
- function createRouter(injector, provider) {
32
- const token = provider.tokenRouter;
33
- if (injector.has(token)) {
34
- return getRouter(injector, provider);
35
- }
36
- const router = PlatformRouter_1.PlatformRouter.create(injector, provider.routerOptions);
37
- return injector
38
- .add(token, {
39
- useValue: router
40
- })
41
- .invoke(token);
42
- }
43
- exports.createRouter = createRouter;
44
- /**
45
- * @ignore
46
- * @param injector
47
- * @param provider
48
- * @param parentUseBefore
49
- */
50
- function buildRouter(injector, provider, parentUseBefore = []) {
51
- const { middlewares: { useBefore }, children } = provider;
52
- // Controller lifecycle
53
- const router = createRouter(injector, provider);
54
- if (!router.isBuilt) {
55
- router.isBuilt = true;
56
- const platformMiddlewaresChain = injector.get(PlatformMiddlewaresChain_1.PlatformMiddlewaresChain);
57
- // build all endpoints and his middlewares
58
- (0, schema_1.getOperationsRoutes)(provider.token).forEach((operationRoute) => {
59
- const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);
60
- router.addRoute({
61
- handlers,
62
- token: operationRoute.token,
63
- method: formatMethod(operationRoute.method),
64
- path: operationRoute.path,
65
- isFinal: operationRoute.isFinal
66
- });
67
- });
68
- const middlewares = [...parentUseBefore, ...useBefore];
69
- // build children controllers
70
- children.forEach((child) => {
71
- const childProvider = injector.getProvider(child);
72
- /* istanbul ignore next */
73
- if (!childProvider) {
74
- throw new Error("Controller component not found in the ControllerRegistry");
75
- }
76
- router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));
77
- });
78
- }
79
- return router;
80
- }
81
- exports.buildRouter = buildRouter;
82
- //# sourceMappingURL=PlatformControllerBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlatformControllerBuilder.js","sourceRoot":"","sources":["../../../src/builder/PlatformControllerBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {GlobalProviders, InjectorService, ProviderType} from \"@tsed/di\";\nimport {getOperationsRoutes, OperationMethods} from \"@tsed/schema\";\nimport {ControllerProvider} from \"../domain/ControllerProvider\";\nimport {PlatformRouter} from \"../services/PlatformRouter\";\nimport {PlatformMiddlewaresChain} from \"../services/PlatformMiddlewaresChain\";\n\nGlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {\n onInvoke(provider: ControllerProvider, locals: any, {injector}) {\n const router = createRouter(injector, provider);\n locals.set(PlatformRouter, router);\n }\n});\n\n/**\n * @ignore\n */\nfunction formatMethod(method: string | undefined) {\n return (method === OperationMethods.CUSTOM ? \"use\" : method || \"use\").toLowerCase();\n}\n\n/**\n * @ignore\n */\nexport function getRouter(injector: InjectorService, provider: ControllerProvider) {\n return injector.get(provider.tokenRouter)!;\n}\n\n/**\n * @ignore\n */\nexport function createRouter(injector: InjectorService, provider: ControllerProvider): PlatformRouter {\n const token = provider.tokenRouter;\n\n if (injector.has(token)) {\n return getRouter(injector, provider);\n }\n\n const router = PlatformRouter.create(injector, provider.routerOptions);\n\n return injector\n .add(token, {\n useValue: router\n })\n .invoke<PlatformRouter>(token);\n}\n\n/**\n * @ignore\n * @param injector\n * @param provider\n * @param parentUseBefore\n */\nexport function buildRouter(injector: InjectorService, provider: ControllerProvider, parentUseBefore: any[] = []) {\n const {\n middlewares: {useBefore},\n children\n } = provider;\n\n // Controller lifecycle\n const router = createRouter(injector, provider);\n\n if (!router.isBuilt) {\n router.isBuilt = true;\n\n const platformMiddlewaresChain = injector.get<PlatformMiddlewaresChain>(PlatformMiddlewaresChain);\n\n // build all endpoints and his middlewares\n getOperationsRoutes(provider.token).forEach((operationRoute) => {\n const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);\n\n router.addRoute({\n handlers,\n token: operationRoute.token,\n method: formatMethod(operationRoute.method),\n path: operationRoute.path,\n isFinal: operationRoute.isFinal\n });\n });\n\n const middlewares: any[] = [...parentUseBefore, ...useBefore];\n // build children controllers\n children.forEach((child: Type<any>) => {\n const childProvider = injector.getProvider(child) as ControllerProvider;\n\n /* istanbul ignore next */\n if (!childProvider) {\n throw new Error(\"Controller component not found in the ControllerRegistry\");\n }\n\n router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));\n });\n }\n\n return router;\n}\n"]}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ControllerProvider = void 0;
4
- const di_1 = require("@tsed/di");
5
- const routerOptions_1 = require("../constants/routerOptions");
6
- let AUTO_INC = 0;
7
- class ControllerProvider extends di_1.Provider {
8
- tokenRouter;
9
- constructor(provide, options = {}) {
10
- super(provide, options);
11
- this.type = di_1.ProviderType.CONTROLLER;
12
- this.tokenRouter = `${this.name}_ROUTER_${AUTO_INC++}`;
13
- }
14
- /**
15
- *
16
- */
17
- get routerOptions() {
18
- return this.store.get(routerOptions_1.ROUTER_OPTIONS) || {};
19
- }
20
- /**
21
- *
22
- * @param value
23
- */
24
- set routerOptions(value) {
25
- this.store.set(routerOptions_1.ROUTER_OPTIONS, value);
26
- }
27
- /**
28
- *
29
- * @returns {any[]}
30
- */
31
- get middlewares() {
32
- return Object.assign({
33
- use: [],
34
- useAfter: [],
35
- useBefore: []
36
- }, this.store.get("middlewares", {}));
37
- }
38
- /**
39
- *
40
- * @param middlewares
41
- */
42
- set middlewares(middlewares) {
43
- const mdlwrs = this.middlewares;
44
- const concat = (key, a, b) => (a[key] = a[key].concat(b[key]));
45
- Object.keys(middlewares).forEach((key) => {
46
- concat(key, mdlwrs, middlewares);
47
- });
48
- this.store.set("middlewares", mdlwrs);
49
- }
50
- }
51
- exports.ControllerProvider = ControllerProvider;
52
- //# sourceMappingURL=ControllerProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControllerProvider.js","sourceRoot":"","sources":["../../../src/domain/ControllerProvider.ts"],"names":[],"mappings":";;;AAAA,iCAAsF;AACtF,8DAA0D;AAE1D,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,MAAa,kBAA4B,SAAQ,aAAW;IACjD,WAAW,CAAS;IAE7B,YAAY,OAAsB,EAAE,UAA6B,EAAE;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAY,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,WAAW,QAAQ,EAAE,EAAE,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8BAAc,CAAC,IAAK,EAAU,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa,CAAC,KAAU;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8BAAc,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,MAAM,CAAC,MAAM,CAClB;YACE,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;SACd,EACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW,CAAC,WAAkC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;CACF;AApDD,gDAoDC","sourcesContent":["import {ControllerMiddlewares, Provider, ProviderType, TokenProvider} from \"@tsed/di\";\nimport {ROUTER_OPTIONS} from \"../constants/routerOptions\";\n\nlet AUTO_INC = 0;\n\nexport class ControllerProvider<T = any> extends Provider<T> {\n readonly tokenRouter: string;\n\n constructor(provide: TokenProvider, options: Partial<Provider> = {}) {\n super(provide, options);\n this.type = ProviderType.CONTROLLER;\n this.tokenRouter = `${this.name}_ROUTER_${AUTO_INC++}`;\n }\n\n /**\n *\n */\n get routerOptions(): any {\n return this.store.get(ROUTER_OPTIONS) || ({} as any);\n }\n\n /**\n *\n * @param value\n */\n set routerOptions(value: any) {\n this.store.set(ROUTER_OPTIONS, value);\n }\n\n /**\n *\n * @returns {any[]}\n */\n get middlewares(): ControllerMiddlewares {\n return Object.assign(\n {\n use: [],\n useAfter: [],\n useBefore: []\n },\n this.store.get(\"middlewares\", {})\n );\n }\n\n /**\n *\n * @param middlewares\n */\n set middlewares(middlewares: ControllerMiddlewares) {\n const mdlwrs = this.middlewares;\n const concat = (key: string, a: any, b: any) => (a[key] = a[key].concat(b[key]));\n\n Object.keys(middlewares).forEach((key: string) => {\n concat(key, mdlwrs, middlewares);\n });\n this.store.set(\"middlewares\", mdlwrs);\n }\n}\n"]}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HandlerMetadata = void 0;
4
- const core_1 = require("@tsed/core");
5
- const di_1 = require("@tsed/di");
6
- const platform_params_1 = require("@tsed/platform-params");
7
- const schema_1 = require("@tsed/schema");
8
- const HandlerType_1 = require("../interfaces/HandlerType");
9
- class HandlerMetadata {
10
- target;
11
- token;
12
- propertyKey;
13
- injectable = false;
14
- type = HandlerType_1.HandlerType.RAW_FN;
15
- hasNextFunction = false;
16
- routeOptions;
17
- scope;
18
- handler;
19
- constructor(options) {
20
- const { target, token, propertyKey, type, scope, routeOptions } = options;
21
- this.type = type || target.type || HandlerType_1.HandlerType.RAW_FN;
22
- this.scope = scope || di_1.ProviderScope.SINGLETON;
23
- this.routeOptions = routeOptions || {};
24
- const handler = propertyKey ? target.prototype[propertyKey] : target;
25
- if (propertyKey) {
26
- this.target = target;
27
- this.token = token;
28
- this.propertyKey = propertyKey;
29
- this.hasNextFunction = this.hasParamType(platform_params_1.ParamTypes.NEXT_FN);
30
- if (this.hasParamType(platform_params_1.ParamTypes.ERR)) {
31
- this.type = HandlerType_1.HandlerType.ERR_MIDDLEWARE;
32
- }
33
- this.injectable = schema_1.JsonParameterStore.getParams(target, propertyKey).length > 0;
34
- }
35
- else {
36
- this.handler = handler;
37
- }
38
- if (!this.injectable) {
39
- if (handler.length === 4) {
40
- this.type = HandlerType_1.HandlerType.RAW_ERR_FN;
41
- }
42
- this.hasNextFunction = handler.length >= 3;
43
- }
44
- }
45
- get hasErrorParam() {
46
- return this.type === HandlerType_1.HandlerType.ERR_MIDDLEWARE || this.type === HandlerType_1.HandlerType.RAW_ERR_FN;
47
- }
48
- getParams() {
49
- return schema_1.JsonParameterStore.getParams(this.target, this.propertyKey) || [];
50
- }
51
- hasParamType(paramType) {
52
- return this.getParams().findIndex((p) => p.paramType === paramType) > -1;
53
- }
54
- isFinal() {
55
- return this.routeOptions?.isFinal || false;
56
- }
57
- toString() {
58
- return [this.target && (0, core_1.nameOf)(this.target), this.propertyKey].filter(Boolean).join(".");
59
- }
60
- }
61
- exports.HandlerMetadata = HandlerMetadata;
62
- //# sourceMappingURL=HandlerMetadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HandlerMetadata.js","sourceRoot":"","sources":["../../../src/domain/HandlerMetadata.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AACxC,iCAAuC;AACvC,2DAAiD;AACjD,yCAAgD;AAChD,2DAAsD;AAYtD,MAAa,eAAe;IACjB,MAAM,CAAM;IACZ,KAAK,CAAY;IACjB,WAAW,CAAkB;IAC7B,UAAU,GAAY,KAAK,CAAC;IAC5B,IAAI,GAAgB,yBAAW,CAAC,MAAM,CAAC;IACvC,eAAe,GAAY,KAAK,CAAC;IACjC,YAAY,CAAgC;IAC5C,KAAK,CAAgB;IAE9B,OAAO,CAAM;IAEb,YAAY,OAA+B;QACzC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAC,GAAG,OAAO,CAAC;QAExE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,yBAAW,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,kBAAa,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAErE,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,KAAM,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,4BAAU,CAAC,OAAO,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,YAAY,CAAC,4BAAU,CAAC,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,IAAI,GAAG,yBAAW,CAAC,cAAc,CAAC;aACxC;YAED,IAAI,CAAC,UAAU,GAAG,2BAAkB,CAAC,SAAS,CAAC,MAAa,EAAE,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACvF;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,IAAI,CAAC,IAAI,GAAG,yBAAW,CAAC,UAAU,CAAC;aACpC;YACD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,yBAAW,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAW,CAAC,UAAU,CAAC;IAC1F,CAAC;IAEM,SAAS;QACd,OAAO,2BAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC;IAEM,YAAY,CAAC,SAAc;QAChC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAA,aAAM,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1F,CAAC;CACF;AA9DD,0CA8DC","sourcesContent":["import {nameOf, Type} from \"@tsed/core\";\nimport {ProviderScope} from \"@tsed/di\";\nimport {ParamTypes} from \"@tsed/platform-params\";\nimport {JsonParameterStore} from \"@tsed/schema\";\nimport {HandlerType} from \"../interfaces/HandlerType\";\nimport {PlatformRouteOptions, PlatformRouteWithoutHandlers} from \"../interfaces/PlatformRouteOptions\";\n\nexport interface HandlerMetadataOptions {\n target: (Type<any> | Function) & {type?: HandlerType};\n routeOptions?: PlatformRouteWithoutHandlers;\n token?: Type<any>;\n propertyKey?: string | symbol;\n scope?: ProviderScope;\n type?: HandlerType;\n}\n\nexport class HandlerMetadata {\n readonly target: any;\n readonly token: Type<any>;\n readonly propertyKey: string | symbol;\n readonly injectable: boolean = false;\n readonly type: HandlerType = HandlerType.RAW_FN;\n readonly hasNextFunction: boolean = false;\n readonly routeOptions: Partial<PlatformRouteOptions>;\n readonly scope: ProviderScope;\n\n handler: any;\n\n constructor(options: HandlerMetadataOptions) {\n const {target, token, propertyKey, type, scope, routeOptions} = options;\n\n this.type = type || target.type || HandlerType.RAW_FN;\n this.scope = scope || ProviderScope.SINGLETON;\n this.routeOptions = routeOptions || {};\n const handler = propertyKey ? target.prototype[propertyKey] : target;\n\n if (propertyKey) {\n this.target = target;\n this.token = token!;\n this.propertyKey = propertyKey;\n this.hasNextFunction = this.hasParamType(ParamTypes.NEXT_FN);\n\n if (this.hasParamType(ParamTypes.ERR)) {\n this.type = HandlerType.ERR_MIDDLEWARE;\n }\n\n this.injectable = JsonParameterStore.getParams(target as any, propertyKey).length > 0;\n } else {\n this.handler = handler;\n }\n\n if (!this.injectable) {\n if (handler.length === 4) {\n this.type = HandlerType.RAW_ERR_FN;\n }\n this.hasNextFunction = handler.length >= 3;\n }\n }\n\n get hasErrorParam() {\n return this.type === HandlerType.ERR_MIDDLEWARE || this.type === HandlerType.RAW_ERR_FN;\n }\n\n public getParams() {\n return JsonParameterStore.getParams(this.target, this.propertyKey) || [];\n }\n\n public hasParamType(paramType: any): boolean {\n return this.getParams().findIndex((p) => p.paramType === paramType) > -1;\n }\n\n public isFinal() {\n return this.routeOptions?.isFinal || false;\n }\n\n toString() {\n return [this.target && nameOf(this.target), this.propertyKey].filter(Boolean).join(\".\");\n }\n}\n"]}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bindEndpointMiddleware = void 0;
4
- /**
5
- * @ignore
6
- */
7
- function bindEndpointMiddleware(endpoint) {
8
- return (ctx) => {
9
- ctx.endpoint = endpoint;
10
- };
11
- }
12
- exports.bindEndpointMiddleware = bindEndpointMiddleware;
13
- //# sourceMappingURL=bindEndpointMiddleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bindEndpointMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/bindEndpointMiddleware.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,SAAgB,sBAAsB,CAAC,QAA0B;IAC/D,OAAO,CAAC,GAAoB,EAAE,EAAE;QAC9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC;AAJD,wDAIC","sourcesContent":["import type {EndpointMetadata} from \"../domain/EndpointMetadata\";\nimport type {PlatformContext} from \"../domain/PlatformContext\";\n\n/**\n * @ignore\n */\nexport function bindEndpointMiddleware(endpoint: EndpointMetadata) {\n return (ctx: PlatformContext) => {\n ctx.endpoint = endpoint;\n };\n}\n"]}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var PlatformRouter_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.PlatformRouter = exports.PLATFORM_ROUTER_OPTIONS = void 0;
5
- const tslib_1 = require("tslib");
6
- const di_1 = require("@tsed/di");
7
- const PlatformHandler_1 = require("./PlatformHandler");
8
- const PlatformAdapter_1 = require("./PlatformAdapter");
9
- /**
10
- * @ignore
11
- */
12
- exports.PLATFORM_ROUTER_OPTIONS = Symbol.for("PlatformRouterOptions");
13
- /**
14
- * Platform Router abstraction layer.
15
- * @platform
16
- */
17
- let PlatformRouter = PlatformRouter_1 = class PlatformRouter {
18
- platformHandler;
19
- adapter;
20
- rawRouter;
21
- raw;
22
- isBuilt = false;
23
- injector;
24
- callback;
25
- constructor(platformHandler, adapter, routerOptions = {}) {
26
- this.platformHandler = platformHandler;
27
- this.adapter = adapter;
28
- const { router, callback } = adapter.router(routerOptions);
29
- this.rawRouter = this.raw = router;
30
- this.callback = callback;
31
- }
32
- /**
33
- * Create a new instance of PlatformRouter
34
- * @param injector
35
- * @param routerOptions
36
- */
37
- static create(injector, routerOptions = {}) {
38
- const locals = new Map();
39
- locals.set(exports.PLATFORM_ROUTER_OPTIONS, routerOptions);
40
- return injector.invoke(PlatformRouter_1, locals);
41
- }
42
- getRouter() {
43
- return this.rawRouter;
44
- }
45
- use(...handlers) {
46
- // @ts-ignore
47
- this.getRouter().use(...this.mapHandlers(handlers));
48
- return this;
49
- }
50
- addRoute(options) {
51
- const { method, path, handlers, ...opts } = options;
52
- // @ts-ignore
53
- this.getRouter()[method](path, ...this.mapHandlers(handlers, { method, path, ...opts }));
54
- return this;
55
- }
56
- all(path, ...handlers) {
57
- return this.addRoute({ method: "all", path, handlers, isFinal: true });
58
- }
59
- get(path, ...handlers) {
60
- return this.addRoute({ method: "get", path, handlers, isFinal: true });
61
- }
62
- post(path, ...handlers) {
63
- return this.addRoute({ method: "post", path, handlers, isFinal: true });
64
- }
65
- put(path, ...handlers) {
66
- return this.addRoute({ method: "put", path, handlers, isFinal: true });
67
- }
68
- delete(path, ...handlers) {
69
- return this.addRoute({ method: "delete", path, handlers, isFinal: true });
70
- }
71
- patch(path, ...handlers) {
72
- return this.addRoute({ method: "patch", path, handlers, isFinal: true });
73
- }
74
- head(path, ...handlers) {
75
- return this.addRoute({ method: "head", path, handlers, isFinal: true });
76
- }
77
- options(path, ...handlers) {
78
- return this.addRoute({ method: "options", path, handlers, isFinal: true });
79
- }
80
- statics(path, options) {
81
- return this.use(path, this.adapter.statics(path, options));
82
- }
83
- multer(options) {
84
- return this.adapter.multipart(options);
85
- }
86
- mapHandlers(handlers, options = {}) {
87
- return handlers.reduce((list, handler, index) => {
88
- if (typeof handler === "string") {
89
- return list.concat(handler);
90
- }
91
- if (handler instanceof PlatformRouter_1) {
92
- return list.concat(handler.callback());
93
- }
94
- return list.concat(this.platformHandler.createHandler(handler, {
95
- ...options,
96
- isFinal: options.isFinal ? index === handlers.length - 1 : false
97
- }));
98
- }, []);
99
- }
100
- };
101
- tslib_1.__decorate([
102
- (0, di_1.Inject)(),
103
- tslib_1.__metadata("design:type", di_1.InjectorService)
104
- ], PlatformRouter.prototype, "injector", void 0);
105
- PlatformRouter = PlatformRouter_1 = tslib_1.__decorate([
106
- (0, di_1.Injectable)({
107
- scope: di_1.ProviderScope.INSTANCE
108
- }),
109
- tslib_1.__param(2, (0, di_1.Inject)(exports.PLATFORM_ROUTER_OPTIONS)),
110
- tslib_1.__metadata("design:paramtypes", [PlatformHandler_1.PlatformHandler,
111
- PlatformAdapter_1.PlatformAdapter, Object])
112
- ], PlatformRouter);
113
- exports.PlatformRouter = PlatformRouter;
114
- //# sourceMappingURL=PlatformRouter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlatformRouter.js","sourceRoot":"","sources":["../../../src/services/PlatformRouter.ts"],"names":[],"mappings":"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","sourcesContent":["import {Inject, Injectable, InjectorService, PathType, ProviderScope} from \"@tsed/di\";\nimport {PlatformHandler} from \"./PlatformHandler\";\nimport {PlatformRouteOptions, PlatformRouteWithoutHandlers} from \"../interfaces/PlatformRouteOptions\";\nimport {PlatformStaticsOptions} from \"../config/interfaces/PlatformStaticsSettings\";\nimport {PlatformMulter, PlatformMulterSettings} from \"../config/interfaces/PlatformMulterSettings\";\nimport {PlatformAdapter} from \"./PlatformAdapter\";\nimport {RouterOptions} from \"express\";\n\n/**\n * @ignore\n */\nexport const PLATFORM_ROUTER_OPTIONS = Symbol.for(\"PlatformRouterOptions\");\n\ndeclare global {\n namespace TsED {\n // @ts-ignore\n export interface Router {}\n }\n}\n\n/**\n * Platform Router abstraction layer.\n * @platform\n */\n@Injectable({\n scope: ProviderScope.INSTANCE\n})\nexport class PlatformRouter<App = TsED.Application, Router = TsED.Router> {\n rawRouter: Router;\n raw: any;\n isBuilt: boolean = false;\n\n @Inject()\n injector: InjectorService;\n\n callback: () => any;\n\n constructor(\n protected platformHandler: PlatformHandler,\n readonly adapter: PlatformAdapter<App, Router>,\n @Inject(PLATFORM_ROUTER_OPTIONS) routerOptions: Partial<RouterOptions> = {}\n ) {\n const {router, callback} = adapter.router(routerOptions);\n\n this.rawRouter = this.raw = router;\n this.callback = callback;\n }\n\n /**\n * Create a new instance of PlatformRouter\n * @param injector\n * @param routerOptions\n */\n static create(injector: InjectorService, routerOptions: any = {}) {\n const locals = new Map();\n locals.set(PLATFORM_ROUTER_OPTIONS, routerOptions);\n\n return injector.invoke<PlatformRouter>(PlatformRouter, locals);\n }\n\n getRouter(): Router {\n return this.rawRouter;\n }\n\n use(...handlers: any[]) {\n // @ts-ignore\n this.getRouter().use(...this.mapHandlers(handlers));\n\n return this;\n }\n\n addRoute(options: Partial<PlatformRouteOptions>) {\n const {method, path, handlers, ...opts} = options;\n\n // @ts-ignore\n this.getRouter()[method](path, ...this.mapHandlers(handlers, {method, path, ...opts}));\n\n return this;\n }\n\n all(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"all\", path, handlers, isFinal: true});\n }\n\n get(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"get\", path, handlers, isFinal: true});\n }\n\n post(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"post\", path, handlers, isFinal: true});\n }\n\n put(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"put\", path, handlers, isFinal: true});\n }\n\n delete(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"delete\", path, handlers, isFinal: true});\n }\n\n patch(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"patch\", path, handlers, isFinal: true});\n }\n\n head(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"head\", path, handlers, isFinal: true});\n }\n\n options(path: PathType, ...handlers: any[]) {\n return this.addRoute({method: \"options\", path, handlers, isFinal: true});\n }\n\n statics(path: string, options: PlatformStaticsOptions) {\n return this.use(path, this.adapter.statics(path, options));\n }\n\n multer(options: PlatformMulterSettings): PlatformMulter {\n return this.adapter.multipart(options);\n }\n\n protected mapHandlers(handlers: any[], options: PlatformRouteWithoutHandlers = {}): any[] {\n return handlers.reduce((list, handler, index) => {\n if (typeof handler === \"string\") {\n return list.concat(handler);\n }\n\n if (handler instanceof PlatformRouter) {\n return list.concat(handler.callback());\n }\n\n return list.concat(\n this.platformHandler.createHandler(handler, {\n ...options,\n isFinal: options.isFinal ? index === handlers.length - 1 : false\n })\n );\n }, []);\n }\n}\n"]}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createHandlerMetadata = void 0;
4
- const schema_1 = require("@tsed/schema");
5
- const HandlerMetadata_1 = require("../domain/HandlerMetadata");
6
- const HandlerType_1 = require("../interfaces/HandlerType");
7
- function isMetadata(input) {
8
- return input instanceof HandlerMetadata_1.HandlerMetadata;
9
- }
10
- /**
11
- * @ignore
12
- */
13
- function createHandlerMetadata(injector, obj, routeOptions = {}) {
14
- if (isMetadata(obj)) {
15
- return obj;
16
- }
17
- let options;
18
- if (obj instanceof schema_1.EndpointMetadata) {
19
- const provider = injector.getProvider(routeOptions.token);
20
- options = {
21
- token: provider.token,
22
- target: provider.useClass,
23
- scope: provider.scope,
24
- type: HandlerType_1.HandlerType.ENDPOINT,
25
- propertyKey: obj.propertyKey
26
- };
27
- }
28
- else {
29
- const provider = injector.getProvider(obj);
30
- if (provider) {
31
- options = {
32
- token: provider.token,
33
- target: provider.useClass,
34
- scope: provider.scope,
35
- type: HandlerType_1.HandlerType.MIDDLEWARE,
36
- propertyKey: "use"
37
- };
38
- }
39
- else {
40
- options = {
41
- target: obj
42
- };
43
- }
44
- }
45
- options.routeOptions = routeOptions;
46
- return new HandlerMetadata_1.HandlerMetadata(options);
47
- }
48
- exports.createHandlerMetadata = createHandlerMetadata;
49
- //# sourceMappingURL=createHandlerMetadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createHandlerMetadata.js","sourceRoot":"","sources":["../../../src/utils/createHandlerMetadata.ts"],"names":[],"mappings":";;;AACA,yCAA8C;AAC9C,+DAAkF;AAClF,2DAAsD;AAGtD,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,KAAK,YAAY,iCAAe,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,QAAyB,EACzB,GAA2B,EAC3B,eAA6C,EAAE;IAE/C,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;QACnB,OAAO,GAAsB,CAAC;KAC/B;IAED,IAAI,OAA+B,CAAC;IAEpC,IAAI,GAAG,YAAY,yBAAgB,EAAE;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC;QAE3D,OAAO,GAAG;YACR,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,yBAAW,CAAC,QAAQ;YAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;KACH;SAAM;QACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG;gBACR,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ;gBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,yBAAW,CAAC,UAAU;gBAC5B,WAAW,EAAE,KAAK;aACnB,CAAC;SACH;aAAM;YACL,OAAO,GAAG;gBACR,MAAM,EAAE,GAAG;aACZ,CAAC;SACH;KACF;IAED,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;IAEpC,OAAO,IAAI,iCAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AA1CD,sDA0CC","sourcesContent":["import {InjectorService} from \"@tsed/di\";\nimport {EndpointMetadata} from \"@tsed/schema\";\nimport {HandlerMetadata, HandlerMetadataOptions} from \"../domain/HandlerMetadata\";\nimport {HandlerType} from \"../interfaces/HandlerType\";\nimport {PlatformRouteWithoutHandlers} from \"../interfaces/PlatformRouteOptions\";\n\nfunction isMetadata(input: any) {\n return input instanceof HandlerMetadata;\n}\n\n/**\n * @ignore\n */\nexport function createHandlerMetadata(\n injector: InjectorService,\n obj: any | EndpointMetadata,\n routeOptions: PlatformRouteWithoutHandlers = {}\n): HandlerMetadata {\n if (isMetadata(obj)) {\n return obj as HandlerMetadata;\n }\n\n let options: HandlerMetadataOptions;\n\n if (obj instanceof EndpointMetadata) {\n const provider = injector.getProvider(routeOptions.token)!;\n\n options = {\n token: provider.token,\n target: provider.useClass,\n scope: provider.scope,\n type: HandlerType.ENDPOINT,\n propertyKey: obj.propertyKey\n };\n } else {\n const provider = injector.getProvider(obj);\n\n if (provider) {\n options = {\n token: provider.token,\n target: provider.useClass,\n scope: provider.scope,\n type: HandlerType.MIDDLEWARE,\n propertyKey: \"use\"\n };\n } else {\n options = {\n target: obj\n };\n }\n }\n\n options.routeOptions = routeOptions;\n\n return new HandlerMetadata(options);\n}\n"]}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useCtxHandler = void 0;
4
- const HandlerType_1 = require("../interfaces/HandlerType");
5
- /**
6
- * Create Ts.ED context handler
7
- * @param fn
8
- * @ignore
9
- */
10
- function useCtxHandler(fn) {
11
- fn.type = HandlerType_1.HandlerType.CTX_FN;
12
- return fn;
13
- }
14
- exports.useCtxHandler = useCtxHandler;
15
- //# sourceMappingURL=useCtxHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCtxHandler.js","sourceRoot":"","sources":["../../../src/utils/useCtxHandler.ts"],"names":[],"mappings":";;;AACA,2DAAsD;AAItD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAA6C;IACzE,EAAE,CAAC,IAAI,GAAG,yBAAW,CAAC,MAAM,CAAC;IAE7B,OAAO,EAAE,CAAC;AACZ,CAAC;AAJD,sCAIC","sourcesContent":["import {PlatformContext} from \"../domain/PlatformContext\";\nimport {HandlerType} from \"../interfaces/HandlerType\";\n\nexport type PlatformCtxHandler = ($ctx: PlatformContext) => any | Promise<any>;\n\n/**\n * Create Ts.ED context handler\n * @param fn\n * @ignore\n */\nexport function useCtxHandler(fn: PlatformCtxHandler & {type?: HandlerType}) {\n fn.type = HandlerType.CTX_FN;\n\n return fn;\n}\n"]}
@@ -1,76 +0,0 @@
1
- import { GlobalProviders, ProviderType } from "@tsed/di";
2
- import { getOperationsRoutes, OperationMethods } from "@tsed/schema";
3
- import { ControllerProvider } from "../domain/ControllerProvider.js";
4
- import { PlatformRouter } from "../services/PlatformRouter.js";
5
- import { PlatformMiddlewaresChain } from "../services/PlatformMiddlewaresChain.js";
6
- GlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {
7
- onInvoke(provider, locals, { injector }) {
8
- const router = createRouter(injector, provider);
9
- locals.set(PlatformRouter, router);
10
- }
11
- });
12
- /**
13
- * @ignore
14
- */
15
- function formatMethod(method) {
16
- return (method === OperationMethods.CUSTOM ? "use" : method || "use").toLowerCase();
17
- }
18
- /**
19
- * @ignore
20
- */
21
- export function getRouter(injector, provider) {
22
- return injector.get(provider.tokenRouter);
23
- }
24
- /**
25
- * @ignore
26
- */
27
- export function createRouter(injector, provider) {
28
- const token = provider.tokenRouter;
29
- if (injector.has(token)) {
30
- return getRouter(injector, provider);
31
- }
32
- const router = PlatformRouter.create(injector, provider.routerOptions);
33
- return injector
34
- .add(token, {
35
- useValue: router
36
- })
37
- .invoke(token);
38
- }
39
- /**
40
- * @ignore
41
- * @param injector
42
- * @param provider
43
- * @param parentUseBefore
44
- */
45
- export function buildRouter(injector, provider, parentUseBefore = []) {
46
- const { middlewares: { useBefore }, children } = provider;
47
- // Controller lifecycle
48
- const router = createRouter(injector, provider);
49
- if (!router.isBuilt) {
50
- router.isBuilt = true;
51
- const platformMiddlewaresChain = injector.get(PlatformMiddlewaresChain);
52
- // build all endpoints and his middlewares
53
- getOperationsRoutes(provider.token).forEach((operationRoute) => {
54
- const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);
55
- router.addRoute({
56
- handlers,
57
- token: operationRoute.token,
58
- method: formatMethod(operationRoute.method),
59
- path: operationRoute.path,
60
- isFinal: operationRoute.isFinal
61
- });
62
- });
63
- const middlewares = [...parentUseBefore, ...useBefore];
64
- // build children controllers
65
- children.forEach((child) => {
66
- const childProvider = injector.getProvider(child);
67
- /* istanbul ignore next */
68
- if (!childProvider) {
69
- throw new Error("Controller component not found in the ControllerRegistry");
70
- }
71
- router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));
72
- });
73
- }
74
- return router;
75
- }
76
- //# sourceMappingURL=PlatformControllerBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlatformControllerBuilder.js","sourceRoot":"","sources":["../../../src/builder/PlatformControllerBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {GlobalProviders, InjectorService, ProviderType} from \"@tsed/di\";\nimport {getOperationsRoutes, OperationMethods} from \"@tsed/schema\";\nimport {ControllerProvider} from \"../domain/ControllerProvider\";\nimport {PlatformRouter} from \"../services/PlatformRouter\";\nimport {PlatformMiddlewaresChain} from \"../services/PlatformMiddlewaresChain\";\n\nGlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {\n onInvoke(provider: ControllerProvider, locals: any, {injector}) {\n const router = createRouter(injector, provider);\n locals.set(PlatformRouter, router);\n }\n});\n\n/**\n * @ignore\n */\nfunction formatMethod(method: string | undefined) {\n return (method === OperationMethods.CUSTOM ? \"use\" : method || \"use\").toLowerCase();\n}\n\n/**\n * @ignore\n */\nexport function getRouter(injector: InjectorService, provider: ControllerProvider) {\n return injector.get(provider.tokenRouter)!;\n}\n\n/**\n * @ignore\n */\nexport function createRouter(injector: InjectorService, provider: ControllerProvider): PlatformRouter {\n const token = provider.tokenRouter;\n\n if (injector.has(token)) {\n return getRouter(injector, provider);\n }\n\n const router = PlatformRouter.create(injector, provider.routerOptions);\n\n return injector\n .add(token, {\n useValue: router\n })\n .invoke<PlatformRouter>(token);\n}\n\n/**\n * @ignore\n * @param injector\n * @param provider\n * @param parentUseBefore\n */\nexport function buildRouter(injector: InjectorService, provider: ControllerProvider, parentUseBefore: any[] = []) {\n const {\n middlewares: {useBefore},\n children\n } = provider;\n\n // Controller lifecycle\n const router = createRouter(injector, provider);\n\n if (!router.isBuilt) {\n router.isBuilt = true;\n\n const platformMiddlewaresChain = injector.get<PlatformMiddlewaresChain>(PlatformMiddlewaresChain);\n\n // build all endpoints and his middlewares\n getOperationsRoutes(provider.token).forEach((operationRoute) => {\n const handlers = platformMiddlewaresChain?.get(provider, operationRoute, parentUseBefore);\n\n router.addRoute({\n handlers,\n token: operationRoute.token,\n method: formatMethod(operationRoute.method),\n path: operationRoute.path,\n isFinal: operationRoute.isFinal\n });\n });\n\n const middlewares: any[] = [...parentUseBefore, ...useBefore];\n // build children controllers\n children.forEach((child: Type<any>) => {\n const childProvider = injector.getProvider(child) as ControllerProvider;\n\n /* istanbul ignore next */\n if (!childProvider) {\n throw new Error(\"Controller component not found in the ControllerRegistry\");\n }\n\n router.use(childProvider.path, buildRouter(injector, childProvider, middlewares));\n });\n }\n\n return router;\n}\n"]}
@@ -1,48 +0,0 @@
1
- import { Provider, ProviderType } from "@tsed/di";
2
- import { ROUTER_OPTIONS } from "../constants/routerOptions.js";
3
- let AUTO_INC = 0;
4
- export class ControllerProvider extends Provider {
5
- tokenRouter;
6
- constructor(provide, options = {}) {
7
- super(provide, options);
8
- this.type = ProviderType.CONTROLLER;
9
- this.tokenRouter = `${this.name}_ROUTER_${AUTO_INC++}`;
10
- }
11
- /**
12
- *
13
- */
14
- get routerOptions() {
15
- return this.store.get(ROUTER_OPTIONS) || {};
16
- }
17
- /**
18
- *
19
- * @param value
20
- */
21
- set routerOptions(value) {
22
- this.store.set(ROUTER_OPTIONS, value);
23
- }
24
- /**
25
- *
26
- * @returns {any[]}
27
- */
28
- get middlewares() {
29
- return Object.assign({
30
- use: [],
31
- useAfter: [],
32
- useBefore: []
33
- }, this.store.get("middlewares", {}));
34
- }
35
- /**
36
- *
37
- * @param middlewares
38
- */
39
- set middlewares(middlewares) {
40
- const mdlwrs = this.middlewares;
41
- const concat = (key, a, b) => (a[key] = a[key].concat(b[key]));
42
- Object.keys(middlewares).forEach((key) => {
43
- concat(key, mdlwrs, middlewares);
44
- });
45
- this.store.set("middlewares", mdlwrs);
46
- }
47
- }
48
- //# sourceMappingURL=ControllerProvider.js.map