@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.
- package/.eslintcache +1 -0
- package/.eslintrc.json +1 -0
- package/.nyc_output/089b21aa-e535-4b85-ae33-c883bb354098.json +1 -0
- package/.nyc_output/3e07cb8f-5adb-4386-8f08-9568a8f6b6fe.json +1 -0
- package/.nyc_output/84fba1cd-e0a1-4b6f-9061-44e27d7310d3.json +1 -0
- package/.nyc_output/processinfo/089b21aa-e535-4b85-ae33-c883bb354098.json +1 -0
- package/.nyc_output/processinfo/3e07cb8f-5adb-4386-8f08-9568a8f6b6fe.json +1 -0
- package/.nyc_output/processinfo/84fba1cd-e0a1-4b6f-9061-44e27d7310d3.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +18 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/redis.module.d.ts +6 -0
- package/dist/redis.module.d.ts.map +1 -0
- package/dist/redis.module.js +37 -0
- package/dist/redis.module.js.map +1 -0
- package/dist-esm/base.handler-map.d.ts +13 -0
- package/dist-esm/base.handler-map.d.ts.map +1 -0
- package/dist-esm/base.handler-map.js +24 -0
- package/dist-esm/base.handler-map.js.map +1 -0
- package/dist-esm/base.server.d.ts +25 -0
- package/dist-esm/base.server.d.ts.map +1 -0
- package/dist-esm/base.server.js +51 -0
- package/dist-esm/base.server.js.map +1 -0
- package/dist-esm/config.d.ts +31 -0
- package/dist-esm/config.d.ts.map +1 -0
- package/dist-esm/config.js +13 -0
- package/dist-esm/config.js.map +1 -0
- package/dist-esm/controller-explorer.service.d.ts +10 -0
- package/dist-esm/controller-explorer.service.d.ts.map +1 -0
- package/dist-esm/controller-explorer.service.js +23 -0
- package/dist-esm/controller-explorer.service.js.map +1 -0
- package/dist-esm/controller.caller.d.ts +9 -0
- package/dist-esm/controller.caller.d.ts.map +1 -0
- package/dist-esm/controller.caller.js +41 -0
- package/dist-esm/controller.caller.js.map +1 -0
- package/dist-esm/controllers/controller-explorer.service.d.ts +10 -0
- package/dist-esm/controllers/controller-explorer.service.d.ts.map +1 -0
- package/dist-esm/controllers/controller-explorer.service.js +23 -0
- package/dist-esm/controllers/controller-explorer.service.js.map +1 -0
- package/dist-esm/controllers/controller.caller.d.ts +9 -0
- package/dist-esm/controllers/controller.caller.d.ts.map +1 -0
- package/dist-esm/controllers/controller.caller.js +41 -0
- package/dist-esm/controllers/controller.caller.js.map +1 -0
- package/dist-esm/controllers/index.d.ts +3 -0
- package/dist-esm/controllers/index.d.ts.map +1 -0
- package/dist-esm/controllers/index.js +3 -0
- package/dist-esm/controllers/index.js.map +1 -0
- package/dist-esm/decorators/context.decorator.d.ts +2 -0
- package/dist-esm/decorators/context.decorator.d.ts.map +1 -0
- package/dist-esm/decorators/context.decorator.js +3 -0
- package/dist-esm/decorators/context.decorator.js.map +1 -0
- package/dist-esm/decorators/controller.decorator.d.ts +7 -0
- package/dist-esm/decorators/controller.decorator.d.ts.map +1 -0
- package/dist-esm/decorators/controller.decorator.js +27 -0
- package/dist-esm/decorators/controller.decorator.js.map +1 -0
- package/dist-esm/decorators/create-param-decorator.d.ts +14 -0
- package/dist-esm/decorators/create-param-decorator.d.ts.map +1 -0
- package/dist-esm/decorators/create-param-decorator.js +26 -0
- package/dist-esm/decorators/create-param-decorator.js.map +1 -0
- package/dist-esm/decorators/index.d.ts +5 -0
- package/dist-esm/decorators/index.d.ts.map +1 -0
- package/dist-esm/decorators/index.js +5 -0
- package/dist-esm/decorators/index.js.map +1 -0
- package/dist-esm/decorators/middleware-data.decorator.d.ts +2 -0
- package/dist-esm/decorators/middleware-data.decorator.d.ts.map +1 -0
- package/dist-esm/decorators/middleware-data.decorator.js +3 -0
- package/dist-esm/decorators/middleware-data.decorator.js.map +1 -0
- package/dist-esm/execution-context/execution-context.d.ts +38 -0
- package/dist-esm/execution-context/execution-context.d.ts.map +1 -0
- package/dist-esm/execution-context/execution-context.js +69 -0
- package/dist-esm/execution-context/execution-context.js.map +1 -0
- package/dist-esm/execution-context/execution-context.provider.d.ts +5 -0
- package/dist-esm/execution-context/execution-context.provider.d.ts.map +1 -0
- package/dist-esm/execution-context/execution-context.provider.js +4 -0
- package/dist-esm/execution-context/execution-context.provider.js.map +1 -0
- package/dist-esm/execution-context/index.d.ts +3 -0
- package/dist-esm/execution-context/index.d.ts.map +1 -0
- package/dist-esm/execution-context/index.js +3 -0
- package/dist-esm/execution-context/index.js.map +1 -0
- package/dist-esm/index.d.ts +1 -0
- package/dist-esm/index.d.ts.map +1 -0
- package/dist-esm/index.js +2 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/map-to-observable.d.ts +5 -0
- package/dist-esm/map-to-observable.d.ts.map +1 -0
- package/dist-esm/map-to-observable.js +32 -0
- package/dist-esm/map-to-observable.js.map +1 -0
- package/dist-esm/redis.module.d.ts +6 -0
- package/dist-esm/redis.module.d.ts.map +1 -0
- package/dist-esm/redis.module.js +34 -0
- package/dist-esm/redis.module.js.map +1 -0
- package/dist-esm/request.handler.d.ts +6 -0
- package/dist-esm/request.handler.d.ts.map +1 -0
- package/dist-esm/request.handler.js +14 -0
- package/dist-esm/request.handler.js.map +1 -0
- package/dist-esm/server/base.handler-map.d.ts +13 -0
- package/dist-esm/server/base.handler-map.d.ts.map +1 -0
- package/dist-esm/server/base.handler-map.js +24 -0
- package/dist-esm/server/base.handler-map.js.map +1 -0
- package/dist-esm/server/base.server.d.ts +25 -0
- package/dist-esm/server/base.server.d.ts.map +1 -0
- package/dist-esm/server/base.server.js +51 -0
- package/dist-esm/server/base.server.js.map +1 -0
- package/dist-esm/server/index.d.ts +4 -0
- package/dist-esm/server/index.d.ts.map +1 -0
- package/dist-esm/server/index.js +4 -0
- package/dist-esm/server/index.js.map +1 -0
- package/dist-esm/server/request.handler.d.ts +6 -0
- package/dist-esm/server/request.handler.d.ts.map +1 -0
- package/dist-esm/server/request.handler.js +14 -0
- package/dist-esm/server/request.handler.js.map +1 -0
- package/dist-esm/server.module.d.ts +3 -0
- package/dist-esm/server.module.d.ts.map +1 -0
- package/dist-esm/server.module.js +25 -0
- package/dist-esm/server.module.js.map +1 -0
- package/dist-esm/tests/controllers/consts.d.ts +2 -0
- package/dist-esm/tests/controllers/consts.d.ts.map +1 -0
- package/dist-esm/tests/controllers/consts.js +2 -0
- package/dist-esm/tests/controllers/consts.js.map +1 -0
- package/dist-esm/tests/controllers/controller.test-suite.d.ts +9 -0
- package/dist-esm/tests/controllers/controller.test-suite.d.ts.map +1 -0
- package/dist-esm/tests/controllers/controller.test-suite.js +78 -0
- package/dist-esm/tests/controllers/controller.test-suite.js.map +1 -0
- package/dist-esm/tests/controllers/test.controller.d.ts +7 -0
- package/dist-esm/tests/controllers/test.controller.d.ts.map +1 -0
- package/dist-esm/tests/controllers/test.controller.js +32 -0
- package/dist-esm/tests/controllers/test.controller.js.map +1 -0
- package/dist-esm/tests/controllers/test.execution-context.d.ts +5 -0
- package/dist-esm/tests/controllers/test.execution-context.d.ts.map +1 -0
- package/dist-esm/tests/controllers/test.execution-context.js +7 -0
- package/dist-esm/tests/controllers/test.execution-context.js.map +1 -0
- package/dist-esm/tests/server/server.test-suite.d.ts +11 -0
- package/dist-esm/tests/server/server.test-suite.d.ts.map +1 -0
- package/dist-esm/tests/server/server.test-suite.js +42 -0
- package/dist-esm/tests/server/server.test-suite.js.map +1 -0
- package/dist-esm/tests/server/test-handler.decorator.d.ts +6 -0
- package/dist-esm/tests/server/test-handler.decorator.d.ts.map +1 -0
- package/dist-esm/tests/server/test-handler.decorator.js +15 -0
- package/dist-esm/tests/server/test-handler.decorator.js.map +1 -0
- package/dist-esm/tests/server/test.body.d.ts +2 -0
- package/dist-esm/tests/server/test.body.d.ts.map +1 -0
- package/dist-esm/tests/server/test.body.js +3 -0
- package/dist-esm/tests/server/test.body.js.map +1 -0
- package/dist-esm/tests/server/test.controller.d.ts +4 -0
- package/dist-esm/tests/server/test.controller.d.ts.map +1 -0
- package/dist-esm/tests/server/test.controller.js +21 -0
- package/dist-esm/tests/server/test.controller.js.map +1 -0
- package/dist-esm/tests/server/test.execution-context.d.ts +6 -0
- package/dist-esm/tests/server/test.execution-context.d.ts.map +1 -0
- package/dist-esm/tests/server/test.execution-context.js +7 -0
- package/dist-esm/tests/server/test.execution-context.js.map +1 -0
- package/dist-esm/tests/server/test.handler-map.d.ts +14 -0
- package/dist-esm/tests/server/test.handler-map.d.ts.map +1 -0
- package/dist-esm/tests/server/test.handler-map.js +12 -0
- package/dist-esm/tests/server/test.handler-map.js.map +1 -0
- package/dist-esm/tests/server/test.module.d.ts +3 -0
- package/dist-esm/tests/server/test.module.d.ts.map +1 -0
- package/dist-esm/tests/server/test.module.js +15 -0
- package/dist-esm/tests/server/test.module.js.map +1 -0
- package/dist-esm/tests/server/test.server.d.ts +17 -0
- package/dist-esm/tests/server/test.server.d.ts.map +1 -0
- package/dist-esm/tests/server/test.server.js +39 -0
- package/dist-esm/tests/server/test.server.js.map +1 -0
- package/dist-esm/tests/server.test-suite.d.ts +11 -0
- package/dist-esm/tests/server.test-suite.d.ts.map +1 -0
- package/dist-esm/tests/server.test-suite.js +42 -0
- package/dist-esm/tests/server.test-suite.js.map +1 -0
- package/dist-esm/tests/test-handler.decorator.d.ts +6 -0
- package/dist-esm/tests/test-handler.decorator.d.ts.map +1 -0
- package/dist-esm/tests/test-handler.decorator.js +15 -0
- package/dist-esm/tests/test-handler.decorator.js.map +1 -0
- package/dist-esm/tests/test.body.d.ts +2 -0
- package/dist-esm/tests/test.body.d.ts.map +1 -0
- package/dist-esm/tests/test.body.js +3 -0
- package/dist-esm/tests/test.body.js.map +1 -0
- package/dist-esm/tests/test.controller.d.ts +4 -0
- package/dist-esm/tests/test.controller.d.ts.map +1 -0
- package/dist-esm/tests/test.controller.js +21 -0
- package/dist-esm/tests/test.controller.js.map +1 -0
- package/dist-esm/tests/test.execution-context.d.ts +6 -0
- package/dist-esm/tests/test.execution-context.d.ts.map +1 -0
- package/dist-esm/tests/test.execution-context.js +7 -0
- package/dist-esm/tests/test.execution-context.js.map +1 -0
- package/dist-esm/tests/test.handler-map.d.ts +14 -0
- package/dist-esm/tests/test.handler-map.d.ts.map +1 -0
- package/dist-esm/tests/test.handler-map.js +12 -0
- package/dist-esm/tests/test.handler-map.js.map +1 -0
- package/dist-esm/tests/test.module.d.ts +3 -0
- package/dist-esm/tests/test.module.d.ts.map +1 -0
- package/dist-esm/tests/test.module.js +15 -0
- package/dist-esm/tests/test.module.js.map +1 -0
- package/dist-esm/tests/test.server.d.ts +18 -0
- package/dist-esm/tests/test.server.d.ts.map +1 -0
- package/dist-esm/tests/test.server.js +39 -0
- package/dist-esm/tests/test.server.js.map +1 -0
- package/dist-esm/utils.d.ts +5 -0
- package/dist-esm/utils.d.ts.map +1 -0
- package/dist-esm/utils.js +32 -0
- package/dist-esm/utils.js.map +1 -0
- package/package.json +47 -0
- package/src/config.ts +13 -0
- package/src/index.ts +0 -0
- package/src/redis.module.ts +40 -0
- package/tsconfig.esm.json +9 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var RedisModule_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RedisModule = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const ioc_1 = require("@hg-ts/ioc");
|
|
7
|
+
const nestjs_redis_1 = require("@liaoliaots/nestjs-redis");
|
|
8
|
+
const config_1 = require("./config");
|
|
9
|
+
let RedisModule = RedisModule_1 = class RedisModule {
|
|
10
|
+
static forRootAsync(configLoader) {
|
|
11
|
+
const redisModule = nestjs_redis_1.RedisModule.forRootAsync({
|
|
12
|
+
async useFactory() {
|
|
13
|
+
const config = await configLoader.load(config_1.REDIS_CONFIG_SCHEMA, 'redis');
|
|
14
|
+
return {
|
|
15
|
+
commonOptions: { enableReadyCheck: true },
|
|
16
|
+
config: {
|
|
17
|
+
host: config.host,
|
|
18
|
+
port: config.port,
|
|
19
|
+
db: config.database,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
inject: [config_1.RedisConfig],
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
module: RedisModule_1,
|
|
27
|
+
imports: [redisModule],
|
|
28
|
+
exports: [redisModule],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.RedisModule = RedisModule;
|
|
33
|
+
exports.RedisModule = RedisModule = RedisModule_1 = tslib_1.__decorate([
|
|
34
|
+
(0, ioc_1.Global)(),
|
|
35
|
+
(0, ioc_1.Module)()
|
|
36
|
+
], RedisModule);
|
|
37
|
+
//# sourceMappingURL=redis.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.module.js","sourceRoot":"","sources":["../src/redis.module.ts"],"names":[],"mappings":";;;;;AACA,oCAIoB;AAEpB,2DAA6F;AAE7F,qCAGkB;AAIX,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAChB,MAAM,CAAC,YAAY,CAAC,YAA0B;QACpD,MAAM,WAAW,GAAG,0BAAc,CAAC,YAAY,CAAC;YAC/C,KAAK,CAAC,UAAU;gBACf,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,4BAAmB,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,oBAAW,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,kCAAW;sBAAX,WAAW;IAFvB,IAAA,YAAM,GAAE;IACR,IAAA,YAAM,GAAE;GACI,WAAW,CAuBvB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="@hg-ts/types" />
|
|
2
|
+
import type { ControllerInfo } from './controller-explorer.service';
|
|
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/base.handler-map.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,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/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 { ExecutionContextProvider, ExecutionContext } from '@hg-ts/controllers';
|
|
3
|
+
import { BEFORE_SHUT_DOWN_HOOK, INIT_HOOK, START_HOOK } from '@hg-ts/ioc';
|
|
4
|
+
import { MonoTypeOperatorFunction, Observable, OperatorFunction, Subscription } from 'rxjs';
|
|
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/base.server.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAChF,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,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI5E,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 { ExecutionContextProvider } from '@hg-ts/controllers';
|
|
3
|
+
import { BEFORE_SHUT_DOWN_HOOK, Dependency, INIT_HOOK, START_HOOK, } from '@hg-ts/ioc';
|
|
4
|
+
import { map, } from 'rxjs';
|
|
5
|
+
import { ControllerExplorerService } from './controller-explorer.service';
|
|
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/base.server.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,wBAAwB,EAAoB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACN,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,GAAG,GAKH,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,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,31 @@
|
|
|
1
|
+
import zod from '@hg-ts/validation';
|
|
2
|
+
export declare const REDIS_CONFIG_SCHEMA: zod.ZodObject<{
|
|
3
|
+
password: zod.ZodString;
|
|
4
|
+
userName: zod.ZodString;
|
|
5
|
+
host: zod.ZodEffects<zod.ZodString, string, string>;
|
|
6
|
+
database: zod.ZodNumber;
|
|
7
|
+
port: zod.ZodNumber;
|
|
8
|
+
}, "strip", zod.ZodTypeAny, {
|
|
9
|
+
password: string;
|
|
10
|
+
userName: string;
|
|
11
|
+
host: string;
|
|
12
|
+
database: number;
|
|
13
|
+
port: number;
|
|
14
|
+
}, {
|
|
15
|
+
password: string;
|
|
16
|
+
userName: string;
|
|
17
|
+
host: string;
|
|
18
|
+
database: number;
|
|
19
|
+
port: number;
|
|
20
|
+
}>;
|
|
21
|
+
declare const RedisConfig_base: import("@hg-ts/validation/dist/dto").ZodDto<{
|
|
22
|
+
password: string;
|
|
23
|
+
userName: string;
|
|
24
|
+
host: string;
|
|
25
|
+
database: number;
|
|
26
|
+
port: number;
|
|
27
|
+
}>;
|
|
28
|
+
export declare class RedisConfig extends RedisConfig_base {
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAEpC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;;;;;;;;AAEH,qBAAa,WAAY,SAAQ,gBAA6B;CAAG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import zod from '@hg-ts/validation';
|
|
2
|
+
export const REDIS_CONFIG_SCHEMA = zod.object({
|
|
3
|
+
password: zod.string(),
|
|
4
|
+
userName: zod.string(),
|
|
5
|
+
host: zod.string().enforceEnv('REDIS_HOST'),
|
|
6
|
+
database: zod.number().int()
|
|
7
|
+
.min(0),
|
|
8
|
+
port: zod.number().positive()
|
|
9
|
+
.int(),
|
|
10
|
+
});
|
|
11
|
+
export class RedisConfig extends REDIS_CONFIG_SCHEMA.toClass() {
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;IAC3C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;SAC1B,GAAG,CAAC,CAAC,CAAC;IACR,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,GAAG,EAAE;CACP,CAAC,CAAC;AAEH,MAAM,OAAO,WAAY,SAAQ,mBAAmB,CAAC,OAAO,EAAE;CAAG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ModulesContainer } from '@hg-ts/ioc';
|
|
2
|
+
export type ControllerInfo = {
|
|
3
|
+
instance: object;
|
|
4
|
+
handlers: Set<string | symbol>;
|
|
5
|
+
};
|
|
6
|
+
export declare class ControllerExplorerService {
|
|
7
|
+
protected readonly container: ModulesContainer;
|
|
8
|
+
getControllers(transport: symbol): ControllerInfo[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=controller-explorer.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-explorer.service.d.ts","sourceRoot":"","sources":["../src/controller-explorer.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAC/B,CAAA;AAED,qBAAa,yBAAyB;IAErC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAExC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;CAc1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { getControllerHandlers, isController, } from '@hg-ts/controllers';
|
|
3
|
+
import { Dependency, ModulesContainer } from '@hg-ts/ioc';
|
|
4
|
+
export class ControllerExplorerService {
|
|
5
|
+
container;
|
|
6
|
+
getControllers(transport) {
|
|
7
|
+
const modules = Array.from(this.container.values());
|
|
8
|
+
const wrappers = modules.flatMap(module => Array.from(module.providers.values()));
|
|
9
|
+
return wrappers
|
|
10
|
+
.filter(item => item.instance && item.metatype)
|
|
11
|
+
.filter(item => isController(item.metatype, transport))
|
|
12
|
+
.map(item => item.instance)
|
|
13
|
+
.map(instance => ({
|
|
14
|
+
instance: instance,
|
|
15
|
+
handlers: getControllerHandlers(instance),
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
Dependency(),
|
|
21
|
+
__metadata("design:type", ModulesContainer)
|
|
22
|
+
], ControllerExplorerService.prototype, "container", void 0);
|
|
23
|
+
//# sourceMappingURL=controller-explorer.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-explorer.service.js","sourceRoot":"","sources":["../src/controller-explorer.service.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,qBAAqB,EACrB,YAAY,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAO1D,MAAM,OAAO,yBAAyB;IAElB,SAAS,CAAmB;IAExC,cAAc,CAAC,SAAiB;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAElF,OAAO,QAAQ;aAEb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;aAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAiB,EAAE,SAAS,CAAC,CAAC;aAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC1B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjB,QAAQ,EAAE,QAAkB;YAC5B,QAAQ,EAAE,qBAAqB,CAAC,QAAkB,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;CACD;AAhBmB;IADlB,UAAU,EAAE;8BACiB,gBAAgB;4DAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext } from '@hg-ts/controllers';
|
|
2
|
+
import { OperatorFunction } from 'rxjs';
|
|
3
|
+
export declare class ControllerCaller {
|
|
4
|
+
private readonly executionContextProvider;
|
|
5
|
+
call(): OperatorFunction<unknown, unknown>;
|
|
6
|
+
protected get context(): ExecutionContext;
|
|
7
|
+
private callController;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=controller.caller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.caller.d.ts","sourceRoot":"","sources":["../src/controller.caller.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAGhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAMN,gBAAgB,EAChB,MAAM,MAAM,CAAC;AAGd,qBAAa,gBAAgB;IAE5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA2B;IAE7D,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;IAIjD,SAAS,KAAK,OAAO,IAAI,gBAAgB,CAExC;IAED,OAAO,CAAC,cAAc;CA+BtB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ExecutionContextProvider, NOT_DECORATED_ARGUMENT, } from '@hg-ts/controllers';
|
|
3
|
+
import { Dependency } from '@hg-ts/ioc';
|
|
4
|
+
import { first, map, mergeMap, Observable, of, } from 'rxjs';
|
|
5
|
+
import { mapToObservable } from './map-to-observable';
|
|
6
|
+
export class ControllerCaller {
|
|
7
|
+
executionContextProvider;
|
|
8
|
+
call() {
|
|
9
|
+
return source => source.pipe(this.callController());
|
|
10
|
+
}
|
|
11
|
+
get context() {
|
|
12
|
+
return this.executionContextProvider.getOrFail();
|
|
13
|
+
}
|
|
14
|
+
callController() {
|
|
15
|
+
return source => source.pipe(map(() => this.context.args), map(args => args.map(arg => {
|
|
16
|
+
if (arg === NOT_DECORATED_ARGUMENT) {
|
|
17
|
+
return arg;
|
|
18
|
+
}
|
|
19
|
+
if ('value' in arg) {
|
|
20
|
+
return arg.value;
|
|
21
|
+
}
|
|
22
|
+
return arg.factory(this.context);
|
|
23
|
+
})), mergeMap(args => {
|
|
24
|
+
const context = this.executionContextProvider.getOrFail();
|
|
25
|
+
const { handler } = context;
|
|
26
|
+
if (!handler) {
|
|
27
|
+
return of(null);
|
|
28
|
+
}
|
|
29
|
+
const response = handler(...args);
|
|
30
|
+
if (response instanceof Observable && !context['isSubscription']) {
|
|
31
|
+
return response.pipe(first());
|
|
32
|
+
}
|
|
33
|
+
return mapToObservable(response);
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
__decorate([
|
|
38
|
+
Dependency(),
|
|
39
|
+
__metadata("design:type", ExecutionContextProvider)
|
|
40
|
+
], ControllerCaller.prototype, "executionContextProvider", void 0);
|
|
41
|
+
//# sourceMappingURL=controller.caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.caller.js","sourceRoot":"","sources":["../src/controller.caller.ts"],"names":[],"mappings":";AAAA,OAAO,EAEN,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,KAAK,EACL,GAAG,EACH,QAAQ,EACR,UAAU,EACV,EAAE,GAEF,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,gBAAgB;IAEX,wBAAwB,CAA2B;IAE7D,IAAI;QACV,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAc,OAAO;QACpB,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;IAClD,CAAC;IAEO,cAAc;QACrB,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,GAAG,KAAK,sBAAsB,EAAE;gBACnC,OAAO,GAAG,CAAC;aACX;YACD,IAAI,OAAO,IAAI,GAAG,EAAE;gBACnB,OAAO,GAAG,CAAC,KAAK,CAAC;aACjB;YAED,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,EACH,QAAQ,CAAC,IAAI,CAAC,EAAE;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;YAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAE5B,IAAI,CAAC,OAAO,EAAE;gBACb,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;aAChB;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAElC,IAAI,QAAQ,YAAY,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBACjE,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aAC9B;YAED,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,CACF,CAAC;IACH,CAAC;CACD;AAzCiB;IADhB,UAAU,EAAE;8BAC8B,wBAAwB;kEAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ModulesContainer } from '@hg-ts/ioc';
|
|
2
|
+
export type ControllerInfo = {
|
|
3
|
+
instance: object;
|
|
4
|
+
handlers: Set<string | symbol>;
|
|
5
|
+
};
|
|
6
|
+
export declare class ControllerExplorerService {
|
|
7
|
+
protected readonly container: ModulesContainer;
|
|
8
|
+
getControllers(transport: symbol): ControllerInfo[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=controller-explorer.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-explorer.service.d.ts","sourceRoot":"","sources":["../../src/controllers/controller-explorer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAO1D,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAC/B,CAAA;AAED,qBAAa,yBAAyB;IAErC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAExC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;CAc1D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Dependency, ModulesContainer } from '@hg-ts/ioc';
|
|
3
|
+
import { getControllerHandlers, isController, } from '../decorators';
|
|
4
|
+
export class ControllerExplorerService {
|
|
5
|
+
container;
|
|
6
|
+
getControllers(transport) {
|
|
7
|
+
const modules = Array.from(this.container.values());
|
|
8
|
+
const wrappers = modules.flatMap(module => Array.from(module.providers.values()));
|
|
9
|
+
return wrappers
|
|
10
|
+
.filter(item => item.instance && item.metatype)
|
|
11
|
+
.filter(item => isController(item.metatype, transport))
|
|
12
|
+
.map(item => item.instance)
|
|
13
|
+
.map(instance => ({
|
|
14
|
+
instance: instance,
|
|
15
|
+
handlers: getControllerHandlers(instance),
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
Dependency(),
|
|
21
|
+
__metadata("design:type", ModulesContainer)
|
|
22
|
+
], ControllerExplorerService.prototype, "container", void 0);
|
|
23
|
+
//# sourceMappingURL=controller-explorer.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-explorer.service.js","sourceRoot":"","sources":["../../src/controllers/controller-explorer.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EACN,qBAAqB,EACrB,YAAY,GACZ,MAAM,eAAe,CAAC;AAOvB,MAAM,OAAO,yBAAyB;IAElB,SAAS,CAAmB;IAExC,cAAc,CAAC,SAAiB;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAElF,OAAO,QAAQ;aAEb,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;aAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAiB,EAAE,SAAS,CAAC,CAAC;aAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC1B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjB,QAAQ,EAAE,QAAkB;YAC5B,QAAQ,EAAE,qBAAqB,CAAC,QAAkB,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;CACD;AAhBmB;IADlB,UAAU,EAAE;8BACiB,gBAAgB;4DAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext } from '../execution-context';
|
|
2
|
+
import { OperatorFunction } from 'rxjs';
|
|
3
|
+
export declare class ControllerCaller {
|
|
4
|
+
private readonly executionContextProvider;
|
|
5
|
+
call(): OperatorFunction<unknown, unknown>;
|
|
6
|
+
protected get context(): ExecutionContext;
|
|
7
|
+
private callController;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=controller.caller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.caller.d.ts","sourceRoot":"","sources":["../../src/controllers/controller.caller.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAGhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAMN,gBAAgB,EAChB,MAAM,MAAM,CAAC;AAGd,qBAAa,gBAAgB;IAE5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA2B;IAE7D,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;IAIjD,SAAS,KAAK,OAAO,IAAI,gBAAgB,CAExC;IAED,OAAO,CAAC,cAAc;CA+BtB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ExecutionContextProvider, NOT_DECORATED_ARGUMENT, } from '../execution-context';
|
|
3
|
+
import { Dependency } from '@hg-ts/ioc';
|
|
4
|
+
import { first, map, mergeMap, Observable, of, } from 'rxjs';
|
|
5
|
+
import { utils } from '../utils';
|
|
6
|
+
export class ControllerCaller {
|
|
7
|
+
executionContextProvider;
|
|
8
|
+
call() {
|
|
9
|
+
return source => source.pipe(this.callController());
|
|
10
|
+
}
|
|
11
|
+
get context() {
|
|
12
|
+
return this.executionContextProvider.getOrFail();
|
|
13
|
+
}
|
|
14
|
+
callController() {
|
|
15
|
+
return source => source.pipe(map(() => this.context.args), map(args => args.map(arg => {
|
|
16
|
+
if (arg === NOT_DECORATED_ARGUMENT) {
|
|
17
|
+
return arg;
|
|
18
|
+
}
|
|
19
|
+
if ('value' in arg) {
|
|
20
|
+
return arg.value;
|
|
21
|
+
}
|
|
22
|
+
return arg.factory(this.context);
|
|
23
|
+
})), mergeMap(args => {
|
|
24
|
+
const context = this.executionContextProvider.getOrFail();
|
|
25
|
+
const { handler } = context;
|
|
26
|
+
if (!handler) {
|
|
27
|
+
return of(null);
|
|
28
|
+
}
|
|
29
|
+
const response = handler(...args);
|
|
30
|
+
if (response instanceof Observable && !context['isSubscription']) {
|
|
31
|
+
return response.pipe(first());
|
|
32
|
+
}
|
|
33
|
+
return utils(response);
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
__decorate([
|
|
38
|
+
Dependency(),
|
|
39
|
+
__metadata("design:type", ExecutionContextProvider)
|
|
40
|
+
], ControllerCaller.prototype, "executionContextProvider", void 0);
|
|
41
|
+
//# sourceMappingURL=controller.caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.caller.js","sourceRoot":"","sources":["../../src/controllers/controller.caller.ts"],"names":[],"mappings":";AAAA,OAAO,EAEN,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,KAAK,EACL,GAAG,EACH,QAAQ,EACR,UAAU,EACV,EAAE,GAEF,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,OAAO,gBAAgB;IAEX,wBAAwB,CAA2B;IAE7D,IAAI;QACV,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAc,OAAO;QACpB,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;IAClD,CAAC;IAEO,cAAc;QACrB,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,GAAG,KAAK,sBAAsB,EAAE;gBACnC,OAAO,GAAG,CAAC;aACX;YACD,IAAI,OAAO,IAAI,GAAG,EAAE;gBACnB,OAAO,GAAG,CAAC,KAAK,CAAC;aACjB;YAED,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,EACH,QAAQ,CAAC,IAAI,CAAC,EAAE;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;YAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAE5B,IAAI,CAAC,OAAO,EAAE;gBACb,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;aAChB;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAElC,IAAI,QAAQ,YAAY,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBACjE,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aAC9B;YAED,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC,CAAC,CACF,CAAC;IACH,CAAC;CACD;AAzCiB;IADhB,UAAU,EAAE;8BAC8B,wBAAwB;kEAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/context.decorator.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,0BAA+D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.decorator.js","sourceRoot":"","sources":["../../src/decorators/context.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,oBAAoB,CAAC,CAAC,OAAyB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="@hg-ts/types" />
|
|
2
|
+
export declare function isController(value: Class, transport: symbol): boolean;
|
|
3
|
+
export declare function Controller(transport: symbol): ClassDecorator;
|
|
4
|
+
export declare const addControllerHandler: (target: object, propertyKey: string | symbol) => void;
|
|
5
|
+
export declare function getControllerHandlers(instance: object): Set<string | symbol>;
|
|
6
|
+
export declare function setControllerHandlers(instance: object, value: Set<string | symbol>): void;
|
|
7
|
+
//# sourceMappingURL=controller.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/controller.decorator.ts"],"names":[],"mappings":";AAOA,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAG5D;AAED,eAAO,MAAM,oBAAoB,WAAY,MAAM,eAAe,MAAM,GAAG,MAAM,KAAG,IAMnF,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAI5E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAIzF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const CONTROLLER_KEY = Symbol('CONTROLLER_KEY');
|
|
2
|
+
const CONTROLLER_HANDLERS_KEY = Symbol('CONTROLLER_HANDLERS_KEY');
|
|
3
|
+
export function isController(value, transport) {
|
|
4
|
+
const metadata = Reflect.getMetadata(CONTROLLER_KEY, value) ?? null;
|
|
5
|
+
if (!metadata) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
return metadata.transport === transport;
|
|
9
|
+
}
|
|
10
|
+
export function Controller(transport) {
|
|
11
|
+
const metadata = { transport };
|
|
12
|
+
return Reflect.metadata(CONTROLLER_KEY, metadata);
|
|
13
|
+
}
|
|
14
|
+
export const addControllerHandler = (target, propertyKey) => {
|
|
15
|
+
const methods = getControllerHandlers(target);
|
|
16
|
+
methods.add(propertyKey);
|
|
17
|
+
setControllerHandlers(target, methods);
|
|
18
|
+
};
|
|
19
|
+
export function getControllerHandlers(instance) {
|
|
20
|
+
const proto = Object.getPrototypeOf(instance);
|
|
21
|
+
return Reflect.getMetadata(CONTROLLER_HANDLERS_KEY, proto) ?? new Set();
|
|
22
|
+
}
|
|
23
|
+
export function setControllerHandlers(instance, value) {
|
|
24
|
+
const proto = Object.getPrototypeOf(instance);
|
|
25
|
+
Reflect.defineMetadata(CONTROLLER_HANDLERS_KEY, value, proto);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=controller.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../src/decorators/controller.decorator.ts"],"names":[],"mappings":"AAIA,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAChD,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAElE,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,SAAiB;IAC3D,MAAM,QAAQ,GAAiC,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;IAElG,IAAI,CAAC,QAAQ,EAAE;QACd,OAAO,KAAK,CAAC;KACb;IAED,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAuB,EAAE,SAAS,EAAE,CAAC;IACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,WAA4B,EAAQ,EAAE;IAC1F,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,KAA2B;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO,CAAC,cAAc,CAAC,uBAAuB,EAAE,KAAK,EAAE,KAAM,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="@hg-ts/types" />
|
|
2
|
+
import type { ExecutionContext } from '../execution-context';
|
|
3
|
+
type ParamFactoryWithArgs<Context extends ExecutionContext, ArgType = unknown, Args extends unknown[] = unknown[]> = (context: Context, ...args: Args) => ArgType;
|
|
4
|
+
type ParamDecoratorWithArgs<Args extends unknown[] = unknown[]> = (...args: Args) => ParameterDecorator;
|
|
5
|
+
type ParamFactory<Context extends ExecutionContext> = (context: Context) => unknown;
|
|
6
|
+
export type ArgumentMetadata<Context extends ExecutionContext> = {
|
|
7
|
+
factory: ParamFactory<Context>;
|
|
8
|
+
metaType: Class | symbol | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type ArgumentMap<Context extends ExecutionContext> = Map<number, ArgumentMetadata<Context>>;
|
|
11
|
+
export declare function createParamDecorator<Context extends ExecutionContext, ArgType = unknown, Args extends unknown[] = unknown[]>(paramFactory: ParamFactoryWithArgs<Context, ArgType, Args>): ParamDecoratorWithArgs<Args>;
|
|
12
|
+
export declare function getHandlerArguments<Context extends ExecutionContext>(instance: object, propertyKey: string | symbol): ArgumentMap<Context>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=create-param-decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-param-decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/create-param-decorator.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,KAAK,oBAAoB,CAAC,OAAO,SAAS,gBAAgB,EAAE,OAAO,GAAG,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,CACpH,OAAO,EAAE,OAAO,EAChB,GAAG,IAAI,EAAE,IAAI,KACT,OAAO,CAAC;AAEb,KAAK,sBAAsB,CAAC,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAA;AAEvG,KAAK,YAAY,CAAC,OAAO,SAAS,gBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAEpF,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,gBAAgB,IAAI;IAChE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAmBnG,wBAAgB,oBAAoB,CACnC,OAAO,SAAS,gBAAgB,EAChC,OAAO,GAAG,OAAO,EACjB,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAElC,YAAY,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACxD,sBAAsB,CAAC,IAAI,CAAC,CAM9B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,gBAAgB,EACnE,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAAG,MAAM,GAC1B,WAAW,CAAC,OAAO,CAAC,CAItB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const PARAMS_METADATA_KEY = Symbol('PARAMS_METADATA_KEY');
|
|
2
|
+
function paramDecoratorFactory(paramFactory) {
|
|
3
|
+
return (target, propertyKey, parameterIndex) => {
|
|
4
|
+
const argumentsMap = getParamMetadata(target, propertyKey);
|
|
5
|
+
const argsMeta = Reflect.getMetadata('design:paramtypes', target, propertyKey);
|
|
6
|
+
const metaType = argsMeta[parameterIndex];
|
|
7
|
+
const metadata = { metaType, factory: paramFactory };
|
|
8
|
+
argumentsMap.set(parameterIndex, metadata);
|
|
9
|
+
Reflect.defineMetadata(PARAMS_METADATA_KEY, argumentsMap, target, propertyKey);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function createParamDecorator(paramFactory) {
|
|
13
|
+
return (...args) => {
|
|
14
|
+
const factory = (context) => paramFactory(context, ...args);
|
|
15
|
+
return paramDecoratorFactory(factory);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function getHandlerArguments(instance, propertyKey) {
|
|
19
|
+
const proto = Object.getPrototypeOf(instance);
|
|
20
|
+
return getParamMetadata(proto, propertyKey);
|
|
21
|
+
}
|
|
22
|
+
function getParamMetadata(target, propertyKey) {
|
|
23
|
+
return Reflect.getMetadata(PARAMS_METADATA_KEY, target, propertyKey) ?? new Map();
|
|
24
|
+
}
|
|
25
|
+
createParamDecorator((context, first, _second) => context['method'] + first);
|
|
26
|
+
//# sourceMappingURL=create-param-decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-param-decorator.js","sourceRoot":"","sources":["../../src/decorators/create-param-decorator.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAkB1D,SAAS,qBAAqB,CAC7B,YAAmC;IAEnC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAQ,EAAE;QACpD,MAAM,YAAY,GAAG,gBAAgB,CAAU,MAAM,EAAE,WAAY,CAAC,CAAC;QAErE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAY,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAA8B,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAEhF,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE3C,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,WAAY,CAAC,CAAC;IACjF,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAKnC,YAA0D;IAE1D,OAAO,CAAC,GAAG,IAAU,EAAsB,EAAE;QAC5C,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9E,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,QAAgB,EAChB,WAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC;IAE/C,OAAO,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CACxB,MAAc,EACd,WAA4B;IAE5B,OAAO,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AACnF,CAAC;AAED,oBAAoB,CAAC,CAAC,OAAO,EAAE,KAAa,EAAE,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAW,GAAG,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-data.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/middleware-data.decorator.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,0BAAmF,CAAC"}
|