@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureContext.js","sourceRoot":"","sources":["../../../src/utils/ensureContext.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAGpC,SAAgB,aAAa,CAAC,OAAY,EAAE,EAAkC,EAAE,QAAqB;IACnG,MAAM,IAAI,GAAG,IAAA,eAAU,GAAmB,CAAC;IAE3C,IAAI,IAAI,EAAE;QACR,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;KACjB;IAED,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE;QAC9B,OAAO,QAAQ,EAAE,CAAC;KACnB;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAZD,sCAYC","sourcesContent":["import {getContext} from \"@tsed/di\";\nimport {PlatformContext} from \"../domain/PlatformContext\";\n\nexport function ensureContext(request: any, cb: ($ctx: PlatformContext) => any, fallback?: () => void) {\n const $ctx = getContext<PlatformContext>();\n\n if ($ctx) {\n return cb($ctx);\n }\n\n if (!request?.$ctx && fallback) {\n return fallback();\n }\n\n return request.$ctx.runInContext(() => cb(request.$ctx));\n}\n"]}
@@ -9,10 +9,8 @@ function getConfiguration(configuration = {}, module = null) {
9
9
  }
10
10
  const store = module ? core_1.Store.from(module).get("configuration") || {} : {};
11
11
  const env = configuration.env || store.env || process.env.NODE_ENV || core_1.Env.DEV;
12
- const config = {
12
+ return {
13
13
  $$resolved: true,
14
- exclude: ["**/*.spec.ts", "**/*.spec.js"],
15
- componentsScan: ["${rootDir}/mvc/**/*.ts", "${rootDir}/services/**/*.ts", "${rootDir}/middlewares/**/*.ts"],
16
14
  env,
17
15
  httpPort: 8080,
18
16
  httpsPort: false,
@@ -23,11 +21,7 @@ function getConfiguration(configuration = {}, module = null) {
23
21
  ...store.scopes,
24
22
  ...configuration.scopes
25
23
  },
26
- mount: store.mount || configuration.mount
27
- ? (0, core_1.deepMerge)(store.mount || {}, configuration.mount || {})
28
- : {
29
- "/rest": "${rootDir}/controllers/**/*.ts"
30
- },
24
+ mount: (0, di_1.mergeMount)(store.mount, configuration.mount),
31
25
  logger: {
32
26
  debug: false,
33
27
  level: env === core_1.Env.TEST ? "off" : "info",
@@ -37,10 +31,6 @@ function getConfiguration(configuration = {}, module = null) {
37
31
  jsonIndentation: process.env.NODE_ENV === core_1.Env.PROD ? 0 : 2
38
32
  }
39
33
  };
40
- if (!configuration.disableComponentsScan && store.componentsScan && configuration.componentsScan) {
41
- config.componentsScan = [...store.componentsScan, ...configuration.componentsScan];
42
- }
43
- return config;
44
34
  }
45
35
  exports.getConfiguration = getConfiguration;
46
36
  //# sourceMappingURL=getConfiguration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../src/utils/getConfiguration.ts"],"names":[],"mappings":";;;AAAA,qCAAuD;AACvD,iCAAqD;AAErD,SAAgB,gBAAgB,CAAC,gBAAqB,EAAE,EAAE,SAA2B,IAAI;IACvF,IAAI,aAAa,CAAC,UAAU,EAAE;QAC5B,OAAO,aAAa,CAAC;KACtB;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAK,OAAO,CAAC,GAAG,CAAC,QAAgB,IAAI,UAAG,CAAC,GAAG,CAAC;IAEvF,MAAM,MAAM,GAAG;QACb,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;QACzC,cAAc,EAAE,CAAC,wBAAwB,EAAE,6BAA6B,EAAE,gCAAgC,CAAC;QAC3G,GAAG;QACH,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,KAAK;QAChB,GAAG,KAAK;QACR,GAAG,aAAa;QAChB,MAAM,EAAE;YACN,CAAC,iBAAY,CAAC,UAAU,CAAC,EAAE,kBAAa,CAAC,SAAS;YAClD,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,aAAa,CAAC,MAAM;SACxB;QACD,KAAK,EACH,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK;YAChC,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YACzD,CAAC,CAAC;gBACE,OAAO,EAAE,gCAAgC;aAC1C;QACP,MAAM,EAAE;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG,KAAK,UAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YACxC,UAAU,EAAE,IAAI;YAChB,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,aAAa,CAAC,MAAM;YACvB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,UAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;KACF,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,qBAAqB,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,EAAE;QAChG,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;KACpF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA3CD,4CA2CC","sourcesContent":["import {deepMerge, Env, Store, Type} from \"@tsed/core\";\nimport {ProviderScope, ProviderType} from \"@tsed/di\";\n\nexport function getConfiguration(configuration: any = {}, module: Type<any> | null = null) {\n if (configuration.$$resolved) {\n return configuration;\n }\n\n const store = module ? Store.from(module).get(\"configuration\") || {} : {};\n const env = configuration.env || store.env || (process.env.NODE_ENV as Env) || Env.DEV;\n\n const config = {\n $$resolved: true,\n exclude: [\"**/*.spec.ts\", \"**/*.spec.js\"],\n componentsScan: [\"${rootDir}/mvc/**/*.ts\", \"${rootDir}/services/**/*.ts\", \"${rootDir}/middlewares/**/*.ts\"],\n env,\n httpPort: 8080,\n httpsPort: false,\n ...store,\n ...configuration,\n scopes: {\n [ProviderType.CONTROLLER]: ProviderScope.SINGLETON,\n ...store.scopes,\n ...configuration.scopes\n },\n mount:\n store.mount || configuration.mount\n ? deepMerge(store.mount || {}, configuration.mount || {})\n : {\n \"/rest\": \"${rootDir}/controllers/**/*.ts\"\n },\n logger: {\n debug: false,\n level: env === Env.TEST ? \"off\" : \"info\",\n logRequest: true,\n ...store.logger,\n ...configuration.logger,\n jsonIndentation: process.env.NODE_ENV === Env.PROD ? 0 : 2\n }\n };\n\n if (!configuration.disableComponentsScan && store.componentsScan && configuration.componentsScan) {\n config.componentsScan = [...store.componentsScan, ...configuration.componentsScan];\n }\n\n return config;\n}\n"]}
1
+ {"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../src/utils/getConfiguration.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,iCAAiE;AAEjE,SAAgB,gBAAgB,CAAC,gBAAqB,EAAE,EAAE,SAA2B,IAAI;IACvF,IAAI,aAAa,CAAC,UAAU,EAAE;QAC5B,OAAO,aAAa,CAAC;KACtB;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAK,OAAO,CAAC,GAAG,CAAC,QAAgB,IAAI,UAAG,CAAC,GAAG,CAAC;IAEvF,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,GAAG;QACH,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,KAAK;QAChB,GAAG,KAAK;QACR,GAAG,aAAa;QAChB,MAAM,EAAE;YACN,CAAC,iBAAY,CAAC,UAAU,CAAC,EAAE,kBAAa,CAAC,SAAS;YAClD,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,aAAa,CAAC,MAAM;SACxB;QACD,KAAK,EAAE,IAAA,eAAU,EAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,GAAG,KAAK,UAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YACxC,UAAU,EAAE,IAAI;YAChB,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,aAAa,CAAC,MAAM;YACvB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,UAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;KACF,CAAC;AACJ,CAAC;AA9BD,4CA8BC","sourcesContent":["import {Env, Store, Type} from \"@tsed/core\";\nimport {mergeMount, ProviderScope, ProviderType} from \"@tsed/di\";\n\nexport function getConfiguration(configuration: any = {}, module: Type<any> | null = null) {\n if (configuration.$$resolved) {\n return configuration;\n }\n\n const store = module ? Store.from(module).get(\"configuration\") || {} : {};\n const env = configuration.env || store.env || (process.env.NODE_ENV as Env) || Env.DEV;\n\n return {\n $$resolved: true,\n env,\n httpPort: 8080,\n httpsPort: false,\n ...store,\n ...configuration,\n scopes: {\n [ProviderType.CONTROLLER]: ProviderScope.SINGLETON,\n ...store.scopes,\n ...configuration.scopes\n },\n mount: mergeMount(store.mount, configuration.mount),\n logger: {\n debug: false,\n level: env === Env.TEST ? \"off\" : \"info\",\n logRequest: true,\n ...store.logger,\n ...configuration.logger,\n jsonIndentation: process.env.NODE_ENV === Env.PROD ? 0 : 2\n }\n };\n}\n"]}
@@ -9,18 +9,20 @@ function printRoutes(routes) {
9
9
  PUT: "blue",
10
10
  DELETE: "red",
11
11
  PATCH: "magenta",
12
- ALL: "cyan"
12
+ ALL: "cyan",
13
+ STATICS: "white"
13
14
  };
14
15
  const list = routes.map((route) => {
15
- const obj = route.toJSON();
16
- const method = obj.method.toUpperCase();
17
- obj.method = {
18
- length: method.length,
19
- toString: () => {
20
- return (0, logger_1.colorize)(method, mapColor[method]);
16
+ const method = route.method.toUpperCase();
17
+ return {
18
+ ...route,
19
+ method: {
20
+ length: method.length,
21
+ toString: () => {
22
+ return (0, logger_1.colorize)(method, mapColor[method]);
23
+ }
21
24
  }
22
25
  };
23
- return obj;
24
26
  });
25
27
  const str = logger_1.$log.drawTable(list, {
26
28
  padding: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"printRoutes.js","sourceRoot":"","sources":["../../../src/utils/printRoutes.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAG5C,SAAgB,WAAW,CAAC,MAA8B;IACxD,MAAM,QAAQ,GAA4B;QACxC,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,MAAM;KACZ,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAExC,GAAG,CAAC,MAAM,GAAG;YACX,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,GAAG,EAAE;gBACb,OAAO,IAAA,iBAAQ,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC;SACK,CAAC;QAET,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,aAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QAC/B,OAAO,EAAE,CAAC;QACV,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,cAAc;SACrB;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAlCD,kCAkCC","sourcesContent":["import {$log, colorize} from \"@tsed/logger\";\nimport {PlatformRouteDetails} from \"../domain/PlatformRouteDetails\";\n\nexport function printRoutes(routes: PlatformRouteDetails[]) {\n const mapColor: {[key: string]: string} = {\n GET: \"green\",\n POST: \"yellow\",\n PUT: \"blue\",\n DELETE: \"red\",\n PATCH: \"magenta\",\n ALL: \"cyan\"\n };\n\n const list = routes.map((route) => {\n const obj = route.toJSON();\n const method = obj.method.toUpperCase();\n\n obj.method = {\n length: method.length,\n toString: () => {\n return colorize(method, mapColor[method]);\n }\n } as any;\n\n return obj;\n });\n\n const str = $log.drawTable(list, {\n padding: 1,\n header: {\n method: \"Method\",\n url: \"Endpoint\",\n name: \"Class method\"\n }\n });\n\n return \"\\n\" + str.trim();\n}\n"]}
1
+ {"version":3,"file":"printRoutes.js","sourceRoot":"","sources":["../../../src/utils/printRoutes.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAG5C,SAAgB,WAAW,CAAC,MAA8B;IACxD,MAAM,QAAQ,GAA4B;QACxC,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,MAAM;QACX,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAE1C,OAAO;YACL,GAAG,KAAK;YACR,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,GAAG,EAAE;oBACb,OAAO,IAAA,iBAAQ,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5C,CAAC;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,aAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QAC/B,OAAO,EAAE,CAAC;QACV,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,cAAc;SACrB;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAnCD,kCAmCC","sourcesContent":["import {$log, colorize} from \"@tsed/logger\";\nimport {PlatformRouteDetails} from \"../domain/PlatformRouteDetails\";\n\nexport function printRoutes(routes: PlatformRouteDetails[]) {\n const mapColor: {[key: string]: string} = {\n GET: \"green\",\n POST: \"yellow\",\n PUT: \"blue\",\n DELETE: \"red\",\n PATCH: \"magenta\",\n ALL: \"cyan\",\n STATICS: \"white\"\n };\n\n const list = routes.map((route) => {\n const method = route.method.toUpperCase();\n\n return {\n ...route,\n method: {\n length: method.length,\n toString: () => {\n return colorize(method, mapColor[method]);\n }\n }\n };\n });\n\n const str = $log.drawTable(list, {\n padding: 1,\n header: {\n method: \"Method\",\n url: \"Endpoint\",\n name: \"Class method\"\n }\n });\n\n return \"\\n\" + str.trim();\n}\n"]}
@@ -1,15 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setResponseHeaders = void 0;
4
- function mergeHeaders(specHeaders, headers) {
5
- return Object.entries(specHeaders).reduce((headers, [key, item]) => {
6
- key = key.toLowerCase();
7
- return {
8
- ...headers,
9
- [key]: headers[key] === undefined ? String(item.example) : headers[key]
10
- };
11
- }, headers);
12
- }
13
4
  /**
14
5
  * @ignore
15
6
  */
@@ -24,11 +15,14 @@ function setResponseHeaders(ctx) {
24
15
  response.status(operation.getStatus());
25
16
  }
26
17
  const statusCode = response.statusCode;
27
- const headers = operation.getHeadersOf(response.statusCode);
28
- const mergedHeaders = mergeHeaders(headers, response.getHeaders());
29
- response.setHeaders(mergedHeaders);
18
+ const headers = operation.getHeadersOf(statusCode);
19
+ Object.entries(headers).forEach(([key, item]) => {
20
+ if (!response.get(key)) {
21
+ response.setHeader(key, String(item.example));
22
+ }
23
+ });
30
24
  if (operation.isRedirection(statusCode)) {
31
- response.redirect(statusCode, String(mergedHeaders["location"]));
25
+ response.redirect(statusCode, response.get("location"));
32
26
  }
33
27
  }
34
28
  exports.setResponseHeaders = setResponseHeaders;
@@ -1 +1 @@
1
- {"version":3,"file":"setResponseHeaders.js","sourceRoot":"","sources":["../../../src/utils/setResponseHeaders.ts"],"names":[],"mappings":";;;AAIA,SAAS,YAAY,CAAC,WAA2D,EAAE,OAA4B;IAC7G,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACjE,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO;YACL,GAAG,OAAO;YACV,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACxE,CAAC;IACJ,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,GAAG,CAAC;IACjC,MAAM,EAAC,SAAS,EAAC,GAAG,QAAQ,CAAC;IAE7B,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;QACrB,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QACzB,kDAAkD;QAClD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;KACxC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QACvC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAClE;AACH,CAAC;AAtBD,gDAsBC","sourcesContent":["import {JsonHeader} from \"@tsed/schema\";\nimport {OutgoingHttpHeaders} from \"http\";\nimport {PlatformContext} from \"../domain/PlatformContext\";\n\nfunction mergeHeaders(specHeaders: Record<string, JsonHeader & {example: string}>, headers: OutgoingHttpHeaders) {\n return Object.entries(specHeaders).reduce((headers, [key, item]) => {\n key = key.toLowerCase();\n return {\n ...headers,\n [key]: headers[key] === undefined ? String(item.example) : headers[key]\n };\n }, headers);\n}\n\n/**\n * @ignore\n */\nexport function setResponseHeaders(ctx: PlatformContext) {\n const {response, endpoint} = ctx;\n const {operation} = endpoint;\n\n if (response.isDone()) {\n return;\n }\n\n if (!response.hasStatus()) {\n // apply status only if the isn't already modified\n response.status(operation.getStatus());\n }\n\n const statusCode = response.statusCode;\n const headers = operation.getHeadersOf(response.statusCode);\n const mergedHeaders = mergeHeaders(headers, response.getHeaders());\n\n response.setHeaders(mergedHeaders);\n\n if (operation.isRedirection(statusCode)) {\n response.redirect(statusCode, String(mergedHeaders[\"location\"]));\n }\n}\n"]}
1
+ {"version":3,"file":"setResponseHeaders.js","sourceRoot":"","sources":["../../../src/utils/setResponseHeaders.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,GAAG,CAAC;IACjC,MAAM,EAAC,SAAS,EAAC,GAAG,QAAQ,CAAC;IAE7B,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;QACrB,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QACzB,kDAAkD;QAClD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;KACxC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAEnD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAQ,EAAE,EAAE;QACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QACvC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAzBD,gDAyBC","sourcesContent":["import {PlatformContext} from \"../domain/PlatformContext\";\n\n/**\n * @ignore\n */\nexport function setResponseHeaders(ctx: PlatformContext) {\n const {response, endpoint} = ctx;\n const {operation} = endpoint;\n\n if (response.isDone()) {\n return;\n }\n\n if (!response.hasStatus()) {\n // apply status only if the isn't already modified\n response.status(operation.getStatus());\n }\n\n const statusCode = response.statusCode;\n const headers = operation.getHeadersOf(statusCode);\n\n Object.entries(headers).forEach(([key, item]: any[]) => {\n if (!response.get(key)) {\n response.setHeader(key, String(item.example));\n }\n });\n\n if (operation.isRedirection(statusCode)) {\n response.redirect(statusCode, response.get(\"location\"));\n }\n}\n"]}
@@ -1,51 +1,50 @@
1
- var _PlatformBuilder_injector, _PlatformBuilder_rootModule, _PlatformBuilder_adapter, _PlatformBuilder_promise, _PlatformBuilder_servers, _PlatformBuilder_listeners;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
1
  import { nameOf } from "@tsed/core";
4
- import { colors, setLoggerLevel } from "@tsed/di";
2
+ import { colors, setLoggerConfiguration } from "@tsed/di";
5
3
  import { getMiddlewaresForHook } from "@tsed/platform-middlewares";
6
4
  import { Platform } from "../services/Platform.js";
7
- import { PlatformApplication } from "../services/PlatformApplication.js";
8
- import { getStaticsOptions } from "../utils/getStaticsOptions.js";
9
- import { getConfiguration } from "../utils/getConfiguration.js";
10
5
  import { PlatformAdapter } from "../services/PlatformAdapter.js";
11
- import { createInjector } from "../utils/createInjector.js";
12
- import { printRoutes } from "../utils/printRoutes.js";
6
+ import { PlatformApplication } from "../services/PlatformApplication.js";
13
7
  import { createHttpServer } from "../utils/createHttpServer.js";
14
8
  import { createHttpsServer } from "../utils/createHttpsServer.js";
9
+ import { createInjector } from "../utils/createInjector.js";
10
+ import { getConfiguration } from "../utils/getConfiguration.js";
11
+ import { getStaticsOptions } from "../utils/getStaticsOptions.js";
12
+ import { printRoutes } from "../utils/printRoutes.js";
15
13
  /**
16
14
  * @platform
17
15
  */
18
16
  export class PlatformBuilder {
17
+ static adapter;
18
+ name = "";
19
+ startedAt = new Date();
20
+ current = new Date();
21
+ #injector;
22
+ #rootModule;
23
+ #adapter;
24
+ #promise;
25
+ #servers;
26
+ #listeners = [];
19
27
  constructor(adapter, module, settings) {
20
- this.name = "";
21
- this.startedAt = new Date();
22
- this.current = new Date();
23
- _PlatformBuilder_injector.set(this, void 0);
24
- _PlatformBuilder_rootModule.set(this, void 0);
25
- _PlatformBuilder_adapter.set(this, void 0);
26
- _PlatformBuilder_promise.set(this, void 0);
27
- _PlatformBuilder_servers.set(this, void 0);
28
- _PlatformBuilder_listeners.set(this, []);
29
- __classPrivateFieldSet(this, _PlatformBuilder_rootModule, module, "f");
28
+ this.#rootModule = module;
30
29
  const configuration = getConfiguration(settings, module);
31
30
  const adapterKlass = adapter || PlatformBuilder.adapter;
32
31
  const name = nameOf(adapterKlass).replace("Platform", "").toLowerCase();
33
32
  configuration.PLATFORM_NAME = name;
34
33
  this.name = name;
35
- __classPrivateFieldSet(this, _PlatformBuilder_injector, createInjector({
34
+ this.#injector = createInjector({
36
35
  adapter: adapterKlass,
37
36
  settings: configuration
38
- }), "f");
39
- __classPrivateFieldSet(this, _PlatformBuilder_adapter, __classPrivateFieldGet(this, _PlatformBuilder_injector, "f").get(PlatformAdapter), "f");
37
+ });
38
+ this.#adapter = this.#injector.get(PlatformAdapter);
40
39
  this.createHttpServers();
41
- __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").onInit && __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").onInit();
40
+ this.#adapter.onInit && this.#adapter.onInit();
42
41
  this.log("Injector created...");
43
42
  }
44
43
  get injector() {
45
- return __classPrivateFieldGet(this, _PlatformBuilder_injector, "f");
44
+ return this.#injector;
46
45
  }
47
46
  get rootModule() {
48
- return __classPrivateFieldGet(this, _PlatformBuilder_injector, "f").get(__classPrivateFieldGet(this, _PlatformBuilder_rootModule, "f"));
47
+ return this.#injector.get(this.#rootModule);
49
48
  }
50
49
  get app() {
51
50
  return this.injector.get(PlatformApplication);
@@ -54,7 +53,7 @@ export class PlatformBuilder {
54
53
  return this.injector.get(Platform);
55
54
  }
56
55
  get adapter() {
57
- return __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f");
56
+ return this.#adapter;
58
57
  }
59
58
  /**
60
59
  * Return the settings configured by the decorator @@Configuration@@.
@@ -84,15 +83,13 @@ export class PlatformBuilder {
84
83
  return this.injector.logger;
85
84
  }
86
85
  get disableBootstrapLog() {
87
- var _a;
88
- return (_a = this.settings.logger) === null || _a === void 0 ? void 0 : _a.disableBootstrapLog;
86
+ return this.settings.get("logger.disableBootstrapLog");
89
87
  }
90
88
  static create(module, settings) {
91
89
  return this.build(module, {
92
90
  httpsPort: false,
93
91
  httpPort: false,
94
- ...settings,
95
- disableComponentsScan: true
92
+ ...settings
96
93
  });
97
94
  }
98
95
  static build(module, { adapter, ...settings }) {
@@ -104,19 +101,10 @@ export class PlatformBuilder {
104
101
  * @param settings
105
102
  */
106
103
  static async bootstrap(module, settings) {
107
- const configuration = getConfiguration(settings, module);
108
- const disableComponentsScan = configuration.disableComponentsScan || !!process.env.WEBPACK;
109
- if (!disableComponentsScan) {
110
- const { importProviders } = await import("@tsed/components-scan");
111
- await importProviders(configuration);
112
- }
113
- return this.build(module, configuration).bootstrap();
104
+ return this.build(module, settings).bootstrap();
114
105
  }
115
106
  callback(req, res) {
116
- if (req && res) {
117
- return this.app.callback()(req, res);
118
- }
119
- return this.app.callback();
107
+ return this.app.callback(req, res);
120
108
  }
121
109
  log(...data) {
122
110
  return !this.disableBootstrapLog && this.logger.info(...data, this.diff());
@@ -124,10 +112,9 @@ export class PlatformBuilder {
124
112
  /**
125
113
  * Add classes to the components list
126
114
  * @param classes
127
- * @deprecated
128
115
  */
129
116
  addComponents(classes) {
130
- this.settings.componentsScan = this.settings.componentsScan.concat(classes);
117
+ this.settings.set("imports", this.settings.get("imports", []).concat(classes));
131
118
  return this;
132
119
  }
133
120
  /**
@@ -156,23 +143,21 @@ export class PlatformBuilder {
156
143
  });
157
144
  }
158
145
  async runLifecycle() {
159
- setLoggerLevel(this.injector);
146
+ setLoggerConfiguration(this.injector);
160
147
  await this.loadInjector();
161
- __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").useContext && __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").useContext();
162
- __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").useRouter && __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").useRouter();
148
+ this.#adapter.useContext();
163
149
  await this.loadRoutes();
164
- await this.logRoutes();
165
150
  return this;
166
151
  }
167
152
  async loadInjector() {
168
153
  const { injector } = this;
169
154
  this.log("Build providers");
170
- await injector.loadModule(__classPrivateFieldGet(this, _PlatformBuilder_rootModule, "f"));
155
+ await injector.loadModule(this.#rootModule);
171
156
  this.log("Settings and injector loaded...");
172
157
  await this.callHook("$afterInit");
173
158
  }
174
159
  async listen(network = true) {
175
- if (!__classPrivateFieldGet(this, _PlatformBuilder_promise, "f")) {
160
+ if (!this.#promise) {
176
161
  await this.bootstrap();
177
162
  }
178
163
  await this.callHook("$beforeListen");
@@ -185,7 +170,7 @@ export class PlatformBuilder {
185
170
  async stop() {
186
171
  await this.callHook("$onDestroy");
187
172
  await this.injector.destroy();
188
- __classPrivateFieldGet(this, _PlatformBuilder_listeners, "f").map((server) => {
173
+ this.#listeners.map((server) => {
189
174
  return new Promise((resolve) => server.close(() => resolve(undefined)));
190
175
  });
191
176
  }
@@ -218,14 +203,13 @@ export class PlatformBuilder {
218
203
  return this;
219
204
  }
220
205
  async bootstrap() {
221
- __classPrivateFieldSet(this, _PlatformBuilder_promise, __classPrivateFieldGet(this, _PlatformBuilder_promise, "f") || this.runLifecycle(), "f");
222
- return __classPrivateFieldGet(this, _PlatformBuilder_promise, "f");
206
+ this.#promise = this.#promise || this.runLifecycle();
207
+ return this.#promise;
223
208
  }
224
209
  async loadRoutes() {
225
- var _a;
226
- __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").beforeLoadRoutes && (await __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").beforeLoadRoutes());
210
+ this.#adapter.beforeLoadRoutes && (await this.#adapter.beforeLoadRoutes());
227
211
  // istanbul ignore next
228
- if (((_a = this.settings.logger) === null || _a === void 0 ? void 0 : _a.level) !== "off") {
212
+ if (this.settings.get("logger.level") !== "off") {
229
213
  const { PlatformLogMiddleware } = await import("@tsed/platform-log-middleware");
230
214
  this.app.use(PlatformLogMiddleware);
231
215
  }
@@ -241,7 +225,13 @@ export class PlatformBuilder {
241
225
  await this.callHook("$onRoutesInit");
242
226
  await this.loadStatics("$afterRoutesInit");
243
227
  await this.callHook("$afterRoutesInit");
244
- __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").afterLoadRoutes && (await __classPrivateFieldGet(this, _PlatformBuilder_adapter, "f").afterLoadRoutes());
228
+ this.#adapter.afterLoadRoutes && (await this.#adapter.afterLoadRoutes());
229
+ await this.mapRouters();
230
+ }
231
+ async mapRouters() {
232
+ const layers = this.platform.getLayers();
233
+ this.#adapter.mapLayers(layers);
234
+ return this.logRoutes(layers.filter((layer) => layer.isProvider()));
245
235
  }
246
236
  diff() {
247
237
  const ms = colors.yellow(`+${new Date().getTime() - this.current.getTime()}ms`);
@@ -259,19 +249,26 @@ export class PlatformBuilder {
259
249
  });
260
250
  }
261
251
  createHttpServers() {
262
- __classPrivateFieldSet(this, _PlatformBuilder_servers, [createHttpServer(__classPrivateFieldGet(this, _PlatformBuilder_injector, "f"), this.callback()), createHttpsServer(__classPrivateFieldGet(this, _PlatformBuilder_injector, "f"), this.callback())].filter(Boolean), "f");
252
+ this.#servers = [createHttpServer(this.#injector, this.callback()), createHttpsServer(this.#injector, this.callback())].filter(Boolean);
263
253
  }
264
254
  async listenServers() {
265
- __classPrivateFieldSet(this, _PlatformBuilder_listeners, await Promise.all(__classPrivateFieldGet(this, _PlatformBuilder_servers, "f").map((cb) => cb && cb())), "f");
255
+ this.#listeners = await Promise.all(this.#servers.map((cb) => cb && cb()));
266
256
  }
267
- async logRoutes() {
268
- var _a;
269
- const { logger, platform } = this;
257
+ async logRoutes(layers) {
258
+ const { logger } = this;
270
259
  this.log("Routes mounted...");
271
- if (!((_a = this.settings.logger) === null || _a === void 0 ? void 0 : _a.disableRoutesSummary) && !this.disableBootstrapLog) {
272
- logger.info(printRoutes(await this.injector.alterAsync("$logRoutes", platform.getRoutes())));
260
+ if (!this.settings.get("logger.disableRoutesSummary") && !this.disableBootstrapLog) {
261
+ const routes = layers.map((layer) => {
262
+ return {
263
+ url: layer.path,
264
+ method: layer.method,
265
+ name: layer.opts.name || `${layer.provider.className}.constructor()`,
266
+ className: layer.opts.className || layer.provider.className,
267
+ methodClassName: layer.opts.methodClassName || ""
268
+ };
269
+ });
270
+ logger.info(printRoutes(await this.injector.alterAsync("$logRoutes", routes)));
273
271
  }
274
272
  }
275
273
  }
276
- _PlatformBuilder_injector = new WeakMap(), _PlatformBuilder_rootModule = new WeakMap(), _PlatformBuilder_adapter = new WeakMap(), _PlatformBuilder_promise = new WeakMap(), _PlatformBuilder_servers = new WeakMap(), _PlatformBuilder_listeners = new WeakMap();
277
274
  //# sourceMappingURL=PlatformBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformBuilder.js","sourceRoot":"","sources":["../../../src/builder/PlatformBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {nameOf, Type} from \"@tsed/core\";\nimport {colors, InjectorService, ProviderOpts, setLoggerLevel, TokenProvider} from \"@tsed/di\";\nimport {getMiddlewaresForHook} from \"@tsed/platform-middlewares\";\nimport {Platform} from \"../services/Platform\";\nimport {PlatformApplication} from \"../services/PlatformApplication\";\nimport {PlatformStaticsSettings} from \"../config/interfaces/PlatformStaticsSettings\";\nimport {getStaticsOptions} from \"../utils/getStaticsOptions\";\nimport {Route} from \"../interfaces/Route\";\nimport {getConfiguration} from \"../utils/getConfiguration\";\nimport type {IncomingMessage, Server, ServerResponse} from \"http\";\nimport {PlatformAdapter, PlatformBuilderSettings} from \"../services/PlatformAdapter\";\nimport {createInjector} from \"../utils/createInjector\";\nimport {printRoutes} from \"../utils/printRoutes\";\nimport {createHttpServer} from \"../utils/createHttpServer\";\nimport {createHttpsServer} from \"../utils/createHttpsServer\";\nimport type Https from \"https\";\n\n/**\n * @platform\n */\nexport class PlatformBuilder<App = TsED.Application, Router = TsED.Router> {\n public static adapter: Type<PlatformAdapter<any, any>>;\n\n readonly name: string = \"\";\n protected startedAt = new Date();\n protected current = new Date();\n readonly #injector: InjectorService;\n readonly #rootModule: Type<any>;\n readonly #adapter: PlatformAdapter<App, Router>;\n #promise: Promise<this>;\n #servers: (() => Promise<Server | Https.Server>)[];\n #listeners: (Server | Https.Server)[] = [];\n\n protected constructor(adapter: Type<PlatformAdapter<App, Router>> | undefined, module: Type, settings: Partial<TsED.Configuration>) {\n this.#rootModule = module;\n\n const configuration = getConfiguration(settings, module);\n const adapterKlass: Type<PlatformAdapter<App, Router>> = adapter || (PlatformBuilder.adapter as any);\n const name = nameOf(adapterKlass).replace(\"Platform\", \"\").toLowerCase();\n\n configuration.PLATFORM_NAME = name;\n this.name = name;\n\n this.#injector = createInjector({\n adapter: adapterKlass,\n settings: configuration\n });\n\n this.#adapter = this.#injector.get<PlatformAdapter<App, Router>>(PlatformAdapter)!;\n\n this.createHttpServers();\n\n this.#adapter.onInit && this.#adapter.onInit();\n\n this.log(\"Injector created...\");\n }\n\n get injector(): InjectorService {\n return this.#injector;\n }\n\n get rootModule(): any {\n return this.#injector.get(this.#rootModule);\n }\n\n get app(): PlatformApplication<App, Router> {\n return this.injector.get<PlatformApplication<App, Router>>(PlatformApplication)!;\n }\n\n get platform() {\n return this.injector.get<Platform>(Platform)!;\n }\n\n get adapter() {\n return this.#adapter;\n }\n\n /**\n * Return the settings configured by the decorator @@Configuration@@.\n *\n * ```typescript\n * @Configuration({\n * rootDir: Path.resolve(__dirname),\n * port: 8000,\n * httpsPort: 8080,\n * mount: {\n * \"/rest\": \"${rootDir}/controllers/**\\/*.js\"\n * }\n * })\n * export class Server {\n * $onInit(){\n * console.log(this.settings); // {rootDir, port, httpsPort,...}\n * }\n * }\n * ```\n *\n * @returns {PlatformConfiguration}\n */\n get settings() {\n return this.injector.settings;\n }\n\n get logger() {\n return this.injector.logger;\n }\n\n get disableBootstrapLog() {\n return this.settings.logger?.disableBootstrapLog;\n }\n\n static create<App = TsED.Application, Router = TsED.Router>(module: Type<any>, settings: PlatformBuilderSettings<App, Router>) {\n return this.build(module, {\n httpsPort: false,\n httpPort: false,\n ...settings,\n disableComponentsScan: true\n });\n }\n\n static build<App = TsED.Application, Router = TsED.Router>(\n module: Type<any>,\n {adapter, ...settings}: PlatformBuilderSettings<App, Router>\n ) {\n return new PlatformBuilder(adapter, module, settings);\n }\n\n /**\n * Bootstrap a server application\n * @param module\n * @param settings\n */\n static async bootstrap<App = TsED.Application, Router = TsED.Router>(module: Type<any>, settings: PlatformBuilderSettings<App, Router>) {\n const configuration = getConfiguration(settings, module);\n const disableComponentsScan = configuration.disableComponentsScan || !!process.env.WEBPACK;\n\n if (!disableComponentsScan) {\n const {importProviders} = await import(\"@tsed/components-scan\");\n await importProviders(configuration);\n }\n\n return this.build<App, Router>(module, configuration).bootstrap();\n }\n\n callback(): (req: IncomingMessage, res: ServerResponse) => void;\n callback(req: IncomingMessage, res: ServerResponse): void;\n callback(req?: IncomingMessage, res?: ServerResponse) {\n if (req && res) {\n return this.app.callback()(req, res);\n }\n\n return this.app.callback();\n }\n\n log(...data: any[]) {\n return !this.disableBootstrapLog && this.logger.info(...data, this.diff());\n }\n\n /**\n * Add classes to the components list\n * @param classes\n * @deprecated\n */\n public addComponents(classes: any | any[]) {\n this.settings.componentsScan = this.settings.componentsScan.concat(classes);\n\n return this;\n }\n\n /**\n * Add classes decorated by @@Controller@@ to components container.\n *\n * ### Example\n *\n * ```typescript\n * @Controller('/ctrl')\n * class MyController{\n * }\n *\n * platform.addControllers('/rest', [MyController])\n * ```\n *\n * ::: tip\n * If the MyController class isn't decorated, the class will be ignored.\n * :::\n *\n * @param {string} endpoint\n * @param {any[]} controllers\n */\n public addControllers(endpoint: string, controllers: TokenProvider | TokenProvider[]) {\n [].concat(controllers).forEach((token) => {\n this.settings.routes.push({token, route: endpoint});\n });\n }\n\n public async runLifecycle() {\n setLoggerLevel(this.injector);\n\n await this.loadInjector();\n\n this.#adapter.useContext && this.#adapter.useContext();\n this.#adapter.useRouter && this.#adapter.useRouter();\n\n await this.loadRoutes();\n await this.logRoutes();\n\n return this;\n }\n\n async loadInjector() {\n const {injector} = this;\n this.log(\"Build providers\");\n\n await injector.loadModule(this.#rootModule);\n\n this.log(\"Settings and injector loaded...\");\n\n await this.callHook(\"$afterInit\");\n }\n\n async listen(network = true) {\n if (!this.#promise) {\n await this.bootstrap();\n }\n\n await this.callHook(\"$beforeListen\");\n\n if (network) {\n await this.listenServers();\n }\n\n await this.callHook(\"$afterListen\");\n\n await this.ready();\n }\n\n async stop() {\n await this.callHook(\"$onDestroy\");\n await this.injector.destroy();\n\n this.#listeners.map((server) => {\n return new Promise((resolve) => server.close(() => resolve(undefined)));\n });\n }\n\n public async ready() {\n const {startedAt} = this;\n\n await this.callHook(\"$onReady\");\n await this.injector.emit(\"$onServerReady\");\n\n this.log(`Started in ${new Date().getTime() - startedAt.getTime()} ms`);\n }\n\n async callHook(hook: string, ...args: any[]) {\n const {injector} = this;\n\n if (!this.disableBootstrapLog) {\n injector.logger.debug(`\\x1B[1mCall hook ${hook}\\x1B[22m`);\n }\n\n // Load middlewares for the given hook\n this.loadMiddlewaresFor(hook);\n\n // call hooks added by providers\n await injector.emit(hook, ...args);\n }\n\n async loadStatics(hook: string): Promise<void> {\n const statics = this.settings.get<PlatformStaticsSettings>(\"statics\");\n\n getStaticsOptions(statics).forEach(({path, options}) => {\n if (options.hook === hook) {\n this.platform.app.statics(path, options);\n }\n });\n }\n\n useProvider(token: Type<any>, settings?: Partial<ProviderOpts>) {\n this.injector.addProvider(token, settings);\n\n return this;\n }\n\n async bootstrap() {\n this.#promise = this.#promise || this.runLifecycle();\n\n return this.#promise;\n }\n\n protected async loadRoutes() {\n this.#adapter.beforeLoadRoutes && (await this.#adapter.beforeLoadRoutes());\n\n // istanbul ignore next\n if (this.settings.logger?.level !== \"off\") {\n const {PlatformLogMiddleware} = await import(\"@tsed/platform-log-middleware\");\n this.app.use(PlatformLogMiddleware);\n }\n\n this.log(\"Load routes\");\n\n if (this.rootModule.$beforeRoutesInit) {\n await this.rootModule.$beforeRoutesInit();\n this.rootModule.$beforeRoutesInit = () => {};\n }\n\n await this.loadStatics(\"$beforeRoutesInit\");\n await this.callHook(\"$beforeRoutesInit\");\n\n const routes = this.injector.settings.get<Route[]>(\"routes\");\n\n this.platform.addRoutes(routes);\n\n await this.callHook(\"$onRoutesInit\");\n\n await this.loadStatics(\"$afterRoutesInit\");\n\n await this.callHook(\"$afterRoutesInit\");\n\n this.#adapter.afterLoadRoutes && (await this.#adapter.afterLoadRoutes());\n }\n\n protected diff() {\n const ms = colors.yellow(`+${new Date().getTime() - this.current.getTime()}ms`);\n this.current = new Date();\n return ms;\n }\n\n /**\n * Load middlewares from configuration for the given hook\n * @param hook\n * @protected\n */\n protected loadMiddlewaresFor(hook: string): void {\n return getMiddlewaresForHook(hook, this.settings, \"$beforeRoutesInit\").forEach(({use}) => {\n this.app.use(use);\n });\n }\n\n protected createHttpServers() {\n this.#servers = [createHttpServer(this.#injector, this.callback()), createHttpsServer(this.#injector, this.callback())].filter(\n Boolean\n ) as any[];\n }\n\n protected async listenServers(): Promise<void> {\n this.#listeners = await Promise.all(this.#servers.map((cb) => cb && cb()));\n }\n\n protected async logRoutes() {\n const {logger, platform} = this;\n\n this.log(\"Routes mounted...\");\n\n if (!this.settings.logger?.disableRoutesSummary && !this.disableBootstrapLog) {\n logger.info(printRoutes(await this.injector.alterAsync(\"$logRoutes\", platform.getRoutes())));\n }\n }\n}\n"]}
1
+ {"version":3,"file":"PlatformBuilder.js","sourceRoot":"","sources":["../../../src/builder/PlatformBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAO,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,MAAM,EAAiC,sBAAsB,EAAgB,MAAM,UAAU,CAAC;AACtG,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAOjE,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAA0B,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,eAAe;IACnB,MAAM,CAAC,OAAO,CAA6B;IAEzC,IAAI,GAAW,EAAE,CAAC;IACjB,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,SAAS,CAAkB;IAC3B,WAAW,CAAY;IACvB,QAAQ,CAAuB;IACxC,QAAQ,CAAgB;IACxB,QAAQ,CAA2C;IACnD,UAAU,GAA8B,EAAE,CAAC;IAE3C,YAAsB,OAA+C,EAAE,MAAY,EAAE,QAAqC;QACxH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAE1B,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,YAAY,GAA+B,OAAO,IAAK,eAAe,CAAC,OAAe,CAAC;QAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAExE,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;YAC9B,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAuB,eAAe,CAAE,CAAC;QAE3E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAE/C,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAA2B,mBAAmB,CAAE,CAAC;IAC3E,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAW,QAAQ,CAAE,CAAC;IAChD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,MAAM,CAAyB,MAAiB,EAAE,QAAsC;QAC7F,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,GAAG,QAAQ;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAyB,MAAiB,EAAE,EAAC,OAAO,EAAE,GAAG,QAAQ,EAA+B;QAC1G,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAyB,MAAiB,EAAE,QAAsC;QACtG,OAAO,IAAI,CAAC,KAAK,CAAM,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;IACvD,CAAC;IAID,QAAQ,CAAC,GAAqB,EAAE,GAAoB;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAI,EAAE,GAAI,CAAC,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,GAAG,IAAW;QAChB,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,OAAsB;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAQ,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,cAAc,CAAC,QAAgB,EAAE,WAA4C;QAClF,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE3B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE5B,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5C,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAE5C,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;SACxB;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAErC,IAAI,OAAO,EAAE;YACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;SAC5B;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAEpC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAE9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC;QAEzB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,GAAG,IAAW;QACzC,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,UAAU,CAAC,CAAC;SAC3D;QAED,sCAAsC;QACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE9B,gCAAgC;QAChC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAA0B,SAAS,CAAC,CAAC;QAEtE,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,EAAE,EAAE;YACrD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAgB,EAAE,QAAgC;QAC5D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAErD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAE3E,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;YAC/C,MAAM,EAAC,qBAAqB,EAAC,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;YAC9E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;SAC9C;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAU,QAAQ,CAAC,CAAC;QAE7D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAErC,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAExC,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEzC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,IAAI;QACZ,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACO,kBAAkB,CAAC,IAAY;QACvC,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE;YACvF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAES,iBAAiB;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAC5H,OAAO,CACC,CAAC;IACb,CAAC;IAES,KAAK,CAAC,aAAa;QAC3B,IAAI,CAAC,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,MAAuB;QAC/C,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAClF,MAAM,MAAM,GAA2B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1D,OAAO;oBACL,GAAG,EAAE,KAAK,CAAC,IAAI;oBACf,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,gBAAgB;oBACpE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS;oBAC3D,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE;iBAC1B,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;SAChF;IACH,CAAC;CACF","sourcesContent":["import {nameOf, Type} from \"@tsed/core\";\nimport {colors, InjectorService, ProviderOpts, setLoggerConfiguration, TokenProvider} from \"@tsed/di\";\nimport {getMiddlewaresForHook} from \"@tsed/platform-middlewares\";\nimport {PlatformLayer} from \"@tsed/platform-router\";\nimport type {IncomingMessage, Server, ServerResponse} from \"http\";\nimport type Https from \"https\";\nimport {PlatformStaticsSettings} from \"../config/interfaces/PlatformStaticsSettings\";\nimport {PlatformRouteDetails} from \"../domain/PlatformRouteDetails\";\nimport {Route} from \"../interfaces/Route\";\nimport {Platform} from \"../services/Platform\";\nimport {PlatformAdapter, PlatformBuilderSettings} from \"../services/PlatformAdapter\";\nimport {PlatformApplication} from \"../services/PlatformApplication\";\nimport {createHttpServer} from \"../utils/createHttpServer\";\nimport {createHttpsServer} from \"../utils/createHttpsServer\";\nimport {createInjector} from \"../utils/createInjector\";\nimport {getConfiguration} from \"../utils/getConfiguration\";\nimport {getStaticsOptions} from \"../utils/getStaticsOptions\";\nimport {printRoutes} from \"../utils/printRoutes\";\n\n/**\n * @platform\n */\nexport class PlatformBuilder<App = TsED.Application> {\n public static adapter: Type<PlatformAdapter<any>>;\n\n readonly name: string = \"\";\n protected startedAt = new Date();\n protected current = new Date();\n readonly #injector: InjectorService;\n readonly #rootModule: Type<any>;\n readonly #adapter: PlatformAdapter<App>;\n #promise: Promise<this>;\n #servers: (() => Promise<Server | Https.Server>)[];\n #listeners: (Server | Https.Server)[] = [];\n\n protected constructor(adapter: Type<PlatformAdapter<App>> | undefined, module: Type, settings: Partial<TsED.Configuration>) {\n this.#rootModule = module;\n\n const configuration = getConfiguration(settings, module);\n const adapterKlass: Type<PlatformAdapter<App>> = adapter || (PlatformBuilder.adapter as any);\n const name = nameOf(adapterKlass).replace(\"Platform\", \"\").toLowerCase();\n\n configuration.PLATFORM_NAME = name;\n this.name = name;\n\n this.#injector = createInjector({\n adapter: adapterKlass,\n settings: configuration\n });\n\n this.#adapter = this.#injector.get<PlatformAdapter<App>>(PlatformAdapter)!;\n\n this.createHttpServers();\n\n this.#adapter.onInit && this.#adapter.onInit();\n\n this.log(\"Injector created...\");\n }\n\n get injector(): InjectorService {\n return this.#injector;\n }\n\n get rootModule(): any {\n return this.#injector.get(this.#rootModule);\n }\n\n get app(): PlatformApplication<App> {\n return this.injector.get<PlatformApplication<App>>(PlatformApplication)!;\n }\n\n get platform() {\n return this.injector.get<Platform>(Platform)!;\n }\n\n get adapter() {\n return this.#adapter;\n }\n\n /**\n * Return the settings configured by the decorator @@Configuration@@.\n *\n * ```typescript\n * @Configuration({\n * rootDir: Path.resolve(__dirname),\n * port: 8000,\n * httpsPort: 8080,\n * mount: {\n * \"/rest\": \"${rootDir}/controllers/**\\/*.js\"\n * }\n * })\n * export class Server {\n * $onInit(){\n * console.log(this.settings); // {rootDir, port, httpsPort,...}\n * }\n * }\n * ```\n *\n * @returns {PlatformConfiguration}\n */\n get settings() {\n return this.injector.settings;\n }\n\n get logger() {\n return this.injector.logger;\n }\n\n get disableBootstrapLog() {\n return this.settings.get(\"logger.disableBootstrapLog\");\n }\n\n static create<App = TsED.Application>(module: Type<any>, settings: PlatformBuilderSettings<App>) {\n return this.build(module, {\n httpsPort: false,\n httpPort: false,\n ...settings\n });\n }\n\n static build<App = TsED.Application>(module: Type<any>, {adapter, ...settings}: PlatformBuilderSettings<App>) {\n return new PlatformBuilder(adapter, module, settings);\n }\n\n /**\n * Bootstrap a server application\n * @param module\n * @param settings\n */\n static async bootstrap<App = TsED.Application>(module: Type<any>, settings: PlatformBuilderSettings<App>) {\n return this.build<App>(module, settings).bootstrap();\n }\n\n callback(): (req: IncomingMessage, res: ServerResponse) => any;\n callback(req: IncomingMessage, res: ServerResponse): any;\n callback(req?: IncomingMessage, res?: ServerResponse) {\n return this.app.callback(req!, res!);\n }\n\n log(...data: any[]) {\n return !this.disableBootstrapLog && this.logger.info(...data, this.diff());\n }\n\n /**\n * Add classes to the components list\n * @param classes\n */\n public addComponents(classes: Type | Type[]) {\n this.settings.set(\"imports\", this.settings.get<any[]>(\"imports\", []).concat(classes));\n\n return this;\n }\n\n /**\n * Add classes decorated by @@Controller@@ to components container.\n *\n * ### Example\n *\n * ```typescript\n * @Controller('/ctrl')\n * class MyController{\n * }\n *\n * platform.addControllers('/rest', [MyController])\n * ```\n *\n * ::: tip\n * If the MyController class isn't decorated, the class will be ignored.\n * :::\n *\n * @param {string} endpoint\n * @param {any[]} controllers\n */\n public addControllers(endpoint: string, controllers: TokenProvider | TokenProvider[]) {\n [].concat(controllers).forEach((token) => {\n this.settings.routes.push({token, route: endpoint});\n });\n }\n\n public async runLifecycle() {\n setLoggerConfiguration(this.injector);\n\n await this.loadInjector();\n\n this.#adapter.useContext();\n\n await this.loadRoutes();\n\n return this;\n }\n\n async loadInjector() {\n const {injector} = this;\n this.log(\"Build providers\");\n\n await injector.loadModule(this.#rootModule);\n\n this.log(\"Settings and injector loaded...\");\n\n await this.callHook(\"$afterInit\");\n }\n\n async listen(network = true) {\n if (!this.#promise) {\n await this.bootstrap();\n }\n\n await this.callHook(\"$beforeListen\");\n\n if (network) {\n await this.listenServers();\n }\n\n await this.callHook(\"$afterListen\");\n\n await this.ready();\n }\n\n async stop() {\n await this.callHook(\"$onDestroy\");\n await this.injector.destroy();\n\n this.#listeners.map((server) => {\n return new Promise((resolve) => server.close(() => resolve(undefined)));\n });\n }\n\n public async ready() {\n const {startedAt} = this;\n\n await this.callHook(\"$onReady\");\n await this.injector.emit(\"$onServerReady\");\n\n this.log(`Started in ${new Date().getTime() - startedAt.getTime()} ms`);\n }\n\n async callHook(hook: string, ...args: any[]) {\n const {injector} = this;\n\n if (!this.disableBootstrapLog) {\n injector.logger.debug(`\\x1B[1mCall hook ${hook}\\x1B[22m`);\n }\n\n // Load middlewares for the given hook\n this.loadMiddlewaresFor(hook);\n\n // call hooks added by providers\n await injector.emit(hook, ...args);\n }\n\n async loadStatics(hook: string): Promise<void> {\n const statics = this.settings.get<PlatformStaticsSettings>(\"statics\");\n\n getStaticsOptions(statics).forEach(({path, options}) => {\n if (options.hook === hook) {\n this.platform.app.statics(path, options);\n }\n });\n }\n\n useProvider(token: Type<any>, settings?: Partial<ProviderOpts>) {\n this.injector.addProvider(token, settings);\n\n return this;\n }\n\n async bootstrap() {\n this.#promise = this.#promise || this.runLifecycle();\n\n return this.#promise;\n }\n\n protected async loadRoutes() {\n this.#adapter.beforeLoadRoutes && (await this.#adapter.beforeLoadRoutes());\n\n // istanbul ignore next\n if (this.settings.get(\"logger.level\") !== \"off\") {\n const {PlatformLogMiddleware} = await import(\"@tsed/platform-log-middleware\");\n this.app.use(PlatformLogMiddleware);\n }\n\n this.log(\"Load routes\");\n\n if (this.rootModule.$beforeRoutesInit) {\n await this.rootModule.$beforeRoutesInit();\n this.rootModule.$beforeRoutesInit = () => {};\n }\n\n await this.loadStatics(\"$beforeRoutesInit\");\n await this.callHook(\"$beforeRoutesInit\");\n\n const routes = this.injector.settings.get<Route[]>(\"routes\");\n\n this.platform.addRoutes(routes);\n\n await this.callHook(\"$onRoutesInit\");\n\n await this.loadStatics(\"$afterRoutesInit\");\n\n await this.callHook(\"$afterRoutesInit\");\n\n this.#adapter.afterLoadRoutes && (await this.#adapter.afterLoadRoutes());\n\n await this.mapRouters();\n }\n\n protected async mapRouters() {\n const layers = this.platform.getLayers();\n\n this.#adapter.mapLayers(layers);\n\n return this.logRoutes(layers.filter((layer) => layer.isProvider()));\n }\n\n protected diff() {\n const ms = colors.yellow(`+${new Date().getTime() - this.current.getTime()}ms`);\n this.current = new Date();\n return ms;\n }\n\n /**\n * Load middlewares from configuration for the given hook\n * @param hook\n * @protected\n */\n protected loadMiddlewaresFor(hook: string): void {\n return getMiddlewaresForHook(hook, this.settings, \"$beforeRoutesInit\").forEach(({use}) => {\n this.app.use(use);\n });\n }\n\n protected createHttpServers() {\n this.#servers = [createHttpServer(this.#injector, this.callback()), createHttpsServer(this.#injector, this.callback())].filter(\n Boolean\n ) as any[];\n }\n\n protected async listenServers(): Promise<void> {\n this.#listeners = await Promise.all(this.#servers.map((cb) => cb && cb()));\n }\n\n protected async logRoutes(layers: PlatformLayer[]) {\n const {logger} = this;\n\n this.log(\"Routes mounted...\");\n\n if (!this.settings.get(\"logger.disableRoutesSummary\") && !this.disableBootstrapLog) {\n const routes: PlatformRouteDetails[] = layers.map((layer) => {\n return {\n url: layer.path,\n method: layer.method,\n name: layer.opts.name || `${layer.provider.className}.constructor()`,\n className: layer.opts.className || layer.provider.className,\n methodClassName: layer.opts.methodClassName || \"\"\n } as PlatformRouteDetails;\n });\n\n logger.info(printRoutes(await this.injector.alterAsync(\"$logRoutes\", routes)));\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformLoggerSettings.js","sourceRoot":"","sources":["../../../../src/config/interfaces/PlatformLoggerSettings.ts"],"names":[],"mappings":"","sourcesContent":["export interface PlatformLoggerSettings {\n /**\n * Enable debug mode. By default debug is false.\n */\n debug?: boolean;\n /**\n * Enable info mode. By default debug is false.\n */\n level?: \"debug\" | \"info\" | \"warn\" | \"error\" | \"off\";\n /**\n * Enable log performance tracker and disable log server.\n */\n perf?: boolean;\n /**\n * List of regexp to ignore log.\n */\n ignoreUrlPatterns?: string[];\n /**\n * The number of space characters to use as white space in JSON output. Default is 2 (0 in production).\n */\n jsonIndentation?: number;\n /**\n * A function called for each incoming request to create a request id.\n * @returns {number}\n */\n reqIdBuilder?: (req: TsED.Request) => string;\n /**\n * Disable routes table displayed in the logger. By default debug is `false`.\n */\n disableRoutesSummary?: boolean;\n /**\n * Disable bootstrap log displayed in the logger. By default debug is `false`.\n */\n disableBootstrapLog?: boolean;\n /**\n * Specify log format. Example: `%[%d{[yyyy-MM-dd hh:mm:ss,SSS}] %p%] %m`. See [@tsed/logger configuration](https://tsedio.github.io/logger/).\n */\n format?: string;\n /**\n * Specify the log stack size for the context.logger. When the stack.length is reach, the logger is flushed during the request.\n * Default size is set to 30.\n */\n maxStackSize?: number;\n}\n"]}
1
+ {"version":3,"file":"PlatformLoggerSettings.js","sourceRoot":"","sources":["../../../../src/config/interfaces/PlatformLoggerSettings.ts"],"names":[],"mappings":"","sourcesContent":["import {DILoggerOptions} from \"@tsed/di\";\n\nexport interface PlatformLoggerSettings extends DILoggerOptions {}\n"]}
@@ -1,7 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { getHostInfoFromPort } from "@tsed/core";
3
3
  import { DIConfiguration, Injectable, ProviderScope } from "@tsed/di";
4
- import { $log } from "@tsed/logger";
5
4
  const rootDir = process.cwd();
6
5
  /**
7
6
  * `PlatformConfiguration` contains all information about your Server configuration.
@@ -10,18 +9,6 @@ let PlatformConfiguration = class PlatformConfiguration extends DIConfiguration
10
9
  constructor() {
11
10
  super({ rootDir });
12
11
  }
13
- get version() {
14
- return this.getRaw("version");
15
- }
16
- set version(v) {
17
- this.setRaw("version", v);
18
- }
19
- get rootDir() {
20
- return this.getRaw("rootDir");
21
- }
22
- set rootDir(value) {
23
- this.setRaw("rootDir", value);
24
- }
25
12
  get port() {
26
13
  return this.httpPort;
27
14
  }
@@ -46,30 +33,12 @@ let PlatformConfiguration = class PlatformConfiguration extends DIConfiguration
46
33
  set httpsPort(value) {
47
34
  this.setRaw("httpsPort", value);
48
35
  }
49
- get env() {
50
- return this.getRaw("env");
51
- }
52
- set env(value) {
53
- this.setRaw("env", value);
54
- }
55
36
  get mount() {
56
37
  return this.get("mount");
57
38
  }
58
39
  set mount(value) {
59
40
  this.setRaw("mount", value);
60
41
  }
61
- /**
62
- * @deprecated
63
- */
64
- get componentsScan() {
65
- return this.resolve(this.getRaw("componentsScan"));
66
- }
67
- /**
68
- * @deprecated
69
- */
70
- set componentsScan(value) {
71
- this.setRaw("componentsScan", value);
72
- }
73
42
  get statics() {
74
43
  return this.getRaw("statics") || this.getRaw("serveStatic") || {};
75
44
  }
@@ -82,51 +51,12 @@ let PlatformConfiguration = class PlatformConfiguration extends DIConfiguration
82
51
  set acceptMimes(value) {
83
52
  this.setRaw("acceptMimes", value || []);
84
53
  }
85
- get debug() {
86
- return this.logger.level === "debug";
87
- }
88
- set debug(debug) {
89
- this.logger = { ...this.logger, level: debug ? "debug" : "info" };
90
- }
91
54
  get converter() {
92
55
  return this.get("converter") || {};
93
56
  }
94
57
  set converter(options) {
95
58
  this.setRaw("converter", options);
96
59
  }
97
- get logger() {
98
- return this.get("logger");
99
- }
100
- set logger(value) {
101
- const logger = { ...this.logger, ...value };
102
- logger.debug = logger.level === "debug";
103
- this.setRaw("logger", logger);
104
- this.setRaw("debug", logger.debug);
105
- if (logger.format) {
106
- $log.appenders.set("stdout", {
107
- type: "stdout",
108
- levels: ["info", "debug"],
109
- layout: {
110
- type: "pattern",
111
- pattern: logger.format
112
- }
113
- });
114
- $log.appenders.set("stderr", {
115
- levels: ["trace", "fatal", "error", "warn"],
116
- type: "stderr",
117
- layout: {
118
- type: "pattern",
119
- pattern: logger.format
120
- }
121
- });
122
- }
123
- }
124
- get exclude() {
125
- return this.get("exclude");
126
- }
127
- set exclude(exclude) {
128
- this.setRaw("exclude", exclude);
129
- }
130
60
  get additionalProperties() {
131
61
  return this.get("converter.additionalProperties") === "accept";
132
62
  }