@venok/http 1.0.1-canary.5 → 2.0.0

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 (337) hide show
  1. package/dist/constants.js +33 -0
  2. package/dist/decorators/controller.decorator.js +45 -0
  3. package/dist/decorators/header.decorator.js +28 -0
  4. package/dist/decorators/http-code.decorator.js +22 -0
  5. package/dist/decorators/http-params.decorator.js +63 -0
  6. package/dist/decorators/method.decorator.js +57 -0
  7. package/dist/decorators/redirect.decorator.js +28 -0
  8. package/dist/decorators/version.decorator.js +31 -0
  9. package/dist/enums/method.enum.js +32 -0
  10. package/dist/enums/paramtypes.enum.js +33 -0
  11. package/dist/enums/status.enum.js +71 -0
  12. package/dist/enums/version-type.enum.js +27 -0
  13. package/dist/exceptions/bad-gateway.exception.js +29 -0
  14. package/dist/exceptions/bad-request.exception.js +29 -0
  15. package/dist/exceptions/conflict.exception.js +29 -0
  16. package/dist/exceptions/expectation-failed.exception.js +29 -0
  17. package/dist/exceptions/failed-dependency.exception.js +29 -0
  18. package/dist/exceptions/forbidden.exception.js +29 -0
  19. package/dist/exceptions/gateway-timeout.exception.js +29 -0
  20. package/dist/exceptions/gone.exception.js +29 -0
  21. package/dist/exceptions/http-version-not-supported.exception.js +29 -0
  22. package/dist/exceptions/http.exception.js +94 -0
  23. package/dist/exceptions/im-a-teapot.exception.js +29 -0
  24. package/dist/exceptions/internal-server-error.exception.js +29 -0
  25. package/dist/exceptions/length-required.exception.js +29 -0
  26. package/dist/exceptions/method-not-allowed.exception.js +29 -0
  27. package/dist/exceptions/misdirected.exception.js +29 -0
  28. package/dist/exceptions/not-acceptable.exception.js +29 -0
  29. package/dist/exceptions/not-found.exception.js +29 -0
  30. package/dist/exceptions/not-implemented.exception.js +29 -0
  31. package/dist/exceptions/payload-too-large.exception.js +29 -0
  32. package/dist/exceptions/payment-required.exception.js +29 -0
  33. package/dist/exceptions/precondition-failed.exception.js +29 -0
  34. package/dist/exceptions/precondition-required.exception.js +29 -0
  35. package/dist/exceptions/proxy-authentication-required.exception.js +29 -0
  36. package/dist/exceptions/request-timeout.exception.js +29 -0
  37. package/dist/exceptions/requested-range-not-satisfiable.exception.js +29 -0
  38. package/dist/exceptions/service-unavailable.exception.js +29 -0
  39. package/dist/exceptions/too-many-requests.exception.js +29 -0
  40. package/dist/exceptions/unauthorized.exception.js +29 -0
  41. package/dist/exceptions/unprocessable-entity.exception.js +29 -0
  42. package/dist/exceptions/unsupported-media-type.exception.js +29 -0
  43. package/dist/exceptions/uri-too-long.exception.js +29 -0
  44. package/dist/filters/context.js +28 -0
  45. package/dist/filters/filter.js +56 -0
  46. package/dist/helpers/discovery.helper.js +69 -0
  47. package/dist/helpers/messages.helper.js +41 -0
  48. package/dist/helpers/middleware.helper.js +69 -0
  49. package/dist/helpers/path.helper.js +53 -0
  50. package/dist/helpers/route.helper.js +54 -0
  51. package/dist/http/adapter.js +294 -0
  52. package/dist/http/config.js +67 -0
  53. package/dist/http/configurable-module.js +26 -0
  54. package/dist/http/context.js +117 -0
  55. package/dist/http/explorer.js +133 -0
  56. package/dist/http/module.js +35 -0
  57. package/dist/http/starter-module.js +85 -0
  58. package/dist/index.d.ts +2117 -0
  59. package/dist/index.js +82 -0
  60. package/dist/interfaces/adapter.interface.js +0 -0
  61. package/dist/interfaces/exception.interface.js +0 -0
  62. package/dist/interfaces/index.js +7 -0
  63. package/dist/interfaces/middleware/config-proxy.interface.js +0 -0
  64. package/dist/interfaces/middleware/consumer.interface.js +0 -0
  65. package/dist/interfaces/middleware/index.js +3 -0
  66. package/dist/interfaces/options.interface.js +0 -0
  67. package/dist/interfaces/prefix.interface.js +0 -0
  68. package/dist/interfaces/router/definition.interface.js +0 -0
  69. package/dist/interfaces/router/exclude-route.interface.js +0 -0
  70. package/dist/interfaces/router/index.js +7 -0
  71. package/dist/interfaces/router/info.interface.js +0 -0
  72. package/dist/interfaces/router/path-metadata.interface.js +0 -0
  73. package/dist/interfaces/router/tree.interface.js +0 -0
  74. package/dist/interfaces/router/version.interface.js +21 -0
  75. package/dist/middleware/builder.js +96 -0
  76. package/dist/middleware/module.js +22 -0
  77. package/dist/middleware/routes-mapper.js +107 -0
  78. package/dist/middleware/service.js +48 -0
  79. package/dist/middleware/tree.js +91 -0
  80. package/dist/router/finder.js +64 -0
  81. package/dist/router/module.js +89 -0
  82. package/dist/router/path-factory.js +110 -0
  83. package/dist/symbols.js +33 -0
  84. package/package.json +41 -46
  85. package/adapter/adapter.d.ts +0 -57
  86. package/adapter/adapter.js +0 -58
  87. package/adapter/host.d.ts +0 -27
  88. package/adapter/host.js +0 -33
  89. package/application/application.d.ts +0 -18
  90. package/application/application.js +0 -51
  91. package/application/config.d.ts +0 -16
  92. package/application/config.js +0 -47
  93. package/application/http.module-defenition.d.ts +0 -8
  94. package/application/http.module-defenition.js +0 -6
  95. package/application/http.module.d.ts +0 -3
  96. package/application/http.module.js +0 -21
  97. package/application/http.service.d.ts +0 -11
  98. package/application/http.service.js +0 -43
  99. package/application/starter.d.ts +0 -41
  100. package/application/starter.js +0 -140
  101. package/constants.d.ts +0 -12
  102. package/constants.js +0 -15
  103. package/context/context.d.ts +0 -56
  104. package/context/context.js +0 -102
  105. package/context/response.controller.d.ts +0 -30
  106. package/context/response.controller.js +0 -86
  107. package/decorators/controller.decorator.d.ts +0 -82
  108. package/decorators/controller.decorator.js +0 -53
  109. package/decorators/header.decorator.d.ts +0 -12
  110. package/decorators/header.decorator.js +0 -23
  111. package/decorators/http-code.decorator.d.ts +0 -9
  112. package/decorators/http-code.decorator.js +0 -19
  113. package/decorators/index.d.ts +0 -9
  114. package/decorators/index.js +0 -25
  115. package/decorators/redirect.decorator.d.ts +0 -6
  116. package/decorators/redirect.decorator.js +0 -16
  117. package/decorators/render.decorator.d.ts +0 -10
  118. package/decorators/render.decorator.js +0 -20
  119. package/decorators/request-mapping.decorator.d.ts +0 -78
  120. package/decorators/request-mapping.decorator.js +0 -98
  121. package/decorators/route-params.decorator.d.ts +0 -378
  122. package/decorators/route-params.decorator.js +0 -227
  123. package/decorators/sse.decorator.d.ts +0 -6
  124. package/decorators/sse.decorator.js +0 -20
  125. package/decorators/version.decorator.d.ts +0 -7
  126. package/decorators/version.decorator.js +0 -20
  127. package/enums/http-status.enum.d.ts +0 -53
  128. package/enums/http-status.enum.js +0 -57
  129. package/enums/index.d.ts +0 -4
  130. package/enums/index.js +0 -20
  131. package/enums/request-method.enum.d.ts +0 -11
  132. package/enums/request-method.enum.js +0 -15
  133. package/enums/route-paramtypes.enum.d.ts +0 -14
  134. package/enums/route-paramtypes.enum.js +0 -18
  135. package/enums/version-type.enum.d.ts +0 -9
  136. package/enums/version-type.enum.js +0 -13
  137. package/errors/bad-gateway.exception.d.ts +0 -33
  138. package/errors/bad-gateway.exception.js +0 -41
  139. package/errors/bad-request.exception.d.ts +0 -33
  140. package/errors/bad-request.exception.js +0 -41
  141. package/errors/conflict.exception.d.ts +0 -33
  142. package/errors/conflict.exception.js +0 -41
  143. package/errors/forbidden.exception.d.ts +0 -33
  144. package/errors/forbidden.exception.js +0 -41
  145. package/errors/gateway-timeout.exception.d.ts +0 -33
  146. package/errors/gateway-timeout.exception.js +0 -41
  147. package/errors/gone.exception.d.ts +0 -33
  148. package/errors/gone.exception.js +0 -41
  149. package/errors/http-version-not-supported.exception.d.ts +0 -33
  150. package/errors/http-version-not-supported.exception.js +0 -41
  151. package/errors/http.exception.d.ts +0 -79
  152. package/errors/http.exception.js +0 -123
  153. package/errors/im-a-teapot.exception.d.ts +0 -36
  154. package/errors/im-a-teapot.exception.js +0 -44
  155. package/errors/index.d.ts +0 -11
  156. package/errors/index.js +0 -27
  157. package/errors/internal-server-error.exception.d.ts +0 -33
  158. package/errors/internal-server-error.exception.js +0 -41
  159. package/errors/invalid-middleware-configuration.exception.d.ts +0 -4
  160. package/errors/invalid-middleware-configuration.exception.js +0 -11
  161. package/errors/invalid-middleware.exception.d.ts +0 -4
  162. package/errors/invalid-middleware.exception.js +0 -11
  163. package/errors/not-found.exception.d.ts +0 -33
  164. package/errors/not-found.exception.js +0 -41
  165. package/errors/unknown-request-mapping.exception.d.ts +0 -5
  166. package/errors/unknown-request-mapping.exception.js +0 -11
  167. package/exceptions/messages.d.ts +0 -4
  168. package/exceptions/messages.js +0 -13
  169. package/explorers/path.explorer.d.ts +0 -8
  170. package/explorers/path.explorer.js +0 -38
  171. package/explorers/router.explorer.d.ts +0 -51
  172. package/explorers/router.explorer.js +0 -195
  173. package/factory/context-id.factory.d.ts +0 -41
  174. package/factory/context-id.factory.js +0 -52
  175. package/factory/index.d.ts +0 -4
  176. package/factory/index.js +0 -20
  177. package/factory/method.factory.d.ts +0 -5
  178. package/factory/method.factory.js +0 -30
  179. package/factory/params.factory.d.ts +0 -5
  180. package/factory/params.factory.js +0 -39
  181. package/factory/path.factory.d.ts +0 -13
  182. package/factory/path.factory.js +0 -95
  183. package/filters/context.d.ts +0 -9
  184. package/filters/context.js +0 -15
  185. package/filters/filter.d.ts +0 -22
  186. package/filters/filter.js +0 -78
  187. package/helpers/adapter.helper.d.ts +0 -27
  188. package/helpers/adapter.helper.js +0 -37
  189. package/helpers/exclude-route.helper.d.ts +0 -4
  190. package/helpers/exclude-route.helper.js +0 -18
  191. package/helpers/flatten-routes.helper.d.ts +0 -5
  192. package/helpers/flatten-routes.helper.js +0 -27
  193. package/helpers/index.d.ts +0 -6
  194. package/helpers/index.js +0 -22
  195. package/helpers/messages.helper.d.ts +0 -6
  196. package/helpers/messages.helper.js +0 -25
  197. package/helpers/path.helper.d.ts +0 -3
  198. package/helpers/path.helper.js +0 -13
  199. package/helpers/sse.helper.d.ts +0 -45
  200. package/helpers/sse.helper.js +0 -83
  201. package/index.d.ts +0 -1
  202. package/index.js +0 -3
  203. package/interfaces/http/cors.interface.d.ts +0 -58
  204. package/interfaces/http/cors.interface.js +0 -2
  205. package/interfaces/http/exception.interface.d.ts +0 -6
  206. package/interfaces/http/exception.interface.js +0 -2
  207. package/interfaces/http/exclude-route.interface.d.ts +0 -15
  208. package/interfaces/http/exclude-route.interface.js +0 -2
  209. package/interfaces/http/index.d.ts +0 -10
  210. package/interfaces/http/index.js +0 -26
  211. package/interfaces/http/message-event.interface.d.ts +0 -6
  212. package/interfaces/http/message-event.interface.js +0 -2
  213. package/interfaces/http/module.inteface.d.ts +0 -5
  214. package/interfaces/http/module.inteface.js +0 -2
  215. package/interfaces/http/options.interface.d.ts +0 -127
  216. package/interfaces/http/options.interface.js +0 -2
  217. package/interfaces/http/path-metadata.interface.d.ts +0 -31
  218. package/interfaces/http/path-metadata.interface.js +0 -2
  219. package/interfaces/http/prefix-options.interface.d.ts +0 -7
  220. package/interfaces/http/prefix-options.interface.js +0 -2
  221. package/interfaces/http/raw-request.d.ts +0 -4
  222. package/interfaces/http/raw-request.js +0 -2
  223. package/interfaces/http/routes.interface.d.ts +0 -7
  224. package/interfaces/http/routes.interface.js +0 -2
  225. package/interfaces/http/server.interface.d.ts +0 -54
  226. package/interfaces/http/server.interface.js +0 -2
  227. package/interfaces/index.d.ts +0 -3
  228. package/interfaces/index.js +0 -19
  229. package/interfaces/middleware/config-proxy.interface.d.ts +0 -23
  230. package/interfaces/middleware/config-proxy.interface.js +0 -2
  231. package/interfaces/middleware/configuration.interface.d.ts +0 -12
  232. package/interfaces/middleware/configuration.interface.js +0 -2
  233. package/interfaces/middleware/consumer.interface.d.ts +0 -16
  234. package/interfaces/middleware/consumer.interface.js +0 -2
  235. package/interfaces/middleware/index.d.ts +0 -4
  236. package/interfaces/middleware/index.js +0 -20
  237. package/interfaces/middleware/middleware.interface.d.ts +0 -7
  238. package/interfaces/middleware/middleware.interface.js +0 -2
  239. package/interfaces/router/callback-paramtypes.interface.d.ts +0 -1
  240. package/interfaces/router/callback-paramtypes.interface.js +0 -2
  241. package/interfaces/router/definition.interface.d.ts +0 -10
  242. package/interfaces/router/definition.interface.js +0 -2
  243. package/interfaces/router/index.d.ts +0 -3
  244. package/interfaces/router/index.js +0 -19
  245. package/interfaces/router/version-options.interface.d.ts +0 -92
  246. package/interfaces/router/version-options.interface.js +0 -9
  247. package/middleware/builder.d.ts +0 -15
  248. package/middleware/builder.js +0 -78
  249. package/middleware/container.d.ts +0 -13
  250. package/middleware/container.js +0 -50
  251. package/middleware/extractor.d.ts +0 -15
  252. package/middleware/extractor.js +0 -50
  253. package/middleware/index.d.ts +0 -1
  254. package/middleware/index.js +0 -17
  255. package/middleware/module.d.ts +0 -33
  256. package/middleware/module.js +0 -180
  257. package/middleware/resolver.d.ts +0 -10
  258. package/middleware/resolver.js +0 -27
  259. package/middleware/routes-mapper.d.ts +0 -19
  260. package/middleware/routes-mapper.js +0 -111
  261. package/middleware/utils.d.ts +0 -8
  262. package/middleware/utils.js +0 -86
  263. package/router/module.d.ts +0 -18
  264. package/router/module.js +0 -88
  265. package/router/resolver.d.ts +0 -31
  266. package/router/resolver.js +0 -128
  267. package/storage/http-instance.storage.d.ts +0 -9
  268. package/storage/http-instance.storage.js +0 -19
  269. package/stream/index.d.ts +0 -1
  270. package/stream/index.js +0 -17
  271. package/stream/interfaces/index.d.ts +0 -2
  272. package/stream/interfaces/index.js +0 -18
  273. package/stream/interfaces/streamable-handler-response.interface.d.ts +0 -12
  274. package/stream/interfaces/streamable-handler-response.interface.js +0 -2
  275. package/stream/interfaces/streamable-options.interface.d.ts +0 -10
  276. package/stream/interfaces/streamable-options.interface.js +0 -2
  277. package/stream/streamable-file.d.ts +0 -22
  278. package/stream/streamable-file.js +0 -55
  279. package/test/context/response.controller.spec.d.ts +0 -1
  280. package/test/context/response.controller.spec.js +0 -328
  281. package/test/decorators/controller.decorator.spec.d.ts +0 -1
  282. package/test/decorators/controller.decorator.spec.js +0 -113
  283. package/test/decorators/header.decorator.spec.d.ts +0 -1
  284. package/test/decorators/header.decorator.spec.js +0 -33
  285. package/test/decorators/http-code.decorator.spec.d.ts +0 -1
  286. package/test/decorators/http-code.decorator.spec.js +0 -30
  287. package/test/decorators/redirect.decorator.spec.d.ts +0 -1
  288. package/test/decorators/redirect.decorator.spec.js +0 -36
  289. package/test/decorators/render.decorator.spec.d.ts +0 -1
  290. package/test/decorators/render.decorator.spec.js +0 -30
  291. package/test/decorators/request-mapping.decorator.spec.d.ts +0 -1
  292. package/test/decorators/request-mapping.decorator.spec.js +0 -85
  293. package/test/decorators/route-params.decorator.spec.d.ts +0 -1
  294. package/test/decorators/route-params.decorator.spec.js +0 -493
  295. package/test/decorators/sse.decorator.spec.d.ts +0 -1
  296. package/test/decorators/sse.decorator.spec.js +0 -35
  297. package/test/decorators/version.decorator.spec.d.ts +0 -1
  298. package/test/decorators/version.decorator.spec.js +0 -43
  299. package/test/exceptions/handler.spec.d.ts +0 -1
  300. package/test/exceptions/handler.spec.js +0 -145
  301. package/test/exceptions/proxy.spec.d.ts +0 -1
  302. package/test/exceptions/proxy.spec.js +0 -74
  303. package/test/explorers/path.explorer.spec.d.ts +0 -1
  304. package/test/explorers/path.explorer.spec.js +0 -190
  305. package/test/explorers/router.explorer.spec.d.ts +0 -1
  306. package/test/explorers/router.explorer.spec.js +0 -206
  307. package/test/factory/method.factory.spec.d.ts +0 -1
  308. package/test/factory/method.factory.spec.js +0 -33
  309. package/test/factory/params.factory.spec.d.ts +0 -1
  310. package/test/factory/params.factory.spec.js +0 -104
  311. package/test/factory/path.factory.spec.d.ts +0 -1
  312. package/test/factory/path.factory.spec.js +0 -260
  313. package/test/filters/context.spec.d.ts +0 -1
  314. package/test/filters/context.spec.js +0 -96
  315. package/test/filters/filter.spec.d.ts +0 -1
  316. package/test/filters/filter.spec.js +0 -96
  317. package/test/helpers/flatten-routes.helper.spec.d.ts +0 -1
  318. package/test/helpers/flatten-routes.helper.spec.js +0 -131
  319. package/test/helpers/sse.helper.spec.d.ts +0 -1
  320. package/test/helpers/sse.helper.spec.js +0 -132
  321. package/test/middleware/builder.spec.d.ts +0 -1
  322. package/test/middleware/builder.spec.js +0 -235
  323. package/test/middleware/container.spec.d.ts +0 -1
  324. package/test/middleware/container.spec.js +0 -81
  325. package/test/middleware/module.spec.d.ts +0 -1
  326. package/test/middleware/module.spec.js +0 -206
  327. package/test/middleware/route-info-path-extractor.spec.d.ts +0 -1
  328. package/test/middleware/route-info-path-extractor.spec.js +0 -123
  329. package/test/middleware/routes-mapper.spec.d.ts +0 -1
  330. package/test/middleware/routes-mapper.spec.js +0 -162
  331. package/test/middleware/utils.spec.d.ts +0 -1
  332. package/test/middleware/utils.spec.js +0 -132
  333. package/test/router/module.spec.d.ts +0 -1
  334. package/test/router/module.spec.js +0 -40
  335. package/test/router/resolver.spec.d.ts +0 -1
  336. package/test/router/resolver.spec.js +0 -326
  337. package/tsconfig.tsbuildinfo +0 -1
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const module_1 = require("../../router/module");
5
- const module_2 = require("../../../core/injector/module/module");
6
- const core_1 = require("../../../core");
7
- class TestModuleClass {
8
- }
9
- describe("RouterModule", () => {
10
- const routes = [{ path: "test", module: TestModuleClass }];
11
- describe("register", () => {
12
- it("should return a dynamic module with routes registered as a provider", () => {
13
- (0, chai_1.expect)(module_1.RouterModule.register(routes)).to.deep.equal({
14
- module: module_1.RouterModule,
15
- providers: [
16
- {
17
- provide: module_1.ROUTES,
18
- useValue: routes,
19
- },
20
- ],
21
- });
22
- });
23
- });
24
- describe("when instantiated", () => {
25
- it('should update the "targetModulesByContainer" weak map', () => {
26
- const moduleRef = new module_2.Module(TestModuleClass, new core_1.VenokContainer(null));
27
- const container = new core_1.ModulesContainer([[TestModuleClass.name, moduleRef]]);
28
- new module_1.RouterModule(container, routes);
29
- class NotRegisteredModuleClass {
30
- }
31
- new module_1.RouterModule(container, [
32
- {
33
- path: "random",
34
- module: NotRegisteredModuleClass,
35
- },
36
- ]);
37
- (0, chai_1.expect)(module_1.targetModulesByContainer.get(container).has(moduleRef)).to.be.true;
38
- });
39
- });
40
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,326 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const chai_1 = require("chai");
16
- const sinon_1 = __importDefault(require("sinon"));
17
- const controller_decorator_1 = require("../../decorators/controller.decorator");
18
- const decorators_1 = require("../../decorators");
19
- const core_1 = require("../../../core");
20
- const resolver_1 = require("../../router/resolver");
21
- const serialized_graph_1 = require("../../../core/inspector/serialized-graph");
22
- const injector_1 = require("../../../core/injector/injector");
23
- const graph_inspector_1 = require("../../../core/inspector/graph-inspector");
24
- const wrapper_1 = require("../../../core/injector/instance/wrapper");
25
- const adapter_helper_1 = require("../../helpers/adapter.helper");
26
- const enums_1 = require("../../enums");
27
- const constants_1 = require("../../../core/constants");
28
- const errors_1 = require("../../errors");
29
- const config_1 = require("../../application/config");
30
- describe("RoutesResolver", () => {
31
- let TestRoute = class TestRoute {
32
- getTest() { }
33
- anotherTest() { }
34
- };
35
- __decorate([
36
- (0, decorators_1.Get)("test"),
37
- __metadata("design:type", Function),
38
- __metadata("design:paramtypes", []),
39
- __metadata("design:returntype", void 0)
40
- ], TestRoute.prototype, "getTest", null);
41
- __decorate([
42
- (0, decorators_1.Post)("another-test"),
43
- __metadata("design:type", Function),
44
- __metadata("design:paramtypes", []),
45
- __metadata("design:returntype", void 0)
46
- ], TestRoute.prototype, "anotherTest", null);
47
- TestRoute = __decorate([
48
- (0, controller_decorator_1.Controller)("global")
49
- ], TestRoute);
50
- let TestProvider = class TestProvider {
51
- getTest() { }
52
- };
53
- TestProvider = __decorate([
54
- (0, core_1.Injectable)()
55
- ], TestProvider);
56
- let TestHostRoute = class TestHostRoute {
57
- getTest() { }
58
- };
59
- __decorate([
60
- (0, decorators_1.Get)(),
61
- __metadata("design:type", Function),
62
- __metadata("design:paramtypes", []),
63
- __metadata("design:returntype", void 0)
64
- ], TestHostRoute.prototype, "getTest", null);
65
- TestHostRoute = __decorate([
66
- (0, controller_decorator_1.Controller)({ host: "api.example.com" })
67
- ], TestHostRoute);
68
- let TestVersionRoute = class TestVersionRoute {
69
- getTest() { }
70
- };
71
- __decorate([
72
- (0, decorators_1.Get)(),
73
- __metadata("design:type", Function),
74
- __metadata("design:paramtypes", []),
75
- __metadata("design:returntype", void 0)
76
- ], TestVersionRoute.prototype, "getTest", null);
77
- TestVersionRoute = __decorate([
78
- (0, controller_decorator_1.Controller)({ version: "1" })
79
- ], TestVersionRoute);
80
- let TestModule = class TestModule {
81
- };
82
- TestModule = __decorate([
83
- (0, core_1.Module)({
84
- providers: [TestRoute, TestProvider],
85
- })
86
- ], TestModule);
87
- let TestModule2 = class TestModule2 {
88
- };
89
- TestModule2 = __decorate([
90
- (0, core_1.Module)({
91
- providers: [TestRoute],
92
- })
93
- ], TestModule2);
94
- let router;
95
- let routesResolver;
96
- let container;
97
- let modules;
98
- let applicationRef;
99
- let httpConfig2;
100
- beforeEach(() => {
101
- modules = new Map();
102
- applicationRef = {
103
- use: () => ({}),
104
- setNotFoundHandler: sinon_1.default.spy(),
105
- setErrorHandler: sinon_1.default.spy(),
106
- };
107
- container = {
108
- getModules: () => modules,
109
- getModuleByKey: (key) => modules.get(key),
110
- getHttpAdapterRef: () => applicationRef,
111
- serializedGraph: new serialized_graph_1.SerializedGraph(),
112
- };
113
- httpConfig2 = {
114
- getHttpAdapterRef: () => applicationRef,
115
- getGlobalPrefixOptions: () => [],
116
- getGlobalPrefix: () => "",
117
- };
118
- router = {
119
- get() { },
120
- post() { },
121
- };
122
- });
123
- beforeEach(() => {
124
- routesResolver = new resolver_1.RoutesResolver(container, new core_1.ApplicationConfig(), new config_1.HttpConfig(), new injector_1.Injector(), new graph_inspector_1.GraphInspector(container));
125
- });
126
- describe("registerRouters", () => {
127
- it("should register controllers to router instance", () => {
128
- const routes = new Map();
129
- const routeWrapper = new wrapper_1.InstanceWrapper({
130
- instance: new TestRoute(),
131
- metatype: TestRoute,
132
- });
133
- routes.set("TestRoute", routeWrapper);
134
- const appInstance = new adapter_helper_1.NoopHttpAdapter(router);
135
- const exploreSpy = sinon_1.default.spy(routesResolver.routerExplorer, "explore");
136
- const moduleName = "";
137
- modules.set(moduleName, {});
138
- sinon_1.default.stub(routesResolver.routerExplorer, "extractRouterPath").callsFake(() => [""]);
139
- routesResolver.registerRouters(routes, moduleName, "", "", appInstance);
140
- const routePathMetadata = {
141
- ctrlPath: "",
142
- modulePath: "",
143
- globalPrefix: "",
144
- controllerVersion: undefined,
145
- versioningOptions: undefined,
146
- methodVersion: undefined,
147
- methodPath: "/another-test",
148
- };
149
- (0, chai_1.expect)(exploreSpy.called).to.be.true;
150
- (0, chai_1.expect)(exploreSpy.calledWith(routeWrapper, moduleName, appInstance, undefined, routePathMetadata)).to.be.true;
151
- });
152
- // it("should not register provider to router instance", () => {
153
- // const routes = new Map();
154
- // const routeWrapper = new InstanceWrapper({
155
- // instance: new TestProvider(),
156
- // metatype: TestProvider,
157
- // });
158
- // routes.set("TestProvider", TestProvider);
159
- //
160
- // const appInstance = new NoopHttpAdapter(router);
161
- // const exploreSpy = sinon.spy((routesResolver as any).routerExplorer, "explore");
162
- // const moduleName = "";
163
- // modules.set(moduleName, {});
164
- //
165
- // sinon.stub((routesResolver as any).routerExplorer, "extractRouterPath").callsFake(() => [""]);
166
- // routesResolver.registerRouters(routes, moduleName, "", "", appInstance);
167
- //
168
- // // const routePathMetadata = {
169
- // // ctrlPath: "",
170
- // // modulePath: "",
171
- // // globalPrefix: "",
172
- // // controllerVersion: undefined,
173
- // // versioningOptions: undefined,
174
- // // methodVersion: undefined,
175
- // // methodPath: "/another-test",
176
- // // };
177
- // // expect(exploreSpy.called).to.be.true;
178
- // // expect(exploreSpy.calledWith(routeWrapper, moduleName, appInstance, undefined, routePathMetadata)).to.be.true;
179
- // });
180
- it("should register with host when specified", () => {
181
- const routes = new Map();
182
- const routeWrapper = new wrapper_1.InstanceWrapper({
183
- instance: new TestHostRoute(),
184
- metatype: TestHostRoute,
185
- });
186
- routes.set("TestHostRoute", routeWrapper);
187
- const appInstance = new adapter_helper_1.NoopHttpAdapter(router);
188
- const exploreSpy = sinon_1.default.spy(routesResolver.routerExplorer, "explore");
189
- const moduleName = "";
190
- modules.set(moduleName, {});
191
- sinon_1.default.stub(routesResolver.routerExplorer, "extractRouterPath").callsFake(() => [""]);
192
- routesResolver.registerRouters(routes, moduleName, "", "", appInstance);
193
- const routePathMetadata = {
194
- ctrlPath: "",
195
- modulePath: "",
196
- globalPrefix: "",
197
- controllerVersion: undefined,
198
- versioningOptions: undefined,
199
- methodVersion: undefined,
200
- methodPath: "/",
201
- };
202
- (0, chai_1.expect)(exploreSpy.called).to.be.true;
203
- (0, chai_1.expect)(exploreSpy.calledWith(routeWrapper, moduleName, appInstance, "api.example.com", routePathMetadata)).to.be
204
- .true;
205
- });
206
- it("should register with version when specified", () => {
207
- const applicationConfig = new core_1.ApplicationConfig();
208
- const httpConfig = new config_1.HttpConfig();
209
- httpConfig.enableVersioning({
210
- type: enums_1.VersioningType.URI,
211
- });
212
- routesResolver = new resolver_1.RoutesResolver(container, applicationConfig, httpConfig, new injector_1.Injector(), new graph_inspector_1.GraphInspector(container));
213
- const routes = new Map();
214
- const routeWrapper = new wrapper_1.InstanceWrapper({
215
- instance: new TestVersionRoute(),
216
- metatype: TestVersionRoute,
217
- });
218
- routes.set("TestVersionRoute", routeWrapper);
219
- const appInstance = new adapter_helper_1.NoopHttpAdapter(router);
220
- const exploreSpy = sinon_1.default.spy(routesResolver.routerExplorer, "explore");
221
- const moduleName = "";
222
- modules.set(moduleName, {});
223
- sinon_1.default.stub(routesResolver.routerExplorer, "extractRouterPath").callsFake(() => [""]);
224
- routesResolver.registerRouters(routes, moduleName, "", "", appInstance);
225
- const routePathMetadata = {
226
- ctrlPath: "",
227
- modulePath: "",
228
- globalPrefix: "",
229
- controllerVersion: "1",
230
- versioningOptions: {
231
- type: enums_1.VersioningType.URI,
232
- },
233
- methodVersion: undefined,
234
- methodPath: "/",
235
- };
236
- (0, chai_1.expect)(exploreSpy.called).to.be.true;
237
- (0, chai_1.expect)(exploreSpy.calledWith(routeWrapper, moduleName, appInstance, undefined, routePathMetadata)).to.be.true;
238
- });
239
- });
240
- describe("resolve", () => {
241
- it('should call "registerRouters" for each module', () => {
242
- const routes = new Map();
243
- routes.set("TestRoute", new wrapper_1.InstanceWrapper({
244
- instance: new TestRoute(),
245
- metatype: TestRoute,
246
- }));
247
- modules.set("TestModule", { routes, metatype: class {
248
- } });
249
- modules.set("TestModule2", { routes, metatype: class {
250
- } });
251
- const registerRoutersStub = sinon_1.default.stub(routesResolver, "registerRouters").callsFake(() => undefined);
252
- routesResolver.resolve({ use: sinon_1.default.spy() }, "basePath");
253
- (0, chai_1.expect)(registerRoutersStub.calledTwice).to.be.true;
254
- });
255
- describe("registerRouters", () => {
256
- it("should register each module with the base path and append the module path if present ", () => {
257
- const routes = new Map();
258
- routes.set("TestRoute", {
259
- instance: new TestRoute(),
260
- metatype: TestRoute,
261
- });
262
- Reflect.defineMetadata(constants_1.MODULE_PATH, "/test", TestModule);
263
- modules.set("TestModule", { routes, metatype: TestModule });
264
- modules.set("TestModule2", { routes, metatype: TestModule2 });
265
- const spy = sinon_1.default.stub(routesResolver, "registerRouters").callsFake(() => undefined);
266
- routesResolver.resolve(applicationRef, "api/v1");
267
- (0, chai_1.expect)(spy.getCall(0).calledWith(sinon_1.default.match.any, sinon_1.default.match.any, "api/v1", "/test")).to.be.true;
268
- (0, chai_1.expect)(spy.getCall(1).calledWith(sinon_1.default.match.any, sinon_1.default.match.any, "api/v1", sinon_1.default.match.any)).to.be.true;
269
- });
270
- it("should register each module with the module path if present", () => {
271
- const routes = new Map();
272
- routes.set("TestRoute", {
273
- instance: new TestRoute(),
274
- metatype: TestRoute,
275
- });
276
- Reflect.defineMetadata(constants_1.MODULE_PATH, "/test", TestModule);
277
- modules.set("TestModule", { routes, metatype: TestModule });
278
- modules.set("TestModule2", { routes, metatype: TestModule2 });
279
- const spy = sinon_1.default.stub(routesResolver, "registerRouters").callsFake(() => undefined);
280
- routesResolver.resolve(applicationRef, "");
281
- (0, chai_1.expect)(spy.getCall(0).calledWith(sinon_1.default.match.any, sinon_1.default.match.any, "", "/test")).to.be.true;
282
- // without module path
283
- (0, chai_1.expect)(spy.getCall(1).calledWith(sinon_1.default.match.any, sinon_1.default.match.any, "", undefined)).to.be.true;
284
- });
285
- });
286
- });
287
- describe("mapExternalExceptions", () => {
288
- describe("when exception prototype is", () => {
289
- describe("SyntaxError", () => {
290
- it("should map to BadRequestException", () => {
291
- const err = new SyntaxError();
292
- const outputErr = routesResolver.mapExternalException(err);
293
- (0, chai_1.expect)(outputErr).to.be.instanceof(errors_1.BadRequestException);
294
- });
295
- });
296
- describe("URIError", () => {
297
- it("should map to BadRequestException", () => {
298
- const err = new URIError();
299
- const outputErr = routesResolver.mapExternalException(err);
300
- (0, chai_1.expect)(outputErr).to.be.instanceof(errors_1.BadRequestException);
301
- });
302
- });
303
- describe("other", () => {
304
- it("should behave as an identity", () => {
305
- const err = new Error();
306
- const outputErr = routesResolver.mapExternalException(err);
307
- (0, chai_1.expect)(outputErr).to.be.eql(err);
308
- });
309
- });
310
- });
311
- });
312
- describe("registerNotFoundHandler", () => {
313
- it("should register not found handler", () => {
314
- routesResolver = new resolver_1.RoutesResolver(container, new core_1.ApplicationConfig(), httpConfig2, new injector_1.Injector(), new graph_inspector_1.GraphInspector(container));
315
- routesResolver.registerNotFoundHandler();
316
- (0, chai_1.expect)(applicationRef.setNotFoundHandler.called).to.be.true;
317
- });
318
- });
319
- describe("registerExceptionHandler", () => {
320
- it("should register exception handler", () => {
321
- routesResolver = new resolver_1.RoutesResolver(container, new core_1.ApplicationConfig(), httpConfig2, new injector_1.Injector(), new graph_inspector_1.GraphInspector(container));
322
- routesResolver.registerExceptionHandler();
323
- (0, chai_1.expect)(applicationRef.setErrorHandler.called).to.be.true;
324
- });
325
- });
326
- });