@tsed/common 7.0.0-beta.12 → 7.0.0-beta.15

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 (228) hide show
  1. package/jest.config.js +14 -0
  2. package/lib/cjs/builder/PlatformBuilder.js +83 -63
  3. package/lib/cjs/builder/PlatformBuilder.js.map +1 -1
  4. package/lib/cjs/config/interfaces/PlatformLoggerSettings.js.map +1 -1
  5. package/lib/cjs/config/services/PlatformConfiguration.js +0 -70
  6. package/lib/cjs/config/services/PlatformConfiguration.js.map +1 -1
  7. package/lib/cjs/decorators/params/error.js +1 -1
  8. package/lib/cjs/decorators/params/error.js.map +1 -1
  9. package/lib/cjs/domain/AnyToPromiseWithCtx.js +4 -5
  10. package/lib/cjs/domain/AnyToPromiseWithCtx.js.map +1 -1
  11. package/lib/cjs/domain/PlatformContext.js +82 -32
  12. package/lib/cjs/domain/PlatformContext.js.map +1 -1
  13. package/lib/cjs/domain/PlatformRouteDetails.js +0 -21
  14. package/lib/cjs/domain/PlatformRouteDetails.js.map +1 -1
  15. package/lib/cjs/exports.js +1 -0
  16. package/lib/cjs/exports.js.map +1 -1
  17. package/lib/cjs/index.js +1 -7
  18. package/lib/cjs/index.js.map +1 -1
  19. package/lib/cjs/interfaces/Route.js.map +1 -1
  20. package/lib/cjs/middlewares/PlatformAcceptMimesMiddleware.js +2 -1
  21. package/lib/cjs/middlewares/PlatformAcceptMimesMiddleware.js.map +1 -1
  22. package/lib/cjs/middlewares/PlatformMulterMiddleware.js +2 -0
  23. package/lib/cjs/middlewares/PlatformMulterMiddleware.js.map +1 -1
  24. package/lib/cjs/services/FakeAdapter.js +6 -12
  25. package/lib/cjs/services/FakeAdapter.js.map +1 -1
  26. package/lib/cjs/services/Platform.js +43 -85
  27. package/lib/cjs/services/Platform.js.map +1 -1
  28. package/lib/cjs/services/PlatformAdapter.js +10 -0
  29. package/lib/cjs/services/PlatformAdapter.js.map +1 -1
  30. package/lib/cjs/services/PlatformApplication.js +23 -9
  31. package/lib/cjs/services/PlatformApplication.js.map +1 -1
  32. package/lib/cjs/services/PlatformHandler.js +88 -161
  33. package/lib/cjs/services/PlatformHandler.js.map +1 -1
  34. package/lib/cjs/services/PlatformMiddlewaresChain.js +5 -19
  35. package/lib/cjs/services/PlatformMiddlewaresChain.js.map +1 -1
  36. package/lib/cjs/services/PlatformRequest.js +17 -12
  37. package/lib/cjs/services/PlatformRequest.js.map +1 -1
  38. package/lib/cjs/services/PlatformResponse.js +20 -20
  39. package/lib/cjs/services/PlatformResponse.js.map +1 -1
  40. package/lib/cjs/services/PlatformTest.js +20 -8
  41. package/lib/cjs/services/PlatformTest.js.map +1 -1
  42. package/lib/cjs/utils/createContext.js +30 -21
  43. package/lib/cjs/utils/createContext.js.map +1 -1
  44. package/lib/cjs/utils/createHttpServer.js +3 -3
  45. package/lib/cjs/utils/createHttpServer.js.map +1 -1
  46. package/lib/cjs/utils/createHttpsServer.js +3 -3
  47. package/lib/cjs/utils/createHttpsServer.js.map +1 -1
  48. package/lib/cjs/utils/createInjector.js +6 -8
  49. package/lib/cjs/utils/createInjector.js.map +1 -1
  50. package/lib/cjs/utils/ensureContext.js +16 -0
  51. package/lib/cjs/utils/ensureContext.js.map +1 -0
  52. package/lib/cjs/utils/getConfiguration.js +2 -12
  53. package/lib/cjs/utils/getConfiguration.js.map +1 -1
  54. package/lib/cjs/utils/printRoutes.js +10 -8
  55. package/lib/cjs/utils/printRoutes.js.map +1 -1
  56. package/lib/cjs/utils/setResponseHeaders.js +7 -13
  57. package/lib/cjs/utils/setResponseHeaders.js.map +1 -1
  58. package/lib/esm/builder/PlatformBuilder.js +60 -63
  59. package/lib/esm/builder/PlatformBuilder.js.map +1 -1
  60. package/lib/esm/config/interfaces/PlatformLoggerSettings.js.map +1 -1
  61. package/lib/esm/config/services/PlatformConfiguration.js +0 -70
  62. package/lib/esm/config/services/PlatformConfiguration.js.map +1 -1
  63. package/lib/esm/decorators/params/error.js +1 -1
  64. package/lib/esm/decorators/params/error.js.map +1 -1
  65. package/lib/esm/domain/AnyToPromiseWithCtx.js +4 -5
  66. package/lib/esm/domain/AnyToPromiseWithCtx.js.map +1 -1
  67. package/lib/esm/domain/PlatformContext.js +82 -32
  68. package/lib/esm/domain/PlatformContext.js.map +1 -1
  69. package/lib/esm/domain/PlatformRouteDetails.js +1 -19
  70. package/lib/esm/domain/PlatformRouteDetails.js.map +1 -1
  71. package/lib/esm/exports.js +1 -0
  72. package/lib/esm/exports.js.map +1 -1
  73. package/lib/esm/index.js +1 -7
  74. package/lib/esm/index.js.map +1 -1
  75. package/lib/esm/interfaces/Route.js.map +1 -1
  76. package/lib/esm/middlewares/PlatformAcceptMimesMiddleware.js +2 -1
  77. package/lib/esm/middlewares/PlatformAcceptMimesMiddleware.js.map +1 -1
  78. package/lib/esm/middlewares/PlatformMulterMiddleware.js +2 -0
  79. package/lib/esm/middlewares/PlatformMulterMiddleware.js.map +1 -1
  80. package/lib/esm/services/FakeAdapter.js +6 -12
  81. package/lib/esm/services/FakeAdapter.js.map +1 -1
  82. package/lib/esm/services/Platform.js +44 -86
  83. package/lib/esm/services/Platform.js.map +1 -1
  84. package/lib/esm/services/PlatformAdapter.js +10 -0
  85. package/lib/esm/services/PlatformAdapter.js.map +1 -1
  86. package/lib/esm/services/PlatformApplication.js +23 -9
  87. package/lib/esm/services/PlatformApplication.js.map +1 -1
  88. package/lib/esm/services/PlatformHandler.js +90 -163
  89. package/lib/esm/services/PlatformHandler.js.map +1 -1
  90. package/lib/esm/services/PlatformMiddlewaresChain.js +5 -19
  91. package/lib/esm/services/PlatformMiddlewaresChain.js.map +1 -1
  92. package/lib/esm/services/PlatformRequest.js +17 -12
  93. package/lib/esm/services/PlatformRequest.js.map +1 -1
  94. package/lib/esm/services/PlatformResponse.js +20 -20
  95. package/lib/esm/services/PlatformResponse.js.map +1 -1
  96. package/lib/esm/services/PlatformTest.js +20 -8
  97. package/lib/esm/services/PlatformTest.js.map +1 -1
  98. package/lib/esm/utils/createContext.js +28 -20
  99. package/lib/esm/utils/createContext.js.map +1 -1
  100. package/lib/esm/utils/createHttpServer.js +3 -3
  101. package/lib/esm/utils/createHttpServer.js.map +1 -1
  102. package/lib/esm/utils/createHttpsServer.js +3 -3
  103. package/lib/esm/utils/createHttpsServer.js.map +1 -1
  104. package/lib/esm/utils/createInjector.js +7 -9
  105. package/lib/esm/utils/createInjector.js.map +1 -1
  106. package/lib/esm/utils/ensureContext.js +12 -0
  107. package/lib/esm/utils/ensureContext.js.map +1 -0
  108. package/lib/esm/utils/getConfiguration.js +4 -14
  109. package/lib/esm/utils/getConfiguration.js.map +1 -1
  110. package/lib/esm/utils/printRoutes.js +10 -8
  111. package/lib/esm/utils/printRoutes.js.map +1 -1
  112. package/lib/esm/utils/setResponseHeaders.js +7 -13
  113. package/lib/esm/utils/setResponseHeaders.js.map +1 -1
  114. package/lib/types/builder/PlatformBuilder.d.ts +17 -16
  115. package/lib/types/config/interfaces/PlatformLoggerSettings.d.ts +2 -43
  116. package/lib/types/config/services/PlatformConfiguration.d.ts +1 -22
  117. package/lib/types/domain/AnyToPromiseWithCtx.d.ts +1 -9
  118. package/lib/types/domain/PlatformContext.d.ts +36 -15
  119. package/lib/types/domain/PlatformRouteDetails.d.ts +4 -19
  120. package/lib/types/exports.d.ts +1 -0
  121. package/lib/types/index.d.ts +1 -7
  122. package/lib/types/interfaces/Route.d.ts +2 -3
  123. package/lib/types/middlewares/PlatformMulterMiddleware.d.ts +1 -1
  124. package/lib/types/services/FakeAdapter.d.ts +7 -6
  125. package/lib/types/services/Platform.d.ts +11 -28
  126. package/lib/types/services/PlatformAdapter.d.ts +19 -10
  127. package/lib/types/services/PlatformApplication.d.ts +14 -6
  128. package/lib/types/services/PlatformHandler.d.ts +19 -55
  129. package/lib/types/services/PlatformMiddlewaresChain.d.ts +1 -2
  130. package/lib/types/services/PlatformRequest.d.ts +8 -9
  131. package/lib/types/services/PlatformResponse.d.ts +10 -13
  132. package/lib/types/services/PlatformTest.d.ts +4 -3
  133. package/lib/types/utils/createContext.d.ts +4 -1
  134. package/lib/types/utils/createHttpsServer.d.ts +1 -0
  135. package/lib/types/utils/createInjector.d.ts +2 -2
  136. package/lib/types/utils/ensureContext.d.ts +2 -0
  137. package/lib/types/utils/listenServer.d.ts +2 -0
  138. package/package.json +23 -21
  139. package/lib/cjs/builder/PlatformControllerBuilder.js +0 -82
  140. package/lib/cjs/builder/PlatformControllerBuilder.js.map +0 -1
  141. package/lib/cjs/domain/ControllerProvider.js +0 -51
  142. package/lib/cjs/domain/ControllerProvider.js.map +0 -1
  143. package/lib/cjs/domain/HandlerMetadata.js +0 -57
  144. package/lib/cjs/domain/HandlerMetadata.js.map +0 -1
  145. package/lib/cjs/middlewares/__mock__/FakeCtrl.js +0 -12
  146. package/lib/cjs/middlewares/__mock__/FakeCtrl.js.map +0 -1
  147. package/lib/cjs/middlewares/bindEndpointMiddleware.js +0 -13
  148. package/lib/cjs/middlewares/bindEndpointMiddleware.js.map +0 -1
  149. package/lib/cjs/services/PlatformRouter.js +0 -108
  150. package/lib/cjs/services/PlatformRouter.js.map +0 -1
  151. package/lib/cjs/utils/__mock__/Test1.js +0 -8
  152. package/lib/cjs/utils/__mock__/Test1.js.map +0 -1
  153. package/lib/cjs/utils/__mock__/Test2.js +0 -8
  154. package/lib/cjs/utils/__mock__/Test2.js.map +0 -1
  155. package/lib/cjs/utils/__mock__/controllers/rest/TestCtrl.js +0 -12
  156. package/lib/cjs/utils/__mock__/controllers/rest/TestCtrl.js.map +0 -1
  157. package/lib/cjs/utils/__mock__/module1/Module1.js +0 -19
  158. package/lib/cjs/utils/__mock__/module1/Module1.js.map +0 -1
  159. package/lib/cjs/utils/__mock__/module1/controllers/M1Ctrl1.js +0 -17
  160. package/lib/cjs/utils/__mock__/module1/controllers/M1Ctrl1.js.map +0 -1
  161. package/lib/cjs/utils/__mock__/module1/services/M1Service.js +0 -17
  162. package/lib/cjs/utils/__mock__/module1/services/M1Service.js.map +0 -1
  163. package/lib/cjs/utils/__mock__/module1/submodule/SubModule.js +0 -15
  164. package/lib/cjs/utils/__mock__/module1/submodule/SubModule.js.map +0 -1
  165. package/lib/cjs/utils/__mock__/module1/submodule/SubService.js +0 -12
  166. package/lib/cjs/utils/__mock__/module1/submodule/SubService.js.map +0 -1
  167. package/lib/cjs/utils/__mock__/module2/Module2.js +0 -18
  168. package/lib/cjs/utils/__mock__/module2/Module2.js.map +0 -1
  169. package/lib/cjs/utils/__mock__/module2/controllers/M2Ctrl.js +0 -12
  170. package/lib/cjs/utils/__mock__/module2/controllers/M2Ctrl.js.map +0 -1
  171. package/lib/cjs/utils/createHandlerMetadata.js +0 -49
  172. package/lib/cjs/utils/createHandlerMetadata.js.map +0 -1
  173. package/lib/cjs/utils/useCtxHandler.js +0 -15
  174. package/lib/cjs/utils/useCtxHandler.js.map +0 -1
  175. package/lib/esm/builder/PlatformControllerBuilder.js +0 -76
  176. package/lib/esm/builder/PlatformControllerBuilder.js.map +0 -1
  177. package/lib/esm/domain/ControllerProvider.js +0 -47
  178. package/lib/esm/domain/ControllerProvider.js.map +0 -1
  179. package/lib/esm/domain/HandlerMetadata.js +0 -53
  180. package/lib/esm/domain/HandlerMetadata.js.map +0 -1
  181. package/lib/esm/middlewares/__mock__/FakeCtrl.js +0 -9
  182. package/lib/esm/middlewares/__mock__/FakeCtrl.js.map +0 -1
  183. package/lib/esm/middlewares/bindEndpointMiddleware.js +0 -9
  184. package/lib/esm/middlewares/bindEndpointMiddleware.js.map +0 -1
  185. package/lib/esm/services/PlatformRouter.js +0 -105
  186. package/lib/esm/services/PlatformRouter.js.map +0 -1
  187. package/lib/esm/utils/__mock__/Test1.js +0 -4
  188. package/lib/esm/utils/__mock__/Test1.js.map +0 -1
  189. package/lib/esm/utils/__mock__/Test2.js +0 -4
  190. package/lib/esm/utils/__mock__/Test2.js.map +0 -1
  191. package/lib/esm/utils/__mock__/controllers/rest/TestCtrl.js +0 -9
  192. package/lib/esm/utils/__mock__/controllers/rest/TestCtrl.js.map +0 -1
  193. package/lib/esm/utils/__mock__/module1/Module1.js +0 -16
  194. package/lib/esm/utils/__mock__/module1/Module1.js.map +0 -1
  195. package/lib/esm/utils/__mock__/module1/controllers/M1Ctrl1.js +0 -14
  196. package/lib/esm/utils/__mock__/module1/controllers/M1Ctrl1.js.map +0 -1
  197. package/lib/esm/utils/__mock__/module1/services/M1Service.js +0 -14
  198. package/lib/esm/utils/__mock__/module1/services/M1Service.js.map +0 -1
  199. package/lib/esm/utils/__mock__/module1/submodule/SubModule.js +0 -12
  200. package/lib/esm/utils/__mock__/module1/submodule/SubModule.js.map +0 -1
  201. package/lib/esm/utils/__mock__/module1/submodule/SubService.js +0 -9
  202. package/lib/esm/utils/__mock__/module1/submodule/SubService.js.map +0 -1
  203. package/lib/esm/utils/__mock__/module2/Module2.js +0 -15
  204. package/lib/esm/utils/__mock__/module2/Module2.js.map +0 -1
  205. package/lib/esm/utils/__mock__/module2/controllers/M2Ctrl.js +0 -9
  206. package/lib/esm/utils/__mock__/module2/controllers/M2Ctrl.js.map +0 -1
  207. package/lib/esm/utils/createHandlerMetadata.js +0 -45
  208. package/lib/esm/utils/createHandlerMetadata.js.map +0 -1
  209. package/lib/esm/utils/useCtxHandler.js +0 -11
  210. package/lib/esm/utils/useCtxHandler.js.map +0 -1
  211. package/lib/types/builder/PlatformControllerBuilder.d.ts +0 -18
  212. package/lib/types/domain/ControllerProvider.d.ts +0 -24
  213. package/lib/types/domain/HandlerMetadata.d.ts +0 -32
  214. package/lib/types/middlewares/__mock__/FakeCtrl.d.ts +0 -2
  215. package/lib/types/middlewares/bindEndpointMiddleware.d.ts +0 -6
  216. package/lib/types/services/PlatformRouter.d.ts +0 -51
  217. package/lib/types/utils/__mock__/Test1.d.ts +0 -3
  218. package/lib/types/utils/__mock__/Test2.d.ts +0 -3
  219. package/lib/types/utils/__mock__/controllers/rest/TestCtrl.d.ts +0 -2
  220. package/lib/types/utils/__mock__/module1/Module1.d.ts +0 -2
  221. package/lib/types/utils/__mock__/module1/controllers/M1Ctrl1.d.ts +0 -5
  222. package/lib/types/utils/__mock__/module1/services/M1Service.d.ts +0 -5
  223. package/lib/types/utils/__mock__/module1/submodule/SubModule.d.ts +0 -2
  224. package/lib/types/utils/__mock__/module1/submodule/SubService.d.ts +0 -2
  225. package/lib/types/utils/__mock__/module2/Module2.d.ts +0 -2
  226. package/lib/types/utils/__mock__/module2/controllers/M2Ctrl.d.ts +0 -2
  227. package/lib/types/utils/createHandlerMetadata.d.ts +0 -8
  228. package/lib/types/utils/useCtxHandler.d.ts +0 -13
@@ -3,7 +3,6 @@
3
3
  */
4
4
  export * from "./exports";
5
5
  export * from "./builder/PlatformBuilder";
6
- export * from "./builder/PlatformControllerBuilder";
7
6
  export * from "./config/interfaces/ConverterSettings";
8
7
  export * from "./config/interfaces/PlatformLoggerSettings";
9
8
  export * from "./config/interfaces/PlatformMulterSettings";
@@ -18,9 +17,7 @@ export * from "./decorators/params/next";
18
17
  export * from "./decorators/params/request";
19
18
  export * from "./decorators/params/response";
20
19
  export * from "./domain/AnyToPromiseWithCtx";
21
- export * from "./domain/ControllerProvider";
22
20
  export * from "./domain/EndpointMetadata";
23
- export * from "./domain/HandlerMetadata";
24
21
  export * from "./domain/PlatformContext";
25
22
  export * from "./domain/PlatformRouteDetails";
26
23
  export * from "./interfaces/AfterInit";
@@ -40,7 +37,6 @@ export * from "./interfaces/ResponseErrorObject";
40
37
  export * from "./interfaces/Route";
41
38
  export * from "./middlewares/PlatformAcceptMimesMiddleware";
42
39
  export * from "./middlewares/PlatformMulterMiddleware";
43
- export * from "./middlewares/bindEndpointMiddleware";
44
40
  export * from "./services/FakeAdapter";
45
41
  export * from "./services/Platform";
46
42
  export * from "./services/PlatformAdapter";
@@ -49,16 +45,14 @@ export * from "./services/PlatformHandler";
49
45
  export * from "./services/PlatformMiddlewaresChain";
50
46
  export * from "./services/PlatformRequest";
51
47
  export * from "./services/PlatformResponse";
52
- export * from "./services/PlatformRouter";
53
48
  export * from "./services/PlatformTest";
54
49
  export * from "./utils/createContext";
55
- export * from "./utils/createHandlerMetadata";
56
50
  export * from "./utils/createHttpServer";
57
51
  export * from "./utils/createHttpsServer";
58
52
  export * from "./utils/createInjector";
53
+ export * from "./utils/ensureContext";
59
54
  export * from "./utils/getStaticsOptions";
60
55
  export * from "./utils/listenServer";
61
56
  export * from "./utils/mapReturnedResponse";
62
57
  export * from "./utils/printRoutes";
63
58
  export * from "./utils/setResponseHeaders";
64
- export * from "./utils/useCtxHandler";
@@ -1,10 +1,9 @@
1
- import { TokenProvider } from "@tsed/di";
2
- import { ControllerProvider } from "../domain/ControllerProvider";
1
+ import { Provider, TokenProvider } from "@tsed/di";
3
2
  export interface Route extends Record<string, any> {
4
3
  route: string;
5
4
  token: TokenProvider;
6
5
  }
7
6
  export interface RouteController {
8
7
  route: string;
9
- provider: ControllerProvider;
8
+ provider: Provider;
10
9
  }
@@ -1,7 +1,7 @@
1
- import type { MulterError } from "multer";
2
1
  import { BadRequest } from "@tsed/exceptions";
3
2
  import { MiddlewareMethods } from "@tsed/platform-middlewares";
4
3
  import { Context } from "@tsed/platform-params";
4
+ import type { MulterError } from "multer";
5
5
  import { PlatformMulterField, PlatformMulterSettings } from "../config/interfaces/PlatformMulterSettings";
6
6
  import { PlatformApplication } from "../services/PlatformApplication";
7
7
  export interface MulterInputOptions {
@@ -1,8 +1,10 @@
1
1
  import { ProviderOpts } from "@tsed/di";
2
- import { PlatformAdapter } from "./PlatformAdapter";
2
+ import { PlatformContextHandler, PlatformLayer } from "@tsed/platform-router";
3
3
  import { PlatformMulter, PlatformMulterSettings } from "../config/interfaces/PlatformMulterSettings";
4
4
  import { PlatformStaticsOptions } from "../config/interfaces/PlatformStaticsSettings";
5
- export declare class FakeAdapter implements PlatformAdapter<any, any> {
5
+ import { PlatformContext } from "../domain/PlatformContext";
6
+ import { PlatformAdapter } from "./PlatformAdapter";
7
+ export declare class FakeAdapter implements PlatformAdapter<any> {
6
8
  providers: ProviderOpts[];
7
9
  static createFakeRawDriver(): {
8
10
  (): void;
@@ -21,10 +23,9 @@ export declare class FakeAdapter implements PlatformAdapter<any, any> {
21
23
  callback(): any;
22
24
  };
23
25
  multipart(options: PlatformMulterSettings): PlatformMulter;
24
- router(routerOptions: any): {
25
- router: any;
26
- callback(): any;
27
- };
28
26
  statics(endpoint: string, options: PlatformStaticsOptions): any;
29
27
  bodyParser(type: string): any;
28
+ mapLayers(layers: PlatformLayer[]): void;
29
+ mapHandler(handler: PlatformContextHandler<PlatformContext>): PlatformContextHandler<PlatformContext<import("./PlatformRequest").PlatformRequest<any>, import("./PlatformResponse").PlatformResponse<any>>>;
30
+ useContext(): void;
30
31
  }
@@ -1,46 +1,29 @@
1
1
  import { InjectorService, TokenProvider } from "@tsed/di";
2
- import { PlatformRouteDetails } from "../domain/PlatformRouteDetails";
2
+ import { PlatformRouters } from "@tsed/platform-router";
3
3
  import { Route, RouteController } from "../interfaces/Route";
4
4
  import { PlatformApplication } from "./PlatformApplication";
5
+ import { PlatformHandler } from "./PlatformHandler";
6
+ import { PlatformMiddlewaresChain } from "./PlatformMiddlewaresChain";
5
7
  /**
6
8
  * `Platform` is used to provide all routes collected by annotation `@Controller`.
7
9
  *
8
10
  * @platform
9
11
  */
10
12
  export declare class Platform {
13
+ #private;
11
14
  readonly injector: InjectorService;
12
15
  readonly platformApplication: PlatformApplication;
13
- private _routes;
14
- private _controllers;
15
- constructor(injector: InjectorService, platformApplication: PlatformApplication);
16
- get app(): PlatformApplication<TsED.Application, TsED.Router>;
17
- get routes(): PlatformRouteDetails[];
16
+ readonly platformRouters: PlatformRouters;
17
+ readonly platformHandler: PlatformHandler;
18
+ readonly platformMiddlewaresChain: PlatformMiddlewaresChain;
19
+ constructor(injector: InjectorService, platformApplication: PlatformApplication, platformRouters: PlatformRouters, platformHandler: PlatformHandler, platformMiddlewaresChain: PlatformMiddlewaresChain);
20
+ get app(): PlatformApplication<TsED.Application>;
18
21
  addRoutes(routes: Route[]): void;
19
- addRoute(basePath: string, token: TokenProvider): this | undefined;
20
- /**
21
- * Get all routes built by TsExpressDecorators and mounted on Express application.
22
- * @returns {PlatformRouteDetails[]}
23
- */
24
- getRoutes(): PlatformRouteDetails[];
22
+ addRoute(route: string, token: TokenProvider): this;
23
+ getLayers(): import("@tsed/platform-router").PlatformLayer[];
25
24
  /**
26
25
  * Get all controllers mounted on the application.
27
26
  * @returns {RouteController[]}
28
27
  */
29
28
  getMountedControllers(): RouteController[];
30
- protected $onInit(): void;
31
- /**
32
- * Create routers from the collected controllers.
33
- * @private
34
- */
35
- private createRouters;
36
- /**
37
- * Get all router controllers from the controller token.
38
- * @private
39
- */
40
- private getAllControllers;
41
- /**
42
- * Create controllers from DI
43
- * @private
44
- */
45
- private buildControllers;
46
29
  }
@@ -1,9 +1,9 @@
1
1
  import { Type } from "@tsed/core";
2
2
  import { ProviderOpts } from "@tsed/di";
3
+ import { PlatformHandlerMetadata, PlatformLayer } from "@tsed/platform-router";
3
4
  import { PlatformMulter, PlatformMulterSettings } from "../config/interfaces/PlatformMulterSettings";
4
5
  import { PlatformStaticsOptions } from "../config/interfaces/PlatformStaticsSettings";
5
- import { RouterOptions } from "express";
6
- export declare abstract class PlatformAdapter<App = TsED.Application, Router = TsED.Router> {
6
+ export declare abstract class PlatformAdapter<App = TsED.Application> {
7
7
  /**
8
8
  * Load providers in top priority
9
9
  */
@@ -14,16 +14,25 @@ export declare abstract class PlatformAdapter<App = TsED.Application, Router = T
14
14
  onInit?: () => any;
15
15
  beforeLoadRoutes?: () => Promise<any>;
16
16
  afterLoadRoutes?: () => Promise<any>;
17
- useRouter?: () => any;
18
- useContext?: () => any;
17
+ /**
18
+ * create initial context
19
+ */
20
+ abstract useContext: () => any;
21
+ /**
22
+ * Map router layer to the targeted framework
23
+ */
24
+ abstract mapLayers: (layer: PlatformLayer[]) => void;
25
+ /**
26
+ * Map handler to the targeted framework
27
+ */
28
+ abstract mapHandler: (handler: Function, layer: PlatformHandlerMetadata) => Function;
29
+ /**
30
+ * Return the app instance
31
+ */
19
32
  abstract app(): {
20
33
  app: App;
21
34
  callback(): any;
22
35
  };
23
- abstract router(routerOptions?: Partial<RouterOptions>): {
24
- router: Router;
25
- callback(): any;
26
- };
27
36
  /**
28
37
  * Return the statics middlewares
29
38
  * @param endpoint
@@ -42,6 +51,6 @@ export declare abstract class PlatformAdapter<App = TsED.Application, Router = T
42
51
  */
43
52
  abstract bodyParser(type: string, opts?: Record<string, any>): any;
44
53
  }
45
- export interface PlatformBuilderSettings<App = TsED.Application, Router = TsED.Router> extends Partial<TsED.Configuration> {
46
- adapter?: Type<PlatformAdapter<App, Router>>;
54
+ export interface PlatformBuilderSettings<App = TsED.Application> extends Partial<TsED.Configuration> {
55
+ adapter?: Type<PlatformAdapter<App>>;
47
56
  }
@@ -1,5 +1,9 @@
1
- import { PlatformHandler } from "./PlatformHandler";
2
- import { PlatformRouter } from "./PlatformRouter";
1
+ /// <reference types="multer" />
2
+ /// <reference types="node" />
3
+ import { InjectorService } from "@tsed/di";
4
+ import { PlatformRouter } from "@tsed/platform-router";
5
+ import { IncomingMessage, ServerResponse } from "http";
6
+ import { PlatformMulterSettings } from "../config/interfaces/PlatformMulterSettings";
3
7
  import { PlatformAdapter } from "./PlatformAdapter";
4
8
  declare global {
5
9
  namespace TsED {
@@ -12,10 +16,14 @@ declare global {
12
16
  *
13
17
  * @platform
14
18
  */
15
- export declare class PlatformApplication<App = TsED.Application, Router = TsED.Router> extends PlatformRouter<App, Router> {
16
- raw: App;
19
+ export declare class PlatformApplication<App = TsED.Application> extends PlatformRouter {
20
+ adapter: PlatformAdapter<App>;
21
+ injector: InjectorService;
17
22
  rawApp: App;
18
- rawRouter: Router;
19
- constructor(platformHandler: PlatformHandler, adapter: PlatformAdapter<App, Router>);
23
+ rawCallback: () => any;
24
+ constructor(adapter: PlatformAdapter<App>, injector: InjectorService);
20
25
  getApp(): App;
26
+ multer(options: PlatformMulterSettings): import("multer").Multer;
27
+ callback(): (req: IncomingMessage, res: ServerResponse) => any;
28
+ callback(req: IncomingMessage, res: ServerResponse): any;
21
29
  }
@@ -1,80 +1,44 @@
1
- import { InjectorService, Provider } from "@tsed/di";
2
- import { ArgScope, HandlerWithScope, PlatformParams } from "@tsed/platform-params";
1
+ import { Provider } from "@tsed/di";
2
+ import { PlatformParams, PlatformParamsCallback } from "@tsed/platform-params";
3
3
  import { PlatformResponseFilter } from "@tsed/platform-response-filter";
4
- import { EndpointMetadata } from "@tsed/schema";
5
- import { HandlerMetadata } from "../domain/HandlerMetadata";
4
+ import { PlatformContextHandler, PlatformHandlerMetadata, PlatformRouters } from "@tsed/platform-router";
6
5
  import { PlatformContext } from "../domain/PlatformContext";
7
- import { PlatformRouteWithoutHandlers } from "../interfaces/PlatformRouteOptions";
8
- export interface OnRequestOptions {
9
- $ctx: PlatformContext;
10
- metadata: HandlerMetadata;
11
- handler: HandlerWithScope;
12
- next?: any;
13
- err?: any;
14
- [key: string]: any;
15
- }
16
6
  /**
17
7
  * Platform Handler abstraction layer. Wrap original class method to a pure platform handler (Express, Koa, etc...).
18
8
  * @platform
19
9
  */
20
10
  export declare class PlatformHandler {
21
- protected injector: InjectorService;
22
- protected params: PlatformParams;
23
11
  protected responseFilter: PlatformResponseFilter;
24
- constructor(injector: InjectorService, params: PlatformParams);
25
- /**
26
- * Create a native middleware based on the given metadata and return an instance of AnyToPromiseWithCtx
27
- * @param input
28
- * @param options
29
- */
30
- createHandler(input: EndpointMetadata | HandlerMetadata | any, options?: PlatformRouteWithoutHandlers): any;
12
+ protected platformRouters: PlatformRouters;
13
+ protected platformParams: PlatformParams;
14
+ createHandler(handler: PlatformParamsCallback, handlerMetadata: PlatformHandlerMetadata): PlatformContextHandler;
31
15
  /**
32
- * Create injectable handler from the given provider
33
16
  * @param provider
34
17
  * @param propertyKey
35
18
  */
36
- createCustomHandler(provider: Provider, propertyKey: string): ($ctx: PlatformContext, next?: any) => Promise<any>;
19
+ createCustomHandler(provider: Provider, propertyKey: string): ($ctx: PlatformContext) => Promise<any>;
37
20
  /**
38
21
  * Send the response to the consumer.
39
- * @param data
40
- * @param ctx
41
22
  * @protected
23
+ * @param $ctx
42
24
  */
43
- flush(data: any, ctx: PlatformContext): Promise<void>;
44
- compileHandler(metadata: HandlerMetadata): (scope: Record<string, any>) => Promise<any>;
45
- protected onCtxRequest(requestOptions: OnRequestOptions): Promise<any>;
25
+ flush($ctx: PlatformContext): Promise<import("./PlatformResponse").PlatformResponse<any>>;
26
+ setResponseHeaders($ctx: PlatformContext): void;
46
27
  /**
47
- * Call handler when a request his handle
48
- * @param requestOptions
49
- */
50
- protected onRequest(requestOptions: OnRequestOptions): Promise<any>;
51
- protected onError(er: Error, requestOptions: OnRequestOptions): Promise<any>;
52
- /**
53
- * Manage success scenario
54
- * @param data
55
- * @param requestOptions
56
- * @protected
57
- */
58
- protected onSuccess(data: any, requestOptions: OnRequestOptions): Promise<any>;
59
- /**
60
- * Call the returned middleware by the handler.
61
- * @param middleware
62
- * @param ctx
28
+ * @param error
63
29
  * @param next
64
- * @protected
30
+ * @param $ctx
65
31
  */
66
- protected callReturnedMiddleware(middleware: any, ctx: PlatformContext, next: any): any;
32
+ next(error: unknown, next: Function, $ctx: PlatformContext): any;
67
33
  /**
68
- * create Raw handler
69
- * @param metadata
34
+ * Call handler when a request his handle
70
35
  */
71
- protected createRawHandler(metadata: HandlerMetadata): any;
36
+ onRequest(handler: PlatformParamsCallback, $ctx: PlatformContext): Promise<any>;
37
+ protected onError(error: unknown, $ctx: PlatformContext): Promise<void>;
72
38
  /**
73
- * Set response headers
74
- * @param ctx
39
+ * Manage success scenario
40
+ * @param $ctx
75
41
  * @protected
76
42
  */
77
- protected setHeaders(ctx: PlatformContext): void;
78
- protected next(requestOptions: OnRequestOptions): any;
79
- protected getDefaultArgs(metadata: HandlerMetadata): (scope: ArgScope<PlatformContext>) => Promise<any[]>;
43
+ protected onSuccess($ctx: PlatformContext): Promise<any>;
80
44
  }
@@ -1,10 +1,9 @@
1
1
  import { JsonOperationRoute } from "@tsed/schema";
2
- import { ControllerProvider } from "../domain/ControllerProvider";
3
2
  import { PlatformAdapter } from "../services/PlatformAdapter";
4
3
  export declare class PlatformMiddlewaresChain {
5
4
  protected acceptMimes: string[];
6
5
  protected adapter: PlatformAdapter;
7
- get(provider: ControllerProvider, operationRoute: JsonOperationRoute, parentMiddlewares?: any[]): any[];
6
+ get(allMiddlewares: any[], operationRoute: JsonOperationRoute): any[];
8
7
  protected hasAcceptMimes(operationRoute: JsonOperationRoute): number;
9
8
  protected getParamTypes(middlewares: any[], operationRoute: JsonOperationRoute): any;
10
9
  }
@@ -1,13 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { IncomingHttpHeaders, IncomingMessage } from "http";
3
3
  import type { PlatformContext } from "../domain/PlatformContext";
4
- import { IncomingEvent } from "../interfaces/IncomingEvent";
5
4
  import type { PlatformResponse } from "./PlatformResponse";
6
5
  declare global {
7
6
  namespace TsED {
8
7
  interface Request {
9
8
  id: string;
10
- $ctx: PlatformContext;
11
9
  }
12
10
  }
13
11
  }
@@ -15,16 +13,16 @@ declare global {
15
13
  * Platform Request abstraction layer.
16
14
  * @platform
17
15
  */
18
- export declare class PlatformRequest<T extends {
16
+ export declare class PlatformRequest<Req extends {
19
17
  [key: string]: any;
20
18
  } = any> {
21
- protected $ctx: PlatformContext;
22
- raw: T;
19
+ readonly $ctx: PlatformContext;
20
+ constructor($ctx: PlatformContext);
23
21
  /**
24
22
  * The current @@PlatformResponse@@.
25
23
  */
26
- response: PlatformResponse;
27
- constructor({ request }: IncomingEvent, $ctx: PlatformContext);
24
+ get response(): PlatformResponse;
25
+ get raw(): Req;
28
26
  get secure(): boolean;
29
27
  get host(): string;
30
28
  get protocol(): string;
@@ -72,10 +70,11 @@ export declare class PlatformRequest<T extends {
72
70
  [key: string]: any;
73
71
  };
74
72
  get files(): any;
73
+ get route(): import("@tsed/platform-router").SinglePathType;
75
74
  /**
76
75
  * Return the original request framework instance
77
76
  */
78
- get request(): T;
77
+ get request(): Req;
79
78
  /**
80
79
  * Return the original request node.js instance
81
80
  */
@@ -104,7 +103,7 @@ export declare class PlatformRequest<T extends {
104
103
  /**
105
104
  * Return the Framework response object (express, koa, etc...)
106
105
  */
107
- getRequest<Req = T>(): Req;
106
+ getRequest<R = Req>(): R;
108
107
  /**
109
108
  * Return the Node.js response object
110
109
  */
@@ -1,28 +1,26 @@
1
1
  /// <reference types="node" />
2
2
  import { OutgoingHttpHeaders, ServerResponse } from "http";
3
- import { IncomingEvent } from "../interfaces/IncomingEvent";
4
- import type { PlatformRequest } from "./PlatformRequest";
5
3
  import type { PlatformContext } from "../domain/PlatformContext";
4
+ import { PlatformRequest } from "./PlatformRequest";
6
5
  declare global {
7
6
  namespace TsED {
8
7
  interface Response {
9
8
  }
10
9
  }
11
10
  }
12
- export declare type HeaderValue = Array<boolean | number | string> | boolean | number | string;
13
11
  /**
14
12
  * Platform Response abstraction layer.
15
13
  * @platform
16
14
  */
17
- export declare class PlatformResponse<T extends Record<string, any> = any> {
18
- protected $ctx: PlatformContext;
15
+ export declare class PlatformResponse<Res extends Record<string, any> = any> {
16
+ readonly $ctx: PlatformContext;
17
+ data: any;
18
+ constructor($ctx: PlatformContext);
19
19
  /**
20
20
  * The current @@PlatformRequest@@.
21
21
  */
22
- request: PlatformRequest;
23
- data: any;
24
- raw: T;
25
- constructor({ response }: IncomingEvent, $ctx: PlatformContext);
22
+ get request(): PlatformRequest;
23
+ get raw(): Res;
26
24
  /**
27
25
  * Get the current statusCode
28
26
  */
@@ -36,12 +34,11 @@ export declare class PlatformResponse<T extends Record<string, any> = any> {
36
34
  /**
37
35
  * Return the original response framework instance
38
36
  */
39
- get response(): T;
37
+ get response(): Res;
40
38
  /**
41
39
  * Return the original response node.js instance
42
40
  */
43
41
  get res(): ServerResponse;
44
- static onFinished(res: any, cb: (er: Error | null, message: string) => void): void;
45
42
  /**
46
43
  * Returns the HTTP response header specified by field. The match is case-insensitive.
47
44
  *
@@ -56,7 +53,7 @@ export declare class PlatformResponse<T extends Record<string, any> = any> {
56
53
  /**
57
54
  * Return the Framework response object (express, koa, etc...)
58
55
  */
59
- getResponse<Res = T>(): Res;
56
+ getResponse<R = Res>(): R;
60
57
  /**
61
58
  * Return the Node.js response object
62
59
  */
@@ -144,7 +141,7 @@ export declare class PlatformResponse<T extends Record<string, any> = any> {
144
141
  * Send any data to your consumer.
145
142
  *
146
143
  * This method accept a ReadableStream, a plain object, boolean, string, number, null and undefined data.
147
- * It choose the better way to send the data.
144
+ * It chooses the better way to send the data.
148
145
  *
149
146
  * @param data
150
147
  */
@@ -1,5 +1,6 @@
1
- import { DITest, DITestOptions, InjectorService } from "@tsed/di";
1
+ /// <reference types="node" />
2
2
  import { Type } from "@tsed/core";
3
+ import { DITest, DITestOptions, InjectorService } from "@tsed/di";
3
4
  import { PlatformContext, PlatformContextOptions } from "../domain/PlatformContext";
4
5
  import { PlatformAdapter, PlatformBuilderSettings } from "./PlatformAdapter";
5
6
  /**
@@ -51,8 +52,8 @@ export declare class PlatformTest extends DITest {
51
52
  * });
52
53
  * ```
53
54
  */
54
- static callback(): any;
55
+ static callback(): ((req: import("http").IncomingMessage, res: import("http").ServerResponse) => any) | undefined;
55
56
  static createRequest(options?: any): any;
56
57
  static createResponse(options?: any): any;
57
- static createRequestContext(options?: Partial<PlatformContextOptions & any>): PlatformContext;
58
+ static createRequestContext(options?: Partial<PlatformContextOptions & any>): PlatformContext<import("./PlatformRequest").PlatformRequest<any>, import("./PlatformResponse").PlatformResponse<any>>;
58
59
  }
@@ -1,9 +1,12 @@
1
1
  import { InjectorService } from "@tsed/di";
2
2
  import { PlatformContext } from "../domain/PlatformContext";
3
3
  import { IncomingEvent } from "../interfaces/IncomingEvent";
4
+ import { PlatformRequest } from "../services/PlatformRequest";
5
+ import { PlatformResponse } from "../services/PlatformResponse";
6
+ export declare function ignoreLog(ignoreUrlPatterns: any[] | undefined): ((ignore: boolean, data: any, url: string) => any) | undefined;
4
7
  /**
5
8
  * Create the TsED context to wrap request, response, injector, etc...
6
9
  * @param injector
7
10
  * @ignore
8
11
  */
9
- export declare function createContext(injector: InjectorService): (event: IncomingEvent) => Promise<PlatformContext>;
12
+ export declare function createContext(injector: InjectorService): (event: IncomingEvent) => Promise<PlatformContext<PlatformRequest<any>, PlatformResponse<any>>>;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { InjectorService } from "@tsed/di";
3
4
  import Https from "https";
4
5
  import Http from "http";
@@ -1,8 +1,8 @@
1
- import { InjectorService } from "@tsed/di";
2
1
  import { Type } from "@tsed/core";
2
+ import { InjectorService } from "@tsed/di";
3
3
  import { PlatformAdapter } from "../services/PlatformAdapter";
4
4
  interface CreateInjectorOptions {
5
- adapter?: Type<PlatformAdapter<any, any>>;
5
+ adapter?: Type<PlatformAdapter<any>>;
6
6
  settings?: Partial<TsED.Configuration>;
7
7
  }
8
8
  export declare function createInjector({ adapter, settings }: CreateInjectorOptions): InjectorService;
@@ -0,0 +1,2 @@
1
+ import { PlatformContext } from "../domain/PlatformContext";
2
+ export declare function ensureContext(request: any, cb: ($ctx: PlatformContext) => any, fallback?: () => void): any;
@@ -1,4 +1,6 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
2
4
  import type Http from "http";
3
5
  import type Https from "https";
4
6
  import type Http2 from "http2";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/common",
3
- "version": "7.0.0-beta.12",
3
+ "version": "7.0.0-beta.15",
4
4
  "description": "A TypeScript Framework on top of Express",
5
5
  "private": false,
6
6
  "source": "./src/index.ts",
@@ -17,7 +17,8 @@
17
17
  "build": "yarn barrels && yarn run build:esm && yarn run build:cjs",
18
18
  "build:cjs": "tsc --build tsconfig.compile.json",
19
19
  "build:esm": "tsc --build tsconfig.compile.esm.json",
20
- "barrels": "yarn barrelsby --delete -d ./src -e \"\\.spec\\.ts\" -e \"__mock__\" -e \".benchmark.ts\" -e \"getConfiguration\""
20
+ "barrels": "yarn barrelsby --delete -d ./src -e \"\\.spec\\.ts\" -e \"__mock__\" -e \".benchmark.ts\" -e \"getConfiguration\"",
21
+ "test": "cross-env NODE_ENV=test yarn jest --max-workers=2"
21
22
  },
22
23
  "keywords": [
23
24
  "Express",
@@ -61,31 +62,32 @@
61
62
  }
62
63
  ],
63
64
  "dependencies": {
64
- "@tsed/components-scan": "7.0.0-beta.12",
65
- "@tsed/core": "7.0.0-beta.12",
66
- "@tsed/di": "7.0.0-beta.12",
67
- "@tsed/exceptions": "7.0.0-beta.12",
68
- "@tsed/json-mapper": "7.0.0-beta.12",
69
- "@tsed/logger": ">=6.1.1",
70
- "@tsed/logger-file": ">=6.1.0",
71
- "@tsed/perf": "7.0.0-beta.12",
72
- "@tsed/platform-cache": "7.0.0-beta.12",
73
- "@tsed/platform-exceptions": "7.0.0-beta.12",
74
- "@tsed/platform-log-middleware": "7.0.0-beta.12",
75
- "@tsed/platform-middlewares": "7.0.0-beta.12",
76
- "@tsed/platform-params": "7.0.0-beta.12",
77
- "@tsed/platform-response-filter": "7.0.0-beta.12",
78
- "@tsed/platform-views": "7.0.0-beta.12",
79
- "@tsed/schema": "7.0.0-beta.12",
65
+ "@tsed/components-scan": "7.0.0-beta.15",
66
+ "@tsed/core": "7.0.0-beta.15",
67
+ "@tsed/di": "7.0.0-beta.15",
68
+ "@tsed/exceptions": "7.0.0-beta.15",
69
+ "@tsed/json-mapper": "7.0.0-beta.15",
70
+ "@tsed/logger": ">=6.2.0",
71
+ "@tsed/logger-file": ">=6.2.0",
72
+ "@tsed/perf": "7.0.0-beta.15",
73
+ "@tsed/platform-cache": "7.0.0-beta.15",
74
+ "@tsed/platform-exceptions": "7.0.0-beta.15",
75
+ "@tsed/platform-log-middleware": "7.0.0-beta.15",
76
+ "@tsed/platform-middlewares": "7.0.0-beta.15",
77
+ "@tsed/platform-params": "7.0.0-beta.15",
78
+ "@tsed/platform-response-filter": "7.0.0-beta.15",
79
+ "@tsed/platform-router": "7.0.0-beta.15",
80
+ "@tsed/platform-views": "7.0.0-beta.15",
81
+ "@tsed/schema": "7.0.0-beta.15",
80
82
  "@types/json-schema": "7.0.11",
81
83
  "@types/on-finished": "2.3.1",
82
84
  "on-finished": "2.4.1",
83
- "tslib": "2.3.1",
85
+ "tslib": "2.4.0",
84
86
  "uuid": "8.3.2"
85
87
  },
86
88
  "peerDependencies": {
87
- "@tsed/logger": ">=6.1.1",
88
- "@tsed/logger-file": ">=6.1.0"
89
+ "@tsed/logger": ">=6.2.0",
90
+ "@tsed/logger-file": ">=6.2.0"
89
91
  },
90
92
  "peerDependenciesMeta": {
91
93
  "@tsed/logger": {