@hg-ts/redis 0.1.17

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 (211) hide show
  1. package/.eslintcache +1 -0
  2. package/.eslintrc.json +1 -0
  3. package/.nyc_output/089b21aa-e535-4b85-ae33-c883bb354098.json +1 -0
  4. package/.nyc_output/3e07cb8f-5adb-4386-8f08-9568a8f6b6fe.json +1 -0
  5. package/.nyc_output/84fba1cd-e0a1-4b6f-9061-44e27d7310d3.json +1 -0
  6. package/.nyc_output/processinfo/089b21aa-e535-4b85-ae33-c883bb354098.json +1 -0
  7. package/.nyc_output/processinfo/3e07cb8f-5adb-4386-8f08-9568a8f6b6fe.json +1 -0
  8. package/.nyc_output/processinfo/84fba1cd-e0a1-4b6f-9061-44e27d7310d3.json +1 -0
  9. package/.nyc_output/processinfo/index.json +1 -0
  10. package/dist/config.d.ts +31 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +18 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/redis.module.d.ts +6 -0
  19. package/dist/redis.module.d.ts.map +1 -0
  20. package/dist/redis.module.js +37 -0
  21. package/dist/redis.module.js.map +1 -0
  22. package/dist-esm/base.handler-map.d.ts +13 -0
  23. package/dist-esm/base.handler-map.d.ts.map +1 -0
  24. package/dist-esm/base.handler-map.js +24 -0
  25. package/dist-esm/base.handler-map.js.map +1 -0
  26. package/dist-esm/base.server.d.ts +25 -0
  27. package/dist-esm/base.server.d.ts.map +1 -0
  28. package/dist-esm/base.server.js +51 -0
  29. package/dist-esm/base.server.js.map +1 -0
  30. package/dist-esm/config.d.ts +31 -0
  31. package/dist-esm/config.d.ts.map +1 -0
  32. package/dist-esm/config.js +13 -0
  33. package/dist-esm/config.js.map +1 -0
  34. package/dist-esm/controller-explorer.service.d.ts +10 -0
  35. package/dist-esm/controller-explorer.service.d.ts.map +1 -0
  36. package/dist-esm/controller-explorer.service.js +23 -0
  37. package/dist-esm/controller-explorer.service.js.map +1 -0
  38. package/dist-esm/controller.caller.d.ts +9 -0
  39. package/dist-esm/controller.caller.d.ts.map +1 -0
  40. package/dist-esm/controller.caller.js +41 -0
  41. package/dist-esm/controller.caller.js.map +1 -0
  42. package/dist-esm/controllers/controller-explorer.service.d.ts +10 -0
  43. package/dist-esm/controllers/controller-explorer.service.d.ts.map +1 -0
  44. package/dist-esm/controllers/controller-explorer.service.js +23 -0
  45. package/dist-esm/controllers/controller-explorer.service.js.map +1 -0
  46. package/dist-esm/controllers/controller.caller.d.ts +9 -0
  47. package/dist-esm/controllers/controller.caller.d.ts.map +1 -0
  48. package/dist-esm/controllers/controller.caller.js +41 -0
  49. package/dist-esm/controllers/controller.caller.js.map +1 -0
  50. package/dist-esm/controllers/index.d.ts +3 -0
  51. package/dist-esm/controllers/index.d.ts.map +1 -0
  52. package/dist-esm/controllers/index.js +3 -0
  53. package/dist-esm/controllers/index.js.map +1 -0
  54. package/dist-esm/decorators/context.decorator.d.ts +2 -0
  55. package/dist-esm/decorators/context.decorator.d.ts.map +1 -0
  56. package/dist-esm/decorators/context.decorator.js +3 -0
  57. package/dist-esm/decorators/context.decorator.js.map +1 -0
  58. package/dist-esm/decorators/controller.decorator.d.ts +7 -0
  59. package/dist-esm/decorators/controller.decorator.d.ts.map +1 -0
  60. package/dist-esm/decorators/controller.decorator.js +27 -0
  61. package/dist-esm/decorators/controller.decorator.js.map +1 -0
  62. package/dist-esm/decorators/create-param-decorator.d.ts +14 -0
  63. package/dist-esm/decorators/create-param-decorator.d.ts.map +1 -0
  64. package/dist-esm/decorators/create-param-decorator.js +26 -0
  65. package/dist-esm/decorators/create-param-decorator.js.map +1 -0
  66. package/dist-esm/decorators/index.d.ts +5 -0
  67. package/dist-esm/decorators/index.d.ts.map +1 -0
  68. package/dist-esm/decorators/index.js +5 -0
  69. package/dist-esm/decorators/index.js.map +1 -0
  70. package/dist-esm/decorators/middleware-data.decorator.d.ts +2 -0
  71. package/dist-esm/decorators/middleware-data.decorator.d.ts.map +1 -0
  72. package/dist-esm/decorators/middleware-data.decorator.js +3 -0
  73. package/dist-esm/decorators/middleware-data.decorator.js.map +1 -0
  74. package/dist-esm/execution-context/execution-context.d.ts +38 -0
  75. package/dist-esm/execution-context/execution-context.d.ts.map +1 -0
  76. package/dist-esm/execution-context/execution-context.js +69 -0
  77. package/dist-esm/execution-context/execution-context.js.map +1 -0
  78. package/dist-esm/execution-context/execution-context.provider.d.ts +5 -0
  79. package/dist-esm/execution-context/execution-context.provider.d.ts.map +1 -0
  80. package/dist-esm/execution-context/execution-context.provider.js +4 -0
  81. package/dist-esm/execution-context/execution-context.provider.js.map +1 -0
  82. package/dist-esm/execution-context/index.d.ts +3 -0
  83. package/dist-esm/execution-context/index.d.ts.map +1 -0
  84. package/dist-esm/execution-context/index.js +3 -0
  85. package/dist-esm/execution-context/index.js.map +1 -0
  86. package/dist-esm/index.d.ts +1 -0
  87. package/dist-esm/index.d.ts.map +1 -0
  88. package/dist-esm/index.js +2 -0
  89. package/dist-esm/index.js.map +1 -0
  90. package/dist-esm/map-to-observable.d.ts +5 -0
  91. package/dist-esm/map-to-observable.d.ts.map +1 -0
  92. package/dist-esm/map-to-observable.js +32 -0
  93. package/dist-esm/map-to-observable.js.map +1 -0
  94. package/dist-esm/redis.module.d.ts +6 -0
  95. package/dist-esm/redis.module.d.ts.map +1 -0
  96. package/dist-esm/redis.module.js +34 -0
  97. package/dist-esm/redis.module.js.map +1 -0
  98. package/dist-esm/request.handler.d.ts +6 -0
  99. package/dist-esm/request.handler.d.ts.map +1 -0
  100. package/dist-esm/request.handler.js +14 -0
  101. package/dist-esm/request.handler.js.map +1 -0
  102. package/dist-esm/server/base.handler-map.d.ts +13 -0
  103. package/dist-esm/server/base.handler-map.d.ts.map +1 -0
  104. package/dist-esm/server/base.handler-map.js +24 -0
  105. package/dist-esm/server/base.handler-map.js.map +1 -0
  106. package/dist-esm/server/base.server.d.ts +25 -0
  107. package/dist-esm/server/base.server.d.ts.map +1 -0
  108. package/dist-esm/server/base.server.js +51 -0
  109. package/dist-esm/server/base.server.js.map +1 -0
  110. package/dist-esm/server/index.d.ts +4 -0
  111. package/dist-esm/server/index.d.ts.map +1 -0
  112. package/dist-esm/server/index.js +4 -0
  113. package/dist-esm/server/index.js.map +1 -0
  114. package/dist-esm/server/request.handler.d.ts +6 -0
  115. package/dist-esm/server/request.handler.d.ts.map +1 -0
  116. package/dist-esm/server/request.handler.js +14 -0
  117. package/dist-esm/server/request.handler.js.map +1 -0
  118. package/dist-esm/server.module.d.ts +3 -0
  119. package/dist-esm/server.module.d.ts.map +1 -0
  120. package/dist-esm/server.module.js +25 -0
  121. package/dist-esm/server.module.js.map +1 -0
  122. package/dist-esm/tests/controllers/consts.d.ts +2 -0
  123. package/dist-esm/tests/controllers/consts.d.ts.map +1 -0
  124. package/dist-esm/tests/controllers/consts.js +2 -0
  125. package/dist-esm/tests/controllers/consts.js.map +1 -0
  126. package/dist-esm/tests/controllers/controller.test-suite.d.ts +9 -0
  127. package/dist-esm/tests/controllers/controller.test-suite.d.ts.map +1 -0
  128. package/dist-esm/tests/controllers/controller.test-suite.js +78 -0
  129. package/dist-esm/tests/controllers/controller.test-suite.js.map +1 -0
  130. package/dist-esm/tests/controllers/test.controller.d.ts +7 -0
  131. package/dist-esm/tests/controllers/test.controller.d.ts.map +1 -0
  132. package/dist-esm/tests/controllers/test.controller.js +32 -0
  133. package/dist-esm/tests/controllers/test.controller.js.map +1 -0
  134. package/dist-esm/tests/controllers/test.execution-context.d.ts +5 -0
  135. package/dist-esm/tests/controllers/test.execution-context.d.ts.map +1 -0
  136. package/dist-esm/tests/controllers/test.execution-context.js +7 -0
  137. package/dist-esm/tests/controllers/test.execution-context.js.map +1 -0
  138. package/dist-esm/tests/server/server.test-suite.d.ts +11 -0
  139. package/dist-esm/tests/server/server.test-suite.d.ts.map +1 -0
  140. package/dist-esm/tests/server/server.test-suite.js +42 -0
  141. package/dist-esm/tests/server/server.test-suite.js.map +1 -0
  142. package/dist-esm/tests/server/test-handler.decorator.d.ts +6 -0
  143. package/dist-esm/tests/server/test-handler.decorator.d.ts.map +1 -0
  144. package/dist-esm/tests/server/test-handler.decorator.js +15 -0
  145. package/dist-esm/tests/server/test-handler.decorator.js.map +1 -0
  146. package/dist-esm/tests/server/test.body.d.ts +2 -0
  147. package/dist-esm/tests/server/test.body.d.ts.map +1 -0
  148. package/dist-esm/tests/server/test.body.js +3 -0
  149. package/dist-esm/tests/server/test.body.js.map +1 -0
  150. package/dist-esm/tests/server/test.controller.d.ts +4 -0
  151. package/dist-esm/tests/server/test.controller.d.ts.map +1 -0
  152. package/dist-esm/tests/server/test.controller.js +21 -0
  153. package/dist-esm/tests/server/test.controller.js.map +1 -0
  154. package/dist-esm/tests/server/test.execution-context.d.ts +6 -0
  155. package/dist-esm/tests/server/test.execution-context.d.ts.map +1 -0
  156. package/dist-esm/tests/server/test.execution-context.js +7 -0
  157. package/dist-esm/tests/server/test.execution-context.js.map +1 -0
  158. package/dist-esm/tests/server/test.handler-map.d.ts +14 -0
  159. package/dist-esm/tests/server/test.handler-map.d.ts.map +1 -0
  160. package/dist-esm/tests/server/test.handler-map.js +12 -0
  161. package/dist-esm/tests/server/test.handler-map.js.map +1 -0
  162. package/dist-esm/tests/server/test.module.d.ts +3 -0
  163. package/dist-esm/tests/server/test.module.d.ts.map +1 -0
  164. package/dist-esm/tests/server/test.module.js +15 -0
  165. package/dist-esm/tests/server/test.module.js.map +1 -0
  166. package/dist-esm/tests/server/test.server.d.ts +17 -0
  167. package/dist-esm/tests/server/test.server.d.ts.map +1 -0
  168. package/dist-esm/tests/server/test.server.js +39 -0
  169. package/dist-esm/tests/server/test.server.js.map +1 -0
  170. package/dist-esm/tests/server.test-suite.d.ts +11 -0
  171. package/dist-esm/tests/server.test-suite.d.ts.map +1 -0
  172. package/dist-esm/tests/server.test-suite.js +42 -0
  173. package/dist-esm/tests/server.test-suite.js.map +1 -0
  174. package/dist-esm/tests/test-handler.decorator.d.ts +6 -0
  175. package/dist-esm/tests/test-handler.decorator.d.ts.map +1 -0
  176. package/dist-esm/tests/test-handler.decorator.js +15 -0
  177. package/dist-esm/tests/test-handler.decorator.js.map +1 -0
  178. package/dist-esm/tests/test.body.d.ts +2 -0
  179. package/dist-esm/tests/test.body.d.ts.map +1 -0
  180. package/dist-esm/tests/test.body.js +3 -0
  181. package/dist-esm/tests/test.body.js.map +1 -0
  182. package/dist-esm/tests/test.controller.d.ts +4 -0
  183. package/dist-esm/tests/test.controller.d.ts.map +1 -0
  184. package/dist-esm/tests/test.controller.js +21 -0
  185. package/dist-esm/tests/test.controller.js.map +1 -0
  186. package/dist-esm/tests/test.execution-context.d.ts +6 -0
  187. package/dist-esm/tests/test.execution-context.d.ts.map +1 -0
  188. package/dist-esm/tests/test.execution-context.js +7 -0
  189. package/dist-esm/tests/test.execution-context.js.map +1 -0
  190. package/dist-esm/tests/test.handler-map.d.ts +14 -0
  191. package/dist-esm/tests/test.handler-map.d.ts.map +1 -0
  192. package/dist-esm/tests/test.handler-map.js +12 -0
  193. package/dist-esm/tests/test.handler-map.js.map +1 -0
  194. package/dist-esm/tests/test.module.d.ts +3 -0
  195. package/dist-esm/tests/test.module.d.ts.map +1 -0
  196. package/dist-esm/tests/test.module.js +15 -0
  197. package/dist-esm/tests/test.module.js.map +1 -0
  198. package/dist-esm/tests/test.server.d.ts +18 -0
  199. package/dist-esm/tests/test.server.d.ts.map +1 -0
  200. package/dist-esm/tests/test.server.js +39 -0
  201. package/dist-esm/tests/test.server.js.map +1 -0
  202. package/dist-esm/utils.d.ts +5 -0
  203. package/dist-esm/utils.d.ts.map +1 -0
  204. package/dist-esm/utils.js +32 -0
  205. package/dist-esm/utils.js.map +1 -0
  206. package/package.json +47 -0
  207. package/src/config.ts +13 -0
  208. package/src/index.ts +0 -0
  209. package/src/redis.module.ts +40 -0
  210. package/tsconfig.esm.json +9 -0
  211. package/tsconfig.json +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-data.decorator.js","sourceRoot":"","sources":["../../src/decorators/middleware-data.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,OAAyB,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /// <reference types="@hg-ts/types" />
2
+ import type { Observable } from 'rxjs';
3
+ import { ArgumentMetadata } from '../decorators';
4
+ type Handler = (...args: unknown[]) => Observable<unknown> | Promise<unknown> | unknown;
5
+ export type ExecutionControllerInfo<InputType> = {
6
+ data: InputType;
7
+ instance: object;
8
+ method: string | symbol;
9
+ };
10
+ export declare enum CallType {
11
+ RPC = "rpc",
12
+ EVENT = "event",
13
+ SUBSCRIPTION = "subscription"
14
+ }
15
+ export type ExecutionArgsInfo = ArgumentMetadata<ExecutionContext> | typeof NOT_DECORATED_ARGUMENT | {
16
+ value: unknown;
17
+ };
18
+ export declare const NOT_DECORATED_ARGUMENT: unique symbol;
19
+ export declare abstract class ExecutionContext<InputType = unknown, InternalData = unknown> {
20
+ data: Nullable<InputType>;
21
+ protected internalData: InternalData;
22
+ protected rawArgs: Nullable<ExecutionArgsInfo[]>;
23
+ private readonly controllerInfo;
24
+ constructor(controllerInfo: Nullable<ExecutionControllerInfo<InputType>>);
25
+ get handler(): Nullable<Handler>;
26
+ get controller(): Nullable<object>;
27
+ get controllerClass(): Nullable<Class<object>>;
28
+ get method(): Nullable<string | symbol>;
29
+ get isSubscription(): boolean;
30
+ get isEvent(): boolean;
31
+ get isRpc(): boolean;
32
+ get args(): ExecutionArgsInfo[];
33
+ getMiddlewareData(): InternalData;
34
+ protected initArguments(): ExecutionArgsInfo[];
35
+ protected abstract callType(): CallType;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=execution-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/execution-context/execution-context.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EACN,gBAAgB,EAEhB,MAAM,eAAe,CAAC;AAEvB,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAExF,MAAM,MAAM,uBAAuB,CAAC,SAAS,IAAI;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF,oBAAY,QAAQ;IACnB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,YAAY,iBAAiB;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,OAAO,sBAAsB,GAAG;IACpG,KAAK,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,8BAAsB,gBAAgB,CAAC,SAAS,GAAG,OAAO,EAAE,YAAY,GAAG,OAAO;IAC1E,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAQ;IAExD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+C;gBAE3D,cAAc,EAAE,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAK/E,IAAW,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAQtC;IAGD,IAAW,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,CAExC;IAED,IAAW,eAAe,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAQpD;IAED,IAAW,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAE7C;IAED,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,IAAI,IAAI,iBAAiB,EAAE,CAMrC;IAEM,iBAAiB,IAAI,YAAY;IAIxC,SAAS,CAAC,aAAa,IAAI,iBAAiB,EAAE;IAe9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ;CACvC"}
@@ -0,0 +1,69 @@
1
+ import assert from 'node:assert/strict';
2
+ import { getHandlerArguments, } from '../decorators';
3
+ export var CallType;
4
+ (function (CallType) {
5
+ CallType["RPC"] = "rpc";
6
+ CallType["EVENT"] = "event";
7
+ CallType["SUBSCRIPTION"] = "subscription";
8
+ })(CallType || (CallType = {}));
9
+ export const NOT_DECORATED_ARGUMENT = Symbol('NOT_DECORATED_ARGUMENT');
10
+ export class ExecutionContext {
11
+ data;
12
+ internalData;
13
+ rawArgs = null;
14
+ controllerInfo;
15
+ constructor(controllerInfo) {
16
+ this.controllerInfo = controllerInfo;
17
+ this.data = controllerInfo?.data ?? null;
18
+ }
19
+ get handler() {
20
+ const { controller, method } = this;
21
+ if (!controller || !method) {
22
+ return null;
23
+ }
24
+ return controller[method].bind(controller);
25
+ }
26
+ get controller() {
27
+ return this.controllerInfo?.instance ?? null;
28
+ }
29
+ get controllerClass() {
30
+ const { controller } = this;
31
+ if (!controller) {
32
+ return null;
33
+ }
34
+ return Object.getPrototypeOf(controller).constructor;
35
+ }
36
+ get method() {
37
+ return this.controllerInfo?.method ?? null;
38
+ }
39
+ get isSubscription() {
40
+ return this.callType() === CallType.SUBSCRIPTION;
41
+ }
42
+ get isEvent() {
43
+ return this.callType() === CallType.EVENT;
44
+ }
45
+ get isRpc() {
46
+ return this.callType() === CallType.RPC;
47
+ }
48
+ get args() {
49
+ if (this.rawArgs === null) {
50
+ this.rawArgs = this.initArguments();
51
+ }
52
+ return this.rawArgs;
53
+ }
54
+ getMiddlewareData() {
55
+ return this.internalData;
56
+ }
57
+ initArguments() {
58
+ assert.ok(this.controllerInfo);
59
+ const argumentsMap = getHandlerArguments(this.controllerInfo.instance, this.controllerInfo.method);
60
+ const lastIndex = Math.max(...argumentsMap.keys());
61
+ const argsLength = lastIndex ? lastIndex + 1 : 0;
62
+ const args = Array(argsLength).fill({ value: NOT_DECORATED_ARGUMENT });
63
+ argumentsMap.forEach((handler, index) => {
64
+ args[index] = handler;
65
+ });
66
+ return args;
67
+ }
68
+ }
69
+ //# sourceMappingURL=execution-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/execution-context/execution-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { AsyncContextProvider } from '@hg-ts/async-context';
2
+ import type { ExecutionContext } from './execution-context';
3
+ export declare class ExecutionContextProvider extends AsyncContextProvider<ExecutionContext> {
4
+ }
5
+ //# sourceMappingURL=execution-context.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.provider.d.ts","sourceRoot":"","sources":["../../src/execution-context/execution-context.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,qBAAa,wBAAyB,SAAQ,oBAAoB,CAAC,gBAAgB,CAAC;CAAG"}
@@ -0,0 +1,4 @@
1
+ import { AsyncContextProvider } from '@hg-ts/async-context';
2
+ export class ExecutionContextProvider extends AsyncContextProvider {
3
+ }
4
+ //# sourceMappingURL=execution-context.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.provider.js","sourceRoot":"","sources":["../../src/execution-context/execution-context.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,MAAM,OAAO,wBAAyB,SAAQ,oBAAsC;CAAG"}
@@ -0,0 +1,3 @@
1
+ export * from './execution-context';
2
+ export * from './execution-context.provider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './execution-context';
2
+ export * from './execution-context.provider';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { Observable } from 'rxjs';
2
+ export declare function mapToObservable<T>(value: Observable<T> | Promise<T> | T): Observable<T>;
3
+ export declare function promiseToObservable<T>(promise: Promise<T>): Observable<T>;
4
+ export declare function isPrimitiveValue<T>(value: Observable<T> | Promise<T> | T): value is T;
5
+ //# sourceMappingURL=map-to-observable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-to-observable.d.ts","sourceRoot":"","sources":["../src/map-to-observable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EAEV,MAAM,MAAM,CAAC;AAGd,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAUvF;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAezE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAErF"}
@@ -0,0 +1,32 @@
1
+ import { Observable, of, } from 'rxjs';
2
+ import { first } from 'rxjs/operators';
3
+ export function mapToObservable(value) {
4
+ if (isPrimitiveValue(value)) {
5
+ return of(value);
6
+ }
7
+ if (value instanceof Promise) {
8
+ return promiseToObservable(value);
9
+ }
10
+ return value;
11
+ }
12
+ export function promiseToObservable(promise) {
13
+ return new Observable(subscriber => {
14
+ promise
15
+ .then(result => {
16
+ if (result instanceof Observable) {
17
+ result
18
+ .pipe(first())
19
+ .subscribe(subscriber);
20
+ }
21
+ else {
22
+ subscriber.next(result);
23
+ }
24
+ })
25
+ .catch(error => subscriber.error(error))
26
+ .finally(() => subscriber.complete());
27
+ });
28
+ }
29
+ export function isPrimitiveValue(value) {
30
+ return !(value instanceof Promise || value instanceof Observable);
31
+ }
32
+ //# sourceMappingURL=map-to-observable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-to-observable.js","sourceRoot":"","sources":["../src/map-to-observable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,EAAE,GACF,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,UAAU,eAAe,CAAI,KAAqC;IACvE,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;KACjB;IAED,IAAI,KAAK,YAAY,OAAO,EAAE;QAC7B,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,OAAmB;IACzD,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACrC,OAAO;aACL,IAAI,CAAC,MAAM,CAAC,EAAE;YACd,IAAI,MAAM,YAAY,UAAU,EAAE;gBACjC,MAAM;qBACJ,IAAI,CAAC,KAAK,EAAE,CAAC;qBACb,SAAS,CAAC,UAAU,CAAC,CAAC;aACxB;iBAAM;gBACN,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;QACF,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACvC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,KAAqC;IACxE,OAAO,CAAC,CAAC,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,UAAU,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ConfigLoader } from '@hg-ts/config-loader';
2
+ import { DynamicModule } from '@hg-ts/ioc';
3
+ export declare class RedisModule {
4
+ static forRootAsync(configLoader: ConfigLoader): DynamicModule;
5
+ }
6
+ //# sourceMappingURL=redis.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.d.ts","sourceRoot":"","sources":["../src/redis.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACN,aAAa,EAGb,MAAM,YAAY,CAAC;AASpB,qBAEa,WAAW;WACT,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,aAAa;CAsBrE"}
@@ -0,0 +1,34 @@
1
+ var RedisModule_1;
2
+ import { __decorate } from "tslib";
3
+ import { Global, Module, } from '@hg-ts/ioc';
4
+ import { RedisModule as RawRedisModule } from '@liaoliaots/nestjs-redis';
5
+ import { REDIS_CONFIG_SCHEMA, RedisConfig, } from './config';
6
+ let RedisModule = RedisModule_1 = class RedisModule {
7
+ static forRootAsync(configLoader) {
8
+ const redisModule = RawRedisModule.forRootAsync({
9
+ async useFactory() {
10
+ const config = await configLoader.load(REDIS_CONFIG_SCHEMA, 'redis');
11
+ return {
12
+ commonOptions: { enableReadyCheck: true },
13
+ config: {
14
+ host: config.host,
15
+ port: config.port,
16
+ db: config.database,
17
+ },
18
+ };
19
+ },
20
+ inject: [RedisConfig],
21
+ });
22
+ return {
23
+ module: RedisModule_1,
24
+ imports: [redisModule],
25
+ exports: [redisModule],
26
+ };
27
+ }
28
+ };
29
+ RedisModule = RedisModule_1 = __decorate([
30
+ Global(),
31
+ Module()
32
+ ], RedisModule);
33
+ export { RedisModule };
34
+ //# sourceMappingURL=redis.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.js","sourceRoot":"","sources":["../src/redis.module.ts"],"names":[],"mappings":";;AACA,OAAO,EAEN,MAAM,EACN,MAAM,GACN,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,IAAI,cAAc,EAAsB,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EACN,mBAAmB,EACnB,WAAW,GACX,MAAM,UAAU,CAAC;AAIX,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAChB,MAAM,CAAC,YAAY,CAAC,YAA0B;QACpD,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC;YAC/C,KAAK,CAAC,UAAU;gBACf,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBACrE,OAAO;oBACN,aAAa,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;oBACzC,MAAM,EAAE;wBACP,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,EAAE,EAAE,MAAM,CAAC,QAAQ;qBACnB;iBACD,CAAC;YACH,CAAC;YACD,MAAM,EAAE,CAAC,WAAW,CAAC;SACrB,CAAC,CAAC;QAEH,OAAO;YACN,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,WAAW,CAAC;YACtB,OAAO,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC;IACH,CAAC;CACD,CAAA;AAvBY,WAAW;IAFvB,MAAM,EAAE;IACR,MAAM,EAAE;GACI,WAAW,CAuBvB"}
@@ -0,0 +1,6 @@
1
+ import type { OperatorFunction } from 'rxjs';
2
+ export declare class RequestHandler {
3
+ private readonly controllerCaller;
4
+ call(): OperatorFunction<unknown, unknown>;
5
+ }
6
+ //# sourceMappingURL=request.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.handler.d.ts","sourceRoot":"","sources":["../src/request.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,gBAAgB,EAChB,MAAM,MAAM,CAAC;AAGd,qBAAa,cAAc;IAE1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAE7C,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;CAKjD"}
@@ -0,0 +1,14 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Dependency } from '@hg-ts/ioc';
3
+ import { ControllerCaller } from './controller.caller';
4
+ export class RequestHandler {
5
+ controllerCaller;
6
+ call() {
7
+ return (source) => source.pipe(this.controllerCaller.call());
8
+ }
9
+ }
10
+ __decorate([
11
+ Dependency(),
12
+ __metadata("design:type", ControllerCaller)
13
+ ], RequestHandler.prototype, "controllerCaller", void 0);
14
+ //# sourceMappingURL=request.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.handler.js","sourceRoot":"","sources":["../src/request.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,OAAO,cAAc;IAET,gBAAgB,CAAmB;IAE7C,IAAI;QACV,OAAO,CAAC,MAAM,EAAuB,EAAE,CAAC,MAAM,CAAC,IAAI,CAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAC5B,CAAC;IACH,CAAC;CACD;AAPiB;IADhB,UAAU,EAAE;8BACsB,gBAAgB;wDAAC"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="@hg-ts/types" />
2
+ import type { ControllerInfo } from '../controllers';
3
+ export type GetHandlerParams = {
4
+ controller: object;
5
+ method: string | symbol;
6
+ };
7
+ export declare abstract class BaseHandlersMap<HandlerKey, Input> extends Map<HandlerKey, GetHandlerParams> {
8
+ addControllers(controllers: ControllerInfo[]): void;
9
+ hasInputKey(input: Input): boolean;
10
+ abstract getInputKey(input: Input): Nullable<HandlerKey>;
11
+ protected abstract getHandlerKey(info: GetHandlerParams): Nullable<HandlerKey>;
12
+ }
13
+ //# sourceMappingURL=base.handler-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.handler-map.d.ts","sourceRoot":"","sources":["../../src/server/base.handler-map.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAA;AAED,8BAAsB,eAAe,CAAC,UAAU,EAAE,KAAK,CAAE,SAAQ,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAC1F,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI;IAqBnD,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;aAIzB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC/D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC;CAC9E"}
@@ -0,0 +1,24 @@
1
+ export class BaseHandlersMap extends Map {
2
+ addControllers(controllers) {
3
+ controllers.forEach(info => {
4
+ const { instance } = info;
5
+ info.handlers.forEach(method => {
6
+ const result = {
7
+ controller: instance,
8
+ method,
9
+ };
10
+ const key = this.getHandlerKey({
11
+ controller: instance,
12
+ method,
13
+ });
14
+ if (key) {
15
+ this.set(key, result);
16
+ }
17
+ });
18
+ });
19
+ }
20
+ hasInputKey(input) {
21
+ return this.getInputKey(input) !== null;
22
+ }
23
+ }
24
+ //# sourceMappingURL=base.handler-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.handler-map.js","sourceRoot":"","sources":["../../src/server/base.handler-map.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,eAAmC,SAAQ,GAAiC;IAC1F,cAAc,CAAC,WAA6B;QAClD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAE1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC9B,MAAM,MAAM,GAAqB;oBAChC,UAAU,EAAE,QAAQ;oBACpB,MAAM;iBACN,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;oBAC9B,UAAU,EAAE,QAAQ;oBACpB,MAAM;iBACN,CAAC,CAAC;gBAEH,IAAI,GAAG,EAAE;oBACR,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;iBACtB;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,KAAY;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACzC,CAAC;CAID"}
@@ -0,0 +1,25 @@
1
+ /// <reference types="@hg-ts/types" />
2
+ import { BEFORE_SHUT_DOWN_HOOK, INIT_HOOK, START_HOOK } from '@hg-ts/ioc';
3
+ import { MonoTypeOperatorFunction, Observable, OperatorFunction, Subscription } from 'rxjs';
4
+ import { ExecutionContextProvider, ExecutionContext } from '../execution-context';
5
+ import type { BaseHandlersMap, GetHandlerParams } from './base.handler-map';
6
+ export declare abstract class BaseServer<HandlerKey, Input, Context extends ExecutionContext> {
7
+ protected readonly executionContextProvider: ExecutionContextProvider;
8
+ protected subscription: Nullable<Subscription>;
9
+ private readonly requestHandler;
10
+ private readonly controllerExplorerService;
11
+ protected abstract readonly handlersMap: BaseHandlersMap<HandlerKey, Input>;
12
+ [INIT_HOOK](): Promise<void>;
13
+ [START_HOOK](): Promise<void>;
14
+ [BEFORE_SHUT_DOWN_HOOK](): Promise<void>;
15
+ protected subscribe(): void;
16
+ protected get context(): Context;
17
+ protected abstract getInputSteam(): Observable<Input>;
18
+ protected abstract getFilterOperator(): MonoTypeOperatorFunction<Input>;
19
+ protected abstract getHandlerResultOperator(): OperatorFunction<unknown, void>;
20
+ protected abstract createContext(input: Input, info: GetHandlerParams): Context;
21
+ protected abstract close(): Promise<void>;
22
+ protected abstract get transportKey(): symbol;
23
+ private getContextOperator;
24
+ }
25
+ //# sourceMappingURL=base.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.server.d.ts","sourceRoot":"","sources":["../../src/server/base.server.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,qBAAqB,EAErB,SAAS,EACT,UAAU,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAEN,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGlF,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,8BAAsB,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,SAAS,gBAAgB;IAEnF,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAEtE,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAQ;IAGtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA4B;IAEtE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE/D,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrD,SAAS,CAAC,SAAS,IAAI,IAAI;IAa3B,SAAS,KAAK,OAAO,IAAI,OAAO,CAE/B;IAED,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC;IACrD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,wBAAwB,CAAC,KAAK,CAAC;IACvE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,IAAI,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC9E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAC/E,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzC,SAAS,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC;IAE9C,OAAO,CAAC,kBAAkB;CAQ1B"}
@@ -0,0 +1,51 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { BEFORE_SHUT_DOWN_HOOK, Dependency, INIT_HOOK, START_HOOK, } from '@hg-ts/ioc';
3
+ import { map, } from 'rxjs';
4
+ import { ExecutionContextProvider } from '../execution-context';
5
+ import { ControllerExplorerService } from '../controllers';
6
+ import { RequestHandler } from './request.handler';
7
+ export class BaseServer {
8
+ executionContextProvider;
9
+ subscription = null;
10
+ requestHandler;
11
+ controllerExplorerService;
12
+ async [INIT_HOOK]() {
13
+ const controllers = this.controllerExplorerService.getControllers(this.transportKey);
14
+ this.handlersMap.addControllers(controllers);
15
+ }
16
+ async [START_HOOK]() {
17
+ this.subscribe();
18
+ }
19
+ async [BEFORE_SHUT_DOWN_HOOK]() {
20
+ this.subscription?.unsubscribe();
21
+ await this.close();
22
+ }
23
+ subscribe() {
24
+ this.subscription = this.getInputSteam()
25
+ .pipe(this.getFilterOperator(), this.getContextOperator(), this.executionContextProvider.runOperator(), map(() => null), this.requestHandler.call(), this.getHandlerResultOperator())
26
+ .subscribe();
27
+ }
28
+ get context() {
29
+ return this.executionContextProvider.getOrFail();
30
+ }
31
+ getContextOperator() {
32
+ return map(input => {
33
+ const inputKey = this.handlersMap.getInputKey(input);
34
+ const handler = this.handlersMap.get(inputKey);
35
+ return this.createContext(input, handler);
36
+ });
37
+ }
38
+ }
39
+ __decorate([
40
+ Dependency(),
41
+ __metadata("design:type", ExecutionContextProvider)
42
+ ], BaseServer.prototype, "executionContextProvider", void 0);
43
+ __decorate([
44
+ Dependency(),
45
+ __metadata("design:type", RequestHandler)
46
+ ], BaseServer.prototype, "requestHandler", void 0);
47
+ __decorate([
48
+ Dependency(),
49
+ __metadata("design:type", ControllerExplorerService)
50
+ ], BaseServer.prototype, "controllerExplorerService", void 0);
51
+ //# sourceMappingURL=base.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.server.js","sourceRoot":"","sources":["../../src/server/base.server.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,GAAG,GAKH,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,wBAAwB,EAAoB,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,OAAgB,UAAU;IAEZ,wBAAwB,CAA2B;IAE5D,YAAY,GAA2B,IAAI,CAAC;IAGrC,cAAc,CAAiB;IAE/B,yBAAyB,CAA4B;IAI/D,KAAK,CAAC,CAAC,SAAS,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAErF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,CAAC,UAAU,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,CAAC,qBAAqB,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAES,SAAS;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;aACtC,IAAI,CACJ,IAAI,CAAC,iBAAiB,EAAE,EACxB,IAAI,CAAC,kBAAkB,EAAE,EACzB,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,EAC3C,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACf,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC1B,IAAI,CAAC,wBAAwB,EAAE,CAC/B;aACA,SAAS,EAAE,CAAC;IACf,CAAC;IAED,IAAc,OAAO;QACpB,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAa,CAAC;IAC7D,CAAC;IAUO,kBAAkB;QACzB,OAAO,GAAG,CAAiB,KAAK,CAAC,EAAE;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAEhD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AA3DmB;IADlB,UAAU,EAAE;8BACgC,wBAAwB;4DAAC;AAKrD;IADhB,UAAU,EAAE;8BACoB,cAAc;kDAAC;AAE/B;IADhB,UAAU,EAAE;8BAC+B,yBAAyB;6DAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './base.server';
2
+ export * from './base.handler-map';
3
+ export * from './request.handler';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './base.server';
2
+ export * from './base.handler-map';
3
+ export * from './request.handler';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { OperatorFunction } from 'rxjs';
2
+ export declare class RequestHandler {
3
+ private readonly controllerCaller;
4
+ call(): OperatorFunction<unknown, unknown>;
5
+ }
6
+ //# sourceMappingURL=request.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.handler.d.ts","sourceRoot":"","sources":["../../src/server/request.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,gBAAgB,EAChB,MAAM,MAAM,CAAC;AAGd,qBAAa,cAAc;IAE1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAE7C,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;CAKjD"}
@@ -0,0 +1,14 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Dependency } from '@hg-ts/ioc';
3
+ import { ControllerCaller } from '../controllers';
4
+ export class RequestHandler {
5
+ controllerCaller;
6
+ call() {
7
+ return (source) => source.pipe(this.controllerCaller.call());
8
+ }
9
+ }
10
+ __decorate([
11
+ Dependency(),
12
+ __metadata("design:type", ControllerCaller)
13
+ ], RequestHandler.prototype, "controllerCaller", void 0);
14
+ //# sourceMappingURL=request.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.handler.js","sourceRoot":"","sources":["../../src/server/request.handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,OAAO,cAAc;IAET,gBAAgB,CAAmB;IAE7C,IAAI;QACV,OAAO,CAAC,MAAM,EAAuB,EAAE,CAAC,MAAM,CAAC,IAAI,CAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAC5B,CAAC;IACH,CAAC;CACD;AAPiB;IADhB,UAAU,EAAE;8BACsB,gBAAgB;wDAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class ServerModule {
2
+ }
3
+ //# sourceMappingURL=server.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.module.d.ts","sourceRoot":"","sources":["../src/server.module.ts"],"names":[],"mappings":"AAMA,qBAca,YAAY;CAAG"}
@@ -0,0 +1,25 @@
1
+ import { __decorate } from "tslib";
2
+ import { Module } from '@hg-ts/ioc';
3
+ import { ExecutionContextProvider } from './execution-context';
4
+ import { ControllerExplorerService, ControllerCaller } from './controllers';
5
+ import { RequestHandler } from './server';
6
+ let ServerModule = class ServerModule {
7
+ };
8
+ ServerModule = __decorate([
9
+ Module({
10
+ providers: [
11
+ ControllerExplorerService,
12
+ RequestHandler,
13
+ ExecutionContextProvider,
14
+ ControllerCaller,
15
+ ],
16
+ exports: [
17
+ ControllerExplorerService,
18
+ RequestHandler,
19
+ ExecutionContextProvider,
20
+ ControllerCaller,
21
+ ],
22
+ })
23
+ ], ServerModule);
24
+ export { ServerModule };
25
+ //# sourceMappingURL=server.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.module.js","sourceRoot":"","sources":["../src/server.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAgBnC,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IAdxB,MAAM,CAAC;QACP,SAAS,EAAE;YACV,yBAAyB;YACzB,cAAc;YACd,wBAAwB;YACxB,gBAAgB;SAChB;QACD,OAAO,EAAE;YACR,yBAAyB;YACzB,cAAc;YACd,wBAAwB;YACxB,gBAAgB;SAChB;KACD,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,2 @@
1
+ export declare const TEST_TRANSPORT: unique symbol;
2
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/tests/controllers/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const TEST_TRANSPORT = Symbol('TEST_TRANSPORT');
2
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../src/tests/controllers/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TestSuite } from '@hg-ts/tests';
2
+ export declare class ControllerTestSuite extends TestSuite {
3
+ isController(): Promise<void>;
4
+ isControllerWithIncorrectTransport(): Promise<void>;
5
+ getHandlers(): Promise<void>;
6
+ getEmptyArguments(): Promise<void>;
7
+ getEchoArguments(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=controller.test-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.test-suite.d.ts","sourceRoot":"","sources":["../../../src/tests/controllers/controller.test-suite.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,SAAS,EAET,MAAM,cAAc,CAAC;AAWtB,qBACa,mBAAoB,SAAQ,SAAS;IAEpC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9C"}