@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,131 +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
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const chai_1 = require("chai");
10
- const core_1 = require("../../../core");
11
- const helpers_1 = require("../../helpers");
12
- describe("flattenRoutePaths", () => {
13
- it("should flatten all route paths", () => {
14
- let ParentModule = class ParentModule {
15
- };
16
- ParentModule = __decorate([
17
- (0, core_1.Module)({})
18
- ], ParentModule);
19
- let ChildModule = class ChildModule {
20
- };
21
- ChildModule = __decorate([
22
- (0, core_1.Module)({})
23
- ], ChildModule);
24
- let ChildChildModule = class ChildChildModule {
25
- };
26
- ChildChildModule = __decorate([
27
- (0, core_1.Module)({})
28
- ], ChildChildModule);
29
- let ChildModule2 = class ChildModule2 {
30
- };
31
- ChildModule2 = __decorate([
32
- (0, core_1.Module)({})
33
- ], ChildModule2);
34
- let ParentChildModule = class ParentChildModule {
35
- };
36
- ParentChildModule = __decorate([
37
- (0, core_1.Module)({})
38
- ], ParentChildModule);
39
- let ChildChildModule2 = class ChildChildModule2 {
40
- };
41
- ChildChildModule2 = __decorate([
42
- (0, core_1.Module)({})
43
- ], ChildChildModule2);
44
- let AuthModule = class AuthModule {
45
- };
46
- AuthModule = __decorate([
47
- (0, core_1.Module)({})
48
- ], AuthModule);
49
- let CatsModule = class CatsModule {
50
- };
51
- CatsModule = __decorate([
52
- (0, core_1.Module)({})
53
- ], CatsModule);
54
- let DogsModule = class DogsModule {
55
- };
56
- DogsModule = __decorate([
57
- (0, core_1.Module)({})
58
- ], DogsModule);
59
- let AuthModule2 = class AuthModule2 {
60
- };
61
- AuthModule2 = __decorate([
62
- (0, core_1.Module)({})
63
- ], AuthModule2);
64
- let CatsModule2 = class CatsModule2 {
65
- };
66
- CatsModule2 = __decorate([
67
- (0, core_1.Module)({})
68
- ], CatsModule2);
69
- let CatsModule3 = class CatsModule3 {
70
- };
71
- CatsModule3 = __decorate([
72
- (0, core_1.Module)({})
73
- ], CatsModule3);
74
- let AuthModule3 = class AuthModule3 {
75
- };
76
- AuthModule3 = __decorate([
77
- (0, core_1.Module)({})
78
- ], AuthModule3);
79
- const routes = [
80
- {
81
- path: "/parent",
82
- module: ParentModule,
83
- children: [
84
- {
85
- path: "/child",
86
- module: ChildModule,
87
- children: [
88
- { path: "/child2", module: ChildModule2 },
89
- {
90
- path: "/parentchild",
91
- module: ParentChildModule,
92
- children: [
93
- {
94
- path: "/childchild",
95
- module: ChildChildModule,
96
- children: [{ path: "/child2child", module: ChildChildModule2 }],
97
- },
98
- ],
99
- },
100
- ],
101
- },
102
- ],
103
- },
104
- { path: "/v1", children: [AuthModule, CatsModule, DogsModule] },
105
- { path: "/v2", children: [AuthModule2, CatsModule2] },
106
- { path: "/v3", children: [AuthModule3, CatsModule3] },
107
- ];
108
- const expectedRoutes = [
109
- { path: "/parent", module: ParentModule },
110
- { path: "/parent/child", module: ChildModule },
111
- { path: "/parent/child/child2", module: ChildModule2 },
112
- { path: "/parent/child/parentchild", module: ParentChildModule },
113
- {
114
- path: "/parent/child/parentchild/childchild",
115
- module: ChildChildModule,
116
- },
117
- {
118
- path: "/parent/child/parentchild/childchild/child2child",
119
- module: ChildChildModule2,
120
- },
121
- { path: "/v1", module: AuthModule },
122
- { path: "/v1", module: CatsModule },
123
- { path: "/v1", module: DogsModule },
124
- { path: "/v2", module: AuthModule2 },
125
- { path: "/v2", module: CatsModule2 },
126
- { path: "/v3", module: AuthModule3 },
127
- { path: "/v3", module: CatsModule3 },
128
- ];
129
- (0, chai_1.expect)((0, helpers_1.flattenRoutePaths)(routes)).to.be.eql(expectedRoutes);
130
- });
131
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,132 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chai_1 = require("chai");
7
- // @ts-ignore
8
- const eventsource_1 = __importDefault(require("eventsource"));
9
- const http_1 = require("http");
10
- const stream_1 = require("../../../../../../../stream");
11
- const sse_helper_1 = require("@venok/http/helpers/sse.helper");
12
- const noop = () => { };
13
- const written = (stream) => new Promise((resolve, reject) => stream.on("error", reject).on("finish", resolve));
14
- class Sink extends stream_1.Writable {
15
- constructor(writeHead) {
16
- super({ objectMode: true });
17
- this.writeHead = writeHead;
18
- this.chunks = [];
19
- }
20
- _write(chunk, encoding, callback) {
21
- this.chunks.push(chunk);
22
- callback();
23
- }
24
- get content() {
25
- return this.chunks.join("");
26
- }
27
- }
28
- describe("SseStream", () => {
29
- it("writes multiple multiline messages", async () => {
30
- const sse = new sse_helper_1.SseStream();
31
- const sink = new Sink();
32
- sse.pipe(sink);
33
- sse.writeMessage({
34
- data: "hello\nworld",
35
- }, noop);
36
- sse.writeMessage({
37
- data: "bonjour\nmonde",
38
- }, noop);
39
- sse.end();
40
- await written(sink);
41
- (0, chai_1.expect)(sink.content).to.equal(`
42
- id: 1
43
- data: hello
44
- data: world
45
-
46
- id: 2
47
- data: bonjour
48
- data: monde
49
-
50
- `);
51
- });
52
- it("writes object messages as JSON", async () => {
53
- const sse = new sse_helper_1.SseStream();
54
- const sink = new Sink();
55
- sse.pipe(sink);
56
- sse.writeMessage({
57
- data: { hello: "world" },
58
- }, noop);
59
- sse.end();
60
- await written(sink);
61
- (0, chai_1.expect)(sink.content).to.equal(`
62
- id: 1
63
- data: {"hello":"world"}
64
-
65
- `);
66
- });
67
- it("writes all message attributes", async () => {
68
- const sse = new sse_helper_1.SseStream();
69
- const sink = new Sink();
70
- sse.pipe(sink);
71
- sse.writeMessage({
72
- type: "tea-time",
73
- id: "the-id",
74
- retry: 222,
75
- data: "hello",
76
- }, noop);
77
- sse.end();
78
- await written(sink);
79
- (0, chai_1.expect)(sink.content).to.equal(`
80
- event: tea-time
81
- id: the-id
82
- retry: 222
83
- data: hello
84
-
85
- `);
86
- });
87
- it("sets headers on destination when it looks like a HTTP Response", (callback) => {
88
- const sse = new sse_helper_1.SseStream();
89
- const sink = new Sink((status, headers) => {
90
- (0, chai_1.expect)(headers).to.deep.equal({
91
- "Content-Type": "text/event-stream",
92
- Connection: "keep-alive",
93
- "Cache-Control": "private, no-cache, no-store, must-revalidate, max-age=0, no-transform",
94
- Pragma: "no-cache",
95
- Expire: "0",
96
- "X-Accel-Buffering": "no",
97
- });
98
- callback();
99
- return sink;
100
- });
101
- sse.pipe(sink);
102
- });
103
- it("sets additional headers when provided", (callback) => {
104
- const sse = new sse_helper_1.SseStream();
105
- const sink = new Sink((status, headers) => {
106
- (0, chai_1.expect)(headers).to.contain.keys("access-control-headers");
107
- (0, chai_1.expect)(headers["access-control-headers"]).to.equal("some-cors-value");
108
- callback();
109
- return sink;
110
- });
111
- sse.pipe(sink, {
112
- additionalHeaders: { "access-control-headers": "some-cors-value" },
113
- });
114
- });
115
- it("allows an eventsource to connect", (callback) => {
116
- let sse;
117
- const server = (0, http_1.createServer)((req, res) => {
118
- sse = new sse_helper_1.SseStream(req);
119
- sse.pipe(res);
120
- });
121
- server.listen(() => {
122
- const es = new eventsource_1.default(`http://localhost:${server.address().port}`);
123
- es.onmessage = (e) => {
124
- (0, chai_1.expect)(e.data).to.equal("hello");
125
- es.close();
126
- server.close(callback);
127
- };
128
- es.onopen = () => sse.writeMessage({ data: "hello" }, noop);
129
- es.onerror = (e) => callback(new Error(`Error from EventSource: ${JSON.stringify(e)}`));
130
- });
131
- });
132
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,235 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const chai_1 = require("chai");
13
- const core_1 = require("../../../core");
14
- const middleware_1 = require("../../middleware");
15
- const enums_1 = require("../../enums");
16
- const routes_mapper_1 = require("../../middleware/routes-mapper");
17
- const helpers_1 = require("../../helpers");
18
- const extractor_1 = require("../../middleware/extractor");
19
- const decorators_1 = require("../../decorators");
20
- const config_1 = require("../../application/config");
21
- describe("MiddlewareBuilder", () => {
22
- let builder;
23
- beforeEach(() => {
24
- const container = new core_1.VenokContainer();
25
- const httpConfig = new config_1.HttpConfig();
26
- httpConfig.enableVersioning({ type: enums_1.VersioningType.URI });
27
- builder = new middleware_1.MiddlewareBuilder(new routes_mapper_1.RoutesMapper(container, httpConfig), new helpers_1.NoopHttpAdapter({}), new extractor_1.RouteInfoPathExtractor(httpConfig));
28
- });
29
- describe("apply", () => {
30
- it("should return configuration proxy", () => {
31
- const configProxy = builder.apply([]);
32
- const metatype = middleware_1.MiddlewareBuilder.ConfigProxy;
33
- (0, chai_1.expect)(configProxy instanceof metatype).to.be.true;
34
- });
35
- describe("configuration proxy", () => {
36
- describe('when "forRoutes()" called', () => {
37
- let configProxy;
38
- beforeEach(() => {
39
- configProxy = builder.apply([]);
40
- });
41
- let Test = class Test {
42
- getAll() { }
43
- getAllVersioned() { }
44
- };
45
- __decorate([
46
- (0, decorators_1.Get)("route"),
47
- __metadata("design:type", Function),
48
- __metadata("design:paramtypes", []),
49
- __metadata("design:returntype", void 0)
50
- ], Test.prototype, "getAll", null);
51
- __decorate([
52
- (0, decorators_1.Version)("1"),
53
- (0, decorators_1.Get)("versioned"),
54
- __metadata("design:type", Function),
55
- __metadata("design:paramtypes", []),
56
- __metadata("design:returntype", void 0)
57
- ], Test.prototype, "getAllVersioned", null);
58
- Test = __decorate([
59
- (0, decorators_1.Controller)("path")
60
- ], Test);
61
- const route = { path: "/test", method: enums_1.RequestMethod.GET };
62
- it("should store configuration passed as argument", () => {
63
- configProxy.forRoutes(route, Test);
64
- (0, chai_1.expect)(builder.build()).to.deep.equal([
65
- {
66
- middleware: [],
67
- forRoutes: [
68
- {
69
- method: enums_1.RequestMethod.GET,
70
- path: route.path,
71
- },
72
- {
73
- method: enums_1.RequestMethod.GET,
74
- path: "/path/route",
75
- },
76
- {
77
- method: enums_1.RequestMethod.GET,
78
- path: "/path/versioned",
79
- version: "1",
80
- },
81
- ],
82
- },
83
- ]);
84
- });
85
- let UsersController = class UsersController {
86
- hRsvp() { }
87
- oRsvp() { }
88
- gRsvp() { }
89
- pRsvp() { }
90
- puRsvp() { }
91
- ptRsvp() { }
92
- dRsvp() { }
93
- create() { }
94
- findAll() { }
95
- findOne() { }
96
- update() { }
97
- remove() { }
98
- };
99
- __decorate([
100
- (0, decorators_1.Head)("rsvp"),
101
- __metadata("design:type", Function),
102
- __metadata("design:paramtypes", []),
103
- __metadata("design:returntype", void 0)
104
- ], UsersController.prototype, "hRsvp", null);
105
- __decorate([
106
- (0, decorators_1.Options)("rsvp"),
107
- __metadata("design:type", Function),
108
- __metadata("design:paramtypes", []),
109
- __metadata("design:returntype", void 0)
110
- ], UsersController.prototype, "oRsvp", null);
111
- __decorate([
112
- (0, decorators_1.Get)("rsvp"),
113
- __metadata("design:type", Function),
114
- __metadata("design:paramtypes", []),
115
- __metadata("design:returntype", void 0)
116
- ], UsersController.prototype, "gRsvp", null);
117
- __decorate([
118
- (0, decorators_1.Post)("rsvp"),
119
- __metadata("design:type", Function),
120
- __metadata("design:paramtypes", []),
121
- __metadata("design:returntype", void 0)
122
- ], UsersController.prototype, "pRsvp", null);
123
- __decorate([
124
- (0, decorators_1.Put)("rsvp"),
125
- __metadata("design:type", Function),
126
- __metadata("design:paramtypes", []),
127
- __metadata("design:returntype", void 0)
128
- ], UsersController.prototype, "puRsvp", null);
129
- __decorate([
130
- (0, decorators_1.Patch)("rsvp"),
131
- __metadata("design:type", Function),
132
- __metadata("design:paramtypes", []),
133
- __metadata("design:returntype", void 0)
134
- ], UsersController.prototype, "ptRsvp", null);
135
- __decorate([
136
- (0, decorators_1.Delete)("rsvp"),
137
- __metadata("design:type", Function),
138
- __metadata("design:paramtypes", []),
139
- __metadata("design:returntype", void 0)
140
- ], UsersController.prototype, "dRsvp", null);
141
- __decorate([
142
- (0, decorators_1.Post)(),
143
- __metadata("design:type", Function),
144
- __metadata("design:paramtypes", []),
145
- __metadata("design:returntype", void 0)
146
- ], UsersController.prototype, "create", null);
147
- __decorate([
148
- (0, decorators_1.Get)(),
149
- __metadata("design:type", Function),
150
- __metadata("design:paramtypes", []),
151
- __metadata("design:returntype", void 0)
152
- ], UsersController.prototype, "findAll", null);
153
- __decorate([
154
- (0, decorators_1.Get)(":id"),
155
- __metadata("design:type", Function),
156
- __metadata("design:paramtypes", []),
157
- __metadata("design:returntype", void 0)
158
- ], UsersController.prototype, "findOne", null);
159
- __decorate([
160
- (0, decorators_1.Patch)(":id"),
161
- __metadata("design:type", Function),
162
- __metadata("design:paramtypes", []),
163
- __metadata("design:returntype", void 0)
164
- ], UsersController.prototype, "update", null);
165
- __decorate([
166
- (0, decorators_1.Delete)(":id"),
167
- __metadata("design:type", Function),
168
- __metadata("design:paramtypes", []),
169
- __metadata("design:returntype", void 0)
170
- ], UsersController.prototype, "remove", null);
171
- UsersController = __decorate([
172
- (0, decorators_1.Controller)("users")
173
- ], UsersController);
174
- it("should remove overlapping routes", () => {
175
- configProxy.forRoutes(UsersController);
176
- (0, chai_1.expect)(builder.build()).to.deep.equal([
177
- {
178
- middleware: [],
179
- forRoutes: [
180
- {
181
- method: enums_1.RequestMethod.HEAD,
182
- path: "/users/rsvp",
183
- },
184
- {
185
- method: enums_1.RequestMethod.OPTIONS,
186
- path: "/users/rsvp",
187
- },
188
- {
189
- method: enums_1.RequestMethod.POST,
190
- path: "/users/rsvp",
191
- },
192
- {
193
- method: enums_1.RequestMethod.PUT,
194
- path: "/users/rsvp",
195
- },
196
- {
197
- method: enums_1.RequestMethod.POST,
198
- path: "/users/",
199
- },
200
- {
201
- method: enums_1.RequestMethod.GET,
202
- path: "/users/",
203
- },
204
- {
205
- method: enums_1.RequestMethod.GET,
206
- path: "/users/:id",
207
- },
208
- {
209
- method: enums_1.RequestMethod.PATCH,
210
- path: "/users/:id",
211
- },
212
- {
213
- method: enums_1.RequestMethod.DELETE,
214
- path: "/users/:id",
215
- },
216
- ],
217
- },
218
- ]);
219
- });
220
- });
221
- });
222
- });
223
- describe("exclude", () => {
224
- it("should map string to RouteInfo", () => {
225
- const path = "/test";
226
- const proxy = builder.apply().exclude(path);
227
- (0, chai_1.expect)(proxy.getExcludedRoutes()).to.be.eql([
228
- {
229
- path,
230
- method: -1,
231
- },
232
- ]);
233
- });
234
- });
235
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,81 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const chai_1 = require("chai");
13
- const decorators_1 = require("../../decorators");
14
- const enums_1 = require("../../enums");
15
- const core_1 = require("../../../core");
16
- const container_1 = require("../../middleware/container");
17
- const module_1 = require("../../../core/injector/module/module");
18
- const wrapper_1 = require("../../../core/injector/instance/wrapper");
19
- describe("MiddlewareContainer", () => {
20
- class ExampleModule {
21
- }
22
- let TestRoute = class TestRoute {
23
- getTest() { }
24
- getAnother() { }
25
- };
26
- __decorate([
27
- (0, decorators_1.RequestMapping)({ path: "test" }),
28
- __metadata("design:type", Function),
29
- __metadata("design:paramtypes", []),
30
- __metadata("design:returntype", void 0)
31
- ], TestRoute.prototype, "getTest", null);
32
- __decorate([
33
- (0, decorators_1.RequestMapping)({ path: "another", method: enums_1.RequestMethod.DELETE }),
34
- __metadata("design:type", Function),
35
- __metadata("design:paramtypes", []),
36
- __metadata("design:returntype", void 0)
37
- ], TestRoute.prototype, "getAnother", null);
38
- TestRoute = __decorate([
39
- (0, decorators_1.Controller)("test")
40
- ], TestRoute);
41
- let TestMiddleware = class TestMiddleware {
42
- use(req, res, next) { }
43
- };
44
- TestMiddleware = __decorate([
45
- (0, core_1.Injectable)()
46
- ], TestMiddleware);
47
- let container;
48
- beforeEach(() => {
49
- const nestContainer = new core_1.VenokContainer();
50
- const modules = nestContainer.getModules();
51
- modules.set("Module", new module_1.Module(ExampleModule, nestContainer));
52
- modules.set("Test", new module_1.Module(ExampleModule, nestContainer));
53
- container = new container_1.MiddlewareContainer(nestContainer);
54
- });
55
- it("should store expected configurations for given module", () => {
56
- const config = [
57
- {
58
- middleware: [TestMiddleware],
59
- forRoutes: [TestRoute, "test"],
60
- },
61
- ];
62
- container.insertConfig(config, "Module");
63
- (0, chai_1.expect)([...container.getConfigurations().get("Module")]).to.deep.equal(config);
64
- });
65
- it("should store expected middleware for given module", () => {
66
- const config = [
67
- {
68
- middleware: TestMiddleware,
69
- forRoutes: [TestRoute],
70
- },
71
- ];
72
- const key = "Test";
73
- container.insertConfig(config, key);
74
- const collection = container.getMiddlewareCollection(key);
75
- const insertedMiddleware = collection.get(TestMiddleware);
76
- (0, chai_1.expect)(collection.size).to.eql(config.length);
77
- (0, chai_1.expect)(insertedMiddleware).to.be.instanceOf(wrapper_1.InstanceWrapper);
78
- (0, chai_1.expect)(insertedMiddleware.scope).to.be.undefined;
79
- (0, chai_1.expect)(insertedMiddleware.metatype).to.be.eql(TestMiddleware);
80
- });
81
- });
@@ -1 +0,0 @@
1
- export {};