@tsed/platform-router 7.0.0-beta.14
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/jest.config.js +14 -0
- package/lib/cjs/domain/PlatformHandlerMetadata.js +106 -0
- package/lib/cjs/domain/PlatformHandlerMetadata.js.map +1 -0
- package/lib/cjs/domain/PlatformHandlerType.js +14 -0
- package/lib/cjs/domain/PlatformHandlerType.js.map +1 -0
- package/lib/cjs/domain/PlatformLayer.js +40 -0
- package/lib/cjs/domain/PlatformLayer.js.map +1 -0
- package/lib/cjs/domain/PlatformRouter.js +113 -0
- package/lib/cjs/domain/PlatformRouter.js.map +1 -0
- package/lib/cjs/domain/PlatformRouters.js +131 -0
- package/lib/cjs/domain/PlatformRouters.js.map +1 -0
- package/lib/cjs/domain/SinglePathType.js +3 -0
- package/lib/cjs/domain/SinglePathType.js.map +1 -0
- package/lib/cjs/index.js +15 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/utils/formatMethod.js +9 -0
- package/lib/cjs/utils/formatMethod.js.map +1 -0
- package/lib/cjs/utils/useContextHandler.js +15 -0
- package/lib/cjs/utils/useContextHandler.js.map +1 -0
- package/lib/esm/domain/PlatformHandlerMetadata.js +102 -0
- package/lib/esm/domain/PlatformHandlerMetadata.js.map +1 -0
- package/lib/esm/domain/PlatformHandlerType.js +11 -0
- package/lib/esm/domain/PlatformHandlerType.js.map +1 -0
- package/lib/esm/domain/PlatformLayer.js +36 -0
- package/lib/esm/domain/PlatformLayer.js.map +1 -0
- package/lib/esm/domain/PlatformRouter.js +110 -0
- package/lib/esm/domain/PlatformRouter.js.map +1 -0
- package/lib/esm/domain/PlatformRouters.js +128 -0
- package/lib/esm/domain/PlatformRouters.js.map +1 -0
- package/lib/esm/domain/SinglePathType.js +2 -0
- package/lib/esm/domain/SinglePathType.js.map +1 -0
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/utils/formatMethod.js +5 -0
- package/lib/esm/utils/formatMethod.js.map +1 -0
- package/lib/esm/utils/useContextHandler.js +11 -0
- package/lib/esm/utils/useContextHandler.js.map +1 -0
- package/lib/types/domain/PlatformHandlerMetadata.d.ts +39 -0
- package/lib/types/domain/PlatformHandlerType.d.ts +9 -0
- package/lib/types/domain/PlatformLayer.d.ts +37 -0
- package/lib/types/domain/PlatformRouter.d.ts +28 -0
- package/lib/types/domain/PlatformRouters.d.ts +14 -0
- package/lib/types/domain/SinglePathType.d.ts +1 -0
- package/lib/types/index.d.ts +11 -0
- package/lib/types/utils/formatMethod.d.ts +1 -0
- package/lib/types/utils/useContextHandler.d.ts +13 -0
- package/package.json +72 -0
- package/readme.md +176 -0
- package/tsconfig.compile.esm.json +12 -0
package/jest.config.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// For a detailed explanation regarding each configuration property, visit:
|
|
2
|
+
// https://jestjs.io/docs/en/configuration.html
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
...require("@tsed/jest-config")(__dirname, "platform-router"),
|
|
6
|
+
coverageThreshold: {
|
|
7
|
+
global: {
|
|
8
|
+
statements: 100,
|
|
9
|
+
branches: 78.26,
|
|
10
|
+
functions: 100,
|
|
11
|
+
lines: 100
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlatformHandlerMetadata = void 0;
|
|
4
|
+
const core_1 = require("@tsed/core");
|
|
5
|
+
const di_1 = require("@tsed/di");
|
|
6
|
+
const platform_params_1 = require("@tsed/platform-params");
|
|
7
|
+
const schema_1 = require("@tsed/schema");
|
|
8
|
+
const PlatformHandlerType_1 = require("./PlatformHandlerType");
|
|
9
|
+
class PlatformHandlerMetadata {
|
|
10
|
+
path;
|
|
11
|
+
provider;
|
|
12
|
+
propertyKey;
|
|
13
|
+
type = PlatformHandlerType_1.PlatformHandlerType.RAW_FN;
|
|
14
|
+
hasNextFunction = false;
|
|
15
|
+
opts = {};
|
|
16
|
+
#handler;
|
|
17
|
+
constructor(props) {
|
|
18
|
+
const { propertyKey, type, provider, handler, opts } = props;
|
|
19
|
+
this.provider = provider;
|
|
20
|
+
this.type = type || handler.type || PlatformHandlerType_1.PlatformHandlerType.RAW_FN;
|
|
21
|
+
this.opts = opts || {};
|
|
22
|
+
this.#handler = propertyKey ? this.target.prototype[propertyKey] : handler;
|
|
23
|
+
if (propertyKey) {
|
|
24
|
+
this.propertyKey = propertyKey;
|
|
25
|
+
this.hasNextFunction = this.hasParamType(platform_params_1.ParamTypes.NEXT_FN);
|
|
26
|
+
if (this.hasParamType(platform_params_1.ParamTypes.ERR)) {
|
|
27
|
+
this.type = PlatformHandlerType_1.PlatformHandlerType.ERR_MIDDLEWARE;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (this.#handler.length === 4) {
|
|
32
|
+
this.type = PlatformHandlerType_1.PlatformHandlerType.RAW_ERR_FN;
|
|
33
|
+
}
|
|
34
|
+
this.hasNextFunction = this.#handler.length >= 3;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
get target() {
|
|
38
|
+
return this.provider?.useClass || this.#handler;
|
|
39
|
+
}
|
|
40
|
+
get token() {
|
|
41
|
+
return this.provider?.token || this.#handler;
|
|
42
|
+
}
|
|
43
|
+
get handler() {
|
|
44
|
+
return this.#handler;
|
|
45
|
+
}
|
|
46
|
+
get scope() {
|
|
47
|
+
return this.provider?.scope || di_1.ProviderScope.SINGLETON;
|
|
48
|
+
}
|
|
49
|
+
get hasErrorParam() {
|
|
50
|
+
return this.type === PlatformHandlerType_1.PlatformHandlerType.ERR_MIDDLEWARE || this.type === PlatformHandlerType_1.PlatformHandlerType.RAW_ERR_FN;
|
|
51
|
+
}
|
|
52
|
+
get store() {
|
|
53
|
+
return schema_1.JsonEntityStore.fromMethod(this.provider.useClass, this.propertyKey);
|
|
54
|
+
}
|
|
55
|
+
static from(injector, input, opts = {}) {
|
|
56
|
+
if (input instanceof PlatformHandlerMetadata) {
|
|
57
|
+
return input;
|
|
58
|
+
}
|
|
59
|
+
if (input instanceof schema_1.EndpointMetadata) {
|
|
60
|
+
const provider = injector.getProvider(opts.token);
|
|
61
|
+
return new PlatformHandlerMetadata({
|
|
62
|
+
provider,
|
|
63
|
+
type: PlatformHandlerType_1.PlatformHandlerType.ENDPOINT,
|
|
64
|
+
propertyKey: input.propertyKey,
|
|
65
|
+
opts
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const provider = injector.getProvider(input);
|
|
69
|
+
if (provider) {
|
|
70
|
+
return new PlatformHandlerMetadata({
|
|
71
|
+
provider,
|
|
72
|
+
type: PlatformHandlerType_1.PlatformHandlerType.MIDDLEWARE,
|
|
73
|
+
propertyKey: "use",
|
|
74
|
+
opts
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return new PlatformHandlerMetadata({
|
|
78
|
+
handler: input,
|
|
79
|
+
type: input.type,
|
|
80
|
+
opts
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
getParams() {
|
|
84
|
+
return schema_1.JsonParameterStore.getParams(this.target, this.propertyKey) || [];
|
|
85
|
+
}
|
|
86
|
+
hasParamType(paramType) {
|
|
87
|
+
return this.getParams().findIndex((p) => p.paramType === paramType) > -1;
|
|
88
|
+
}
|
|
89
|
+
isFinal() {
|
|
90
|
+
return this.opts?.isFinal || false;
|
|
91
|
+
}
|
|
92
|
+
isRawMiddleware() {
|
|
93
|
+
return [PlatformHandlerType_1.PlatformHandlerType.RAW_ERR_FN, PlatformHandlerType_1.PlatformHandlerType.RAW_FN].includes(this.type);
|
|
94
|
+
}
|
|
95
|
+
isEndpoint() {
|
|
96
|
+
return this.type === PlatformHandlerType_1.PlatformHandlerType.ENDPOINT;
|
|
97
|
+
}
|
|
98
|
+
isCtxFn() {
|
|
99
|
+
return this.type === PlatformHandlerType_1.PlatformHandlerType.CTX_FN;
|
|
100
|
+
}
|
|
101
|
+
toString() {
|
|
102
|
+
return [(0, core_1.nameOf)(this.target), this.propertyKey].filter(Boolean).join(".");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.PlatformHandlerMetadata = PlatformHandlerMetadata;
|
|
106
|
+
//# sourceMappingURL=PlatformHandlerMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformHandlerMetadata.js","sourceRoot":"","sources":["../../../src/domain/PlatformHandlerMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import {nameOf} from \"@tsed/core\";\nimport {InjectorService, Provider, ProviderScope, TokenProvider} from \"@tsed/di\";\nimport {ParamTypes} from \"@tsed/platform-params\";\nimport {EndpointMetadata, JsonEntityStore, JsonParameterStore} from \"@tsed/schema\";\nimport {PlatformHandlerType} from \"./PlatformHandlerType\";\nimport {SinglePathType} from \"./SinglePathType\";\n\nexport interface PlatformHandlerMetadataOpts extends Record<string, any> {\n token?: TokenProvider;\n isFinal?: boolean;\n}\n\nexport interface PlatformHandlerMetadataProps {\n provider?: Provider;\n handler?: any;\n opts?: PlatformHandlerMetadataOpts;\n propertyKey?: string | symbol;\n type?: PlatformHandlerType;\n}\n\nexport class PlatformHandlerMetadata {\n path: SinglePathType;\n\n readonly provider?: Provider;\n readonly propertyKey: string | symbol;\n readonly type: PlatformHandlerType = PlatformHandlerType.RAW_FN;\n readonly hasNextFunction: boolean = false;\n readonly opts: PlatformHandlerMetadataOpts = {};\n\n #handler: any;\n\n constructor(props: PlatformHandlerMetadataProps) {\n const {propertyKey, type, provider, handler, opts} = props;\n\n this.provider = provider;\n this.type = type || handler.type || PlatformHandlerType.RAW_FN;\n this.opts = opts || {};\n\n this.#handler = propertyKey ? this.target.prototype[propertyKey] : handler;\n\n if (propertyKey) {\n this.propertyKey = propertyKey;\n this.hasNextFunction = this.hasParamType(ParamTypes.NEXT_FN);\n\n if (this.hasParamType(ParamTypes.ERR)) {\n this.type = PlatformHandlerType.ERR_MIDDLEWARE;\n }\n } else {\n if (this.#handler.length === 4) {\n this.type = PlatformHandlerType.RAW_ERR_FN;\n }\n this.hasNextFunction = this.#handler.length >= 3;\n }\n }\n\n get target() {\n return this.provider?.useClass || this.#handler;\n }\n\n get token() {\n return this.provider?.token || this.#handler;\n }\n\n get handler() {\n return this.#handler;\n }\n\n get scope() {\n return this.provider?.scope || ProviderScope.SINGLETON;\n }\n\n get hasErrorParam() {\n return this.type === PlatformHandlerType.ERR_MIDDLEWARE || this.type === PlatformHandlerType.RAW_ERR_FN;\n }\n\n get store() {\n return JsonEntityStore.fromMethod(this.provider!.useClass, this.propertyKey!);\n }\n\n static from(injector: InjectorService, input: any, opts: PlatformHandlerMetadataOpts = {}): PlatformHandlerMetadata {\n if (input instanceof PlatformHandlerMetadata) {\n return input;\n }\n\n if (input instanceof EndpointMetadata) {\n const provider = injector.getProvider(opts.token)!;\n\n return new PlatformHandlerMetadata({\n provider,\n type: PlatformHandlerType.ENDPOINT,\n propertyKey: input.propertyKey,\n opts\n });\n }\n\n const provider = injector.getProvider(input);\n\n if (provider) {\n return new PlatformHandlerMetadata({\n provider,\n type: PlatformHandlerType.MIDDLEWARE,\n propertyKey: \"use\",\n opts\n });\n }\n\n return new PlatformHandlerMetadata({\n handler: input,\n type: input.type,\n opts\n });\n }\n\n public getParams() {\n return JsonParameterStore.getParams(this.target, this.propertyKey) || [];\n }\n\n public hasParamType(paramType: any): boolean {\n return this.getParams().findIndex((p) => p.paramType === paramType) > -1;\n }\n\n public isFinal() {\n return this.opts?.isFinal || false;\n }\n\n public isRawMiddleware() {\n return [PlatformHandlerType.RAW_ERR_FN, PlatformHandlerType.RAW_FN].includes(this.type);\n }\n\n public isEndpoint() {\n return this.type === PlatformHandlerType.ENDPOINT;\n }\n\n public isCtxFn() {\n return this.type === PlatformHandlerType.CTX_FN;\n }\n\n toString() {\n return [nameOf(this.target), this.propertyKey].filter(Boolean).join(\".\");\n }\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlatformHandlerType = void 0;
|
|
4
|
+
var PlatformHandlerType;
|
|
5
|
+
(function (PlatformHandlerType) {
|
|
6
|
+
PlatformHandlerType["CUSTOM"] = "custom";
|
|
7
|
+
PlatformHandlerType["ENDPOINT"] = "endpoint";
|
|
8
|
+
PlatformHandlerType["MIDDLEWARE"] = "middleware";
|
|
9
|
+
PlatformHandlerType["ERR_MIDDLEWARE"] = "err:middleware";
|
|
10
|
+
PlatformHandlerType["CTX_FN"] = "context";
|
|
11
|
+
PlatformHandlerType["RAW_FN"] = "raw:middleware";
|
|
12
|
+
PlatformHandlerType["RAW_ERR_FN"] = "raw:err:middleware";
|
|
13
|
+
})(PlatformHandlerType = exports.PlatformHandlerType || (exports.PlatformHandlerType = {}));
|
|
14
|
+
//# sourceMappingURL=PlatformHandlerType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformHandlerType.js","sourceRoot":"","sources":["../../../src/domain/PlatformHandlerType.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;IACrB,gDAAyB,CAAA;IACzB,wDAAiC,CAAA;IACjC,yCAAkB,CAAA;IAClB,gDAAyB,CAAA;IACzB,wDAAiC,CAAA;AACnC,CAAC,EARW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAQ9B","sourcesContent":["export enum PlatformHandlerType {\n CUSTOM = \"custom\",\n ENDPOINT = \"endpoint\",\n MIDDLEWARE = \"middleware\",\n ERR_MIDDLEWARE = \"err:middleware\",\n CTX_FN = \"context\",\n RAW_FN = \"raw:middleware\",\n RAW_ERR_FN = \"raw:err:middleware\"\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlatformLayer = void 0;
|
|
4
|
+
const core_1 = require("@tsed/core");
|
|
5
|
+
class PlatformLayer {
|
|
6
|
+
provider;
|
|
7
|
+
path = "";
|
|
8
|
+
method;
|
|
9
|
+
handlers = [];
|
|
10
|
+
router;
|
|
11
|
+
opts = {};
|
|
12
|
+
#args;
|
|
13
|
+
constructor(props = {}) {
|
|
14
|
+
Object.assign(this, props);
|
|
15
|
+
}
|
|
16
|
+
set(args) {
|
|
17
|
+
this.#args = args;
|
|
18
|
+
}
|
|
19
|
+
getArgs() {
|
|
20
|
+
return [this.path, ...this.#args].filter(Boolean);
|
|
21
|
+
}
|
|
22
|
+
isProvider() {
|
|
23
|
+
return !!this.provider;
|
|
24
|
+
}
|
|
25
|
+
inspect() {
|
|
26
|
+
return {
|
|
27
|
+
path: this.path,
|
|
28
|
+
method: this.method,
|
|
29
|
+
handlers: this.handlers.map((item) => String(item)),
|
|
30
|
+
opts: Object.entries(this.opts).reduce((obj, [key, value]) => {
|
|
31
|
+
return {
|
|
32
|
+
...obj,
|
|
33
|
+
[key]: (0, core_1.isPrimitive)(value) ? value : (0, core_1.nameOf)(value)
|
|
34
|
+
};
|
|
35
|
+
}, {})
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.PlatformLayer = PlatformLayer;
|
|
40
|
+
//# sourceMappingURL=PlatformLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformLayer.js","sourceRoot":"","sources":["../../../src/domain/PlatformLayer.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AAqBrD,MAAa,aAAa;IACjB,QAAQ,CAAW;IACnB,IAAI,GAAmB,EAAE,CAAC;IAC1B,MAAM,CAAS;IACf,QAAQ,GAA8B,EAAE,CAAC;IACzC,MAAM,CAAkB;IACxB,IAAI,GAAyB,EAAE,CAAC;IAEvC,KAAK,CAA2B;IAEhC,YAAY,QAAqC,EAAE;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,IAA8B;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,OAAO;QACL,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,UAAU;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC3D,OAAO;oBACL,GAAG,GAAG;oBACN,CAAC,GAAG,CAAC,EAAE,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,aAAM,EAAC,KAAK,CAAC;iBAClD,CAAC;YACJ,CAAC,EAAE,EAAE,CAAC;SACP,CAAC;IACJ,CAAC;CACF;AAvCD,sCAuCC","sourcesContent":["import {isPrimitive, nameOf, Type} from \"@tsed/core\";\nimport {Provider} from \"@tsed/di\";\nimport {PlatformParamsCallback} from \"@tsed/platform-params\";\nimport {PlatformHandlerMetadata} from \"./PlatformHandlerMetadata\";\nimport type {PlatformRouter} from \"./PlatformRouter\";\nimport {SinglePathType} from \"./SinglePathType\";\n\nexport interface PlatformLayerOptions extends Record<string, any> {\n token?: Type<any>;\n isFinal?: boolean;\n}\n\nexport interface PlatformLayerProps {\n provider: Provider;\n path: SinglePathType;\n method: string;\n handlers: any[];\n router: PlatformRouter;\n opts: PlatformLayerOptions;\n}\n\nexport class PlatformLayer {\n public provider: Provider;\n public path: SinglePathType = \"\";\n public method: string;\n public handlers: PlatformHandlerMetadata[] = [];\n public router?: PlatformRouter;\n public opts: PlatformLayerOptions = {};\n\n #args: PlatformParamsCallback[];\n\n constructor(props: Partial<PlatformLayerProps> = {}) {\n Object.assign(this, props);\n }\n\n set(args: PlatformParamsCallback[]) {\n this.#args = args;\n }\n\n getArgs() {\n return [this.path, ...this.#args].filter(Boolean);\n }\n\n isProvider() {\n return !!this.provider;\n }\n\n inspect() {\n return {\n path: this.path,\n method: this.method,\n handlers: this.handlers.map((item: any) => String(item)),\n opts: Object.entries(this.opts).reduce((obj, [key, value]) => {\n return {\n ...obj,\n [key]: isPrimitive(value) ? value : nameOf(value)\n };\n }, {})\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var PlatformRouter_1;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PlatformRouter = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const core_1 = require("@tsed/core");
|
|
7
|
+
const di_1 = require("@tsed/di");
|
|
8
|
+
const schema_1 = require("@tsed/schema");
|
|
9
|
+
const formatMethod_1 = require("../utils/formatMethod");
|
|
10
|
+
const PlatformHandlerMetadata_1 = require("./PlatformHandlerMetadata");
|
|
11
|
+
const PlatformLayer_1 = require("./PlatformLayer");
|
|
12
|
+
function printHandler(handler) {
|
|
13
|
+
return handler.toString().split("{")[0].trim();
|
|
14
|
+
}
|
|
15
|
+
let PlatformRouter = PlatformRouter_1 = class PlatformRouter {
|
|
16
|
+
injector;
|
|
17
|
+
#isBuilt = false;
|
|
18
|
+
layers = [];
|
|
19
|
+
provider;
|
|
20
|
+
constructor(injector) {
|
|
21
|
+
this.injector = injector;
|
|
22
|
+
}
|
|
23
|
+
use(...handlers) {
|
|
24
|
+
const layer = handlers.reduce((layer, item) => {
|
|
25
|
+
if ((0, core_1.isString)(item) || item instanceof RegExp) {
|
|
26
|
+
layer.path = item;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
if (item instanceof PlatformRouter_1) {
|
|
30
|
+
layer.router = item;
|
|
31
|
+
if (!this.provider && item.provider) {
|
|
32
|
+
layer.path = (0, schema_1.concatPath)(layer.path, item.provider.path);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
layer.path = layer.path || item.provider.path;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
item = PlatformHandlerMetadata_1.PlatformHandlerMetadata.from(this.injector, item);
|
|
40
|
+
}
|
|
41
|
+
layer.handlers.push(item);
|
|
42
|
+
}
|
|
43
|
+
return layer;
|
|
44
|
+
}, new PlatformLayer_1.PlatformLayer({ method: "use", provider: this.provider }));
|
|
45
|
+
this.layers.push(layer);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
addRoute(method, path, handlers, opts = {}) {
|
|
49
|
+
const layer = new PlatformLayer_1.PlatformLayer({
|
|
50
|
+
provider: this.provider,
|
|
51
|
+
method: (0, formatMethod_1.formatMethod)(method),
|
|
52
|
+
path,
|
|
53
|
+
handlers: handlers.map((input, index, handlers) => {
|
|
54
|
+
const isFinal = opts.isFinal ? index === handlers.length - 1 : false;
|
|
55
|
+
return PlatformHandlerMetadata_1.PlatformHandlerMetadata.from(this.injector, input, { ...opts, isFinal });
|
|
56
|
+
}),
|
|
57
|
+
opts
|
|
58
|
+
});
|
|
59
|
+
this.layers.push(layer);
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
all(path, ...handlers) {
|
|
63
|
+
return this.addRoute("all", path, handlers, { isFinal: true });
|
|
64
|
+
}
|
|
65
|
+
get(path, ...handlers) {
|
|
66
|
+
return this.addRoute("get", path, handlers, { isFinal: true });
|
|
67
|
+
}
|
|
68
|
+
post(path, ...handlers) {
|
|
69
|
+
return this.addRoute("post", path, handlers, { isFinal: true });
|
|
70
|
+
}
|
|
71
|
+
put(path, ...handlers) {
|
|
72
|
+
return this.addRoute("put", path, handlers, { isFinal: true });
|
|
73
|
+
}
|
|
74
|
+
delete(path, ...handlers) {
|
|
75
|
+
return this.addRoute("delete", path, handlers, { isFinal: true });
|
|
76
|
+
}
|
|
77
|
+
patch(path, ...handlers) {
|
|
78
|
+
return this.addRoute("patch", path, handlers, { isFinal: true });
|
|
79
|
+
}
|
|
80
|
+
head(path, ...handlers) {
|
|
81
|
+
return this.addRoute("head", path, handlers, { isFinal: true });
|
|
82
|
+
}
|
|
83
|
+
options(path, ...handlers) {
|
|
84
|
+
return this.addRoute("options", path, handlers, { isFinal: true });
|
|
85
|
+
}
|
|
86
|
+
statics(path, options) {
|
|
87
|
+
return this.addRoute("statics", path, [], options);
|
|
88
|
+
}
|
|
89
|
+
inspect() {
|
|
90
|
+
return this.layers.map((layer) => {
|
|
91
|
+
const obj = layer.inspect();
|
|
92
|
+
return {
|
|
93
|
+
...obj,
|
|
94
|
+
handlers: obj.handlers.map(printHandler),
|
|
95
|
+
path: (0, schema_1.concatPath)(this.provider?.path, obj.path)
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
isBuilt() {
|
|
100
|
+
if (this.#isBuilt) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
this.#isBuilt = true;
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
PlatformRouter = PlatformRouter_1 = tslib_1.__decorate([
|
|
108
|
+
(0, di_1.Injectable)(),
|
|
109
|
+
(0, di_1.Scope)(di_1.ProviderScope.INSTANCE),
|
|
110
|
+
tslib_1.__metadata("design:paramtypes", [di_1.InjectorService])
|
|
111
|
+
], PlatformRouter);
|
|
112
|
+
exports.PlatformRouter = PlatformRouter;
|
|
113
|
+
//# sourceMappingURL=PlatformRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformRouter.js","sourceRoot":"","sources":["../../../src/domain/PlatformRouter.ts"],"names":[],"mappings":"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","sourcesContent":["import {isString} from \"@tsed/core\";\nimport {Injectable, InjectorService, Provider, ProviderScope, Scope} from \"@tsed/di\";\nimport {concatPath} from \"@tsed/schema\";\nimport {formatMethod} from \"../utils/formatMethod\";\nimport {PlatformHandlerMetadata} from \"./PlatformHandlerMetadata\";\nimport {PlatformLayer, PlatformLayerOptions} from \"./PlatformLayer\";\nimport {SinglePathType} from \"./SinglePathType\";\n\nfunction printHandler(handler: any) {\n return handler.toString().split(\"{\")[0].trim();\n}\n\n@Injectable()\n@Scope(ProviderScope.INSTANCE)\nexport class PlatformRouter {\n #isBuilt = false;\n\n readonly layers: PlatformLayer[] = [];\n\n provider: Provider;\n\n constructor(protected readonly injector: InjectorService) {}\n\n use(...handlers: any[]) {\n const layer = handlers.reduce((layer: PlatformLayer, item) => {\n if (isString(item) || item instanceof RegExp) {\n layer.path = item;\n } else {\n if (item instanceof PlatformRouter) {\n layer.router = item;\n\n if (!this.provider && item.provider) {\n layer.path = concatPath(layer.path, item.provider.path);\n } else {\n layer.path = layer.path || item.provider.path;\n }\n } else {\n item = PlatformHandlerMetadata.from(this.injector, item);\n }\n\n layer.handlers.push(item);\n }\n\n return layer;\n }, new PlatformLayer({method: \"use\", provider: this.provider}));\n\n this.layers.push(layer);\n\n return this;\n }\n\n addRoute(method: string, path: SinglePathType, handlers: any[], opts: PlatformLayerOptions = {}) {\n const layer = new PlatformLayer({\n provider: this.provider,\n method: formatMethod(method),\n path,\n handlers: handlers.map((input, index, handlers) => {\n const isFinal = opts.isFinal ? index === handlers.length - 1 : false;\n\n return PlatformHandlerMetadata.from(this.injector, input, {...opts, isFinal});\n }),\n opts\n });\n\n this.layers.push(layer);\n\n return this;\n }\n\n all(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"all\", path, handlers, {isFinal: true});\n }\n\n get(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"get\", path, handlers, {isFinal: true});\n }\n\n post(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"post\", path, handlers, {isFinal: true});\n }\n\n put(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"put\", path, handlers, {isFinal: true});\n }\n\n delete(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"delete\", path, handlers, {isFinal: true});\n }\n\n patch(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"patch\", path, handlers, {isFinal: true});\n }\n\n head(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"head\", path, handlers, {isFinal: true});\n }\n\n options(path: SinglePathType, ...handlers: any[]) {\n return this.addRoute(\"options\", path, handlers, {isFinal: true});\n }\n\n statics(path: string, options: any) {\n return this.addRoute(\"statics\", path, [], options);\n }\n\n inspect() {\n return this.layers.map((layer) => {\n const obj = layer.inspect();\n\n return {\n ...obj,\n handlers: obj.handlers.map(printHandler),\n path: concatPath(this.provider?.path, obj.path)\n };\n });\n }\n\n isBuilt() {\n if (this.#isBuilt) {\n return true;\n }\n\n this.#isBuilt = true;\n\n return false;\n }\n}\n"]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlatformRouters = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@tsed/core");
|
|
6
|
+
const di_1 = require("@tsed/di");
|
|
7
|
+
const platform_params_1 = require("@tsed/platform-params");
|
|
8
|
+
const schema_1 = require("@tsed/schema");
|
|
9
|
+
const useContextHandler_1 = require("../utils/useContextHandler");
|
|
10
|
+
const PlatformLayer_1 = require("./PlatformLayer");
|
|
11
|
+
const PlatformRouter_1 = require("./PlatformRouter");
|
|
12
|
+
let AUTO_INC = 0;
|
|
13
|
+
function getInjectableRouter(injector, provider) {
|
|
14
|
+
return injector.get(provider.tokenRouter);
|
|
15
|
+
}
|
|
16
|
+
function createTokenRouter(provider) {
|
|
17
|
+
return (provider.tokenRouter = provider.tokenRouter || `${provider.name}_ROUTER_${AUTO_INC++}`);
|
|
18
|
+
}
|
|
19
|
+
function createInjectableRouter(injector, provider) {
|
|
20
|
+
const tokenRouter = createTokenRouter(provider);
|
|
21
|
+
if (injector.has(tokenRouter)) {
|
|
22
|
+
return getInjectableRouter(injector, provider);
|
|
23
|
+
}
|
|
24
|
+
const router = injector.invoke(PlatformRouter_1.PlatformRouter);
|
|
25
|
+
router.provider = provider;
|
|
26
|
+
return injector
|
|
27
|
+
.add(tokenRouter, {
|
|
28
|
+
useValue: router
|
|
29
|
+
})
|
|
30
|
+
.invoke(tokenRouter);
|
|
31
|
+
}
|
|
32
|
+
di_1.GlobalProviders.createRegistry(di_1.ProviderType.CONTROLLER, di_1.ControllerProvider, {
|
|
33
|
+
onInvoke(provider, locals, { injector }) {
|
|
34
|
+
const router = createInjectableRouter(injector, provider);
|
|
35
|
+
locals.set(PlatformRouter_1.PlatformRouter, router);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
let PlatformRouters = class PlatformRouters {
|
|
39
|
+
injector;
|
|
40
|
+
platformParams;
|
|
41
|
+
hooks = new core_1.Hooks();
|
|
42
|
+
constructor(injector, platformParams) {
|
|
43
|
+
this.injector = injector;
|
|
44
|
+
this.platformParams = platformParams;
|
|
45
|
+
}
|
|
46
|
+
prebuild() {
|
|
47
|
+
this.injector.getProviders(di_1.ProviderType.CONTROLLER).forEach((provider) => {
|
|
48
|
+
createInjectableRouter(this.injector, provider);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
from(token, parentMiddlewares = []) {
|
|
52
|
+
const { injector } = this;
|
|
53
|
+
const provider = injector.getProvider(token);
|
|
54
|
+
if (!provider) {
|
|
55
|
+
throw new Error("Token not found in the provider registry");
|
|
56
|
+
}
|
|
57
|
+
const router = createInjectableRouter(injector, provider);
|
|
58
|
+
if (router.isBuilt()) {
|
|
59
|
+
return router;
|
|
60
|
+
}
|
|
61
|
+
const useBefore = (0, core_1.getValue)(provider, "middlewares.useBefore", []);
|
|
62
|
+
const { children } = provider;
|
|
63
|
+
(0, schema_1.getOperationsRoutes)(provider.token).forEach((operationRoute) => {
|
|
64
|
+
const { endpoint } = operationRoute;
|
|
65
|
+
const { beforeMiddlewares, middlewares: mldwrs, afterMiddlewares } = endpoint;
|
|
66
|
+
const useBefore = (0, core_1.getValue)(provider, "middlewares.useBefore", []);
|
|
67
|
+
const use = (0, core_1.getValue)(provider, "middlewares.use", []);
|
|
68
|
+
const useAfter = (0, core_1.getValue)(provider, "middlewares.useAfter", []);
|
|
69
|
+
const handlers = this.hooks.alter("alterEndpointHandlers", [
|
|
70
|
+
...parentMiddlewares,
|
|
71
|
+
...useBefore,
|
|
72
|
+
...beforeMiddlewares,
|
|
73
|
+
...use,
|
|
74
|
+
...mldwrs,
|
|
75
|
+
operationRoute.endpoint,
|
|
76
|
+
...afterMiddlewares,
|
|
77
|
+
...useAfter
|
|
78
|
+
], [operationRoute], this);
|
|
79
|
+
router.addRoute(operationRoute.method, operationRoute.path || "", [
|
|
80
|
+
(0, useContextHandler_1.useContextHandler)(($ctx) => {
|
|
81
|
+
$ctx.set(schema_1.EndpointMetadata, operationRoute.endpoint);
|
|
82
|
+
}),
|
|
83
|
+
...handlers
|
|
84
|
+
], operationRoute);
|
|
85
|
+
});
|
|
86
|
+
const middlewares = [...parentMiddlewares, ...useBefore];
|
|
87
|
+
children.forEach((token) => {
|
|
88
|
+
const nested = this.from(token, middlewares);
|
|
89
|
+
router.use(nested);
|
|
90
|
+
});
|
|
91
|
+
return router;
|
|
92
|
+
}
|
|
93
|
+
getLayers(router) {
|
|
94
|
+
return router.layers
|
|
95
|
+
.flatMap((layer) => {
|
|
96
|
+
if (layer.router) {
|
|
97
|
+
return this.getLayers(layer.router).map((subLayer) => {
|
|
98
|
+
return new PlatformLayer_1.PlatformLayer({
|
|
99
|
+
...subLayer,
|
|
100
|
+
path: (0, schema_1.concatPath)(layer.path, subLayer.path)
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return new PlatformLayer_1.PlatformLayer(layer);
|
|
105
|
+
})
|
|
106
|
+
.map((layer) => {
|
|
107
|
+
const handlers = layer.handlers.map((handlerMetadata) => {
|
|
108
|
+
// set path on handler metadata to retrieve it later in $ctx
|
|
109
|
+
handlerMetadata.path = layer.path;
|
|
110
|
+
let handler;
|
|
111
|
+
if (handlerMetadata.isRawMiddleware()) {
|
|
112
|
+
handler = handlerMetadata.handler;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
handler = handlerMetadata.isCtxFn()
|
|
116
|
+
? (scope) => handlerMetadata.handler(scope.$ctx)
|
|
117
|
+
: this.platformParams.compileHandler(handlerMetadata);
|
|
118
|
+
}
|
|
119
|
+
return this.hooks.alter("alterHandler", handler, [handlerMetadata]);
|
|
120
|
+
});
|
|
121
|
+
layer.set(handlers);
|
|
122
|
+
return layer;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
PlatformRouters = tslib_1.__decorate([
|
|
127
|
+
(0, di_1.Injectable)(),
|
|
128
|
+
tslib_1.__metadata("design:paramtypes", [di_1.InjectorService, platform_params_1.PlatformParams])
|
|
129
|
+
], PlatformRouters);
|
|
130
|
+
exports.PlatformRouters = PlatformRouters;
|
|
131
|
+
//# sourceMappingURL=PlatformRouters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlatformRouters.js","sourceRoot":"","sources":["../../../src/domain/PlatformRouters.ts"],"names":[],"mappings":"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","sourcesContent":["import {getValue, Hooks, Type} from \"@tsed/core\";\nimport {ControllerProvider, GlobalProviders, Injectable, InjectorService, Provider, ProviderType, TokenProvider} from \"@tsed/di\";\nimport {PlatformParams, PlatformParamsScope} from \"@tsed/platform-params\";\nimport {concatPath, EndpointMetadata, getOperationsRoutes} from \"@tsed/schema\";\nimport {useContextHandler} from \"../utils/useContextHandler\";\nimport {PlatformLayer} from \"./PlatformLayer\";\nimport {PlatformRouter} from \"./PlatformRouter\";\n\nlet AUTO_INC = 0;\n\nfunction getInjectableRouter(injector: InjectorService, provider: Provider): PlatformRouter {\n return injector.get(provider.tokenRouter)!;\n}\n\nfunction createTokenRouter(provider: ControllerProvider) {\n return (provider.tokenRouter = provider.tokenRouter || `${provider.name}_ROUTER_${AUTO_INC++}`);\n}\n\nfunction createInjectableRouter(injector: InjectorService, provider: ControllerProvider): PlatformRouter {\n const tokenRouter = createTokenRouter(provider);\n\n if (injector.has(tokenRouter)) {\n return getInjectableRouter(injector, provider);\n }\n\n const router = injector.invoke<PlatformRouter>(PlatformRouter);\n router.provider = provider;\n\n return injector\n .add(tokenRouter, {\n useValue: router\n })\n .invoke<PlatformRouter>(tokenRouter);\n}\n\nGlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider, {\n onInvoke(provider: ControllerProvider, locals: any, {injector}) {\n const router = createInjectableRouter(injector, provider);\n locals.set(PlatformRouter, router);\n }\n});\n\n@Injectable()\nexport class PlatformRouters {\n readonly hooks = new Hooks();\n\n constructor(protected readonly injector: InjectorService, protected readonly platformParams: PlatformParams) {}\n\n prebuild() {\n this.injector.getProviders(ProviderType.CONTROLLER).forEach((provider: ControllerProvider) => {\n createInjectableRouter(this.injector, provider);\n });\n }\n\n from(token: TokenProvider, parentMiddlewares: any[] = []) {\n const {injector} = this;\n const provider = injector.getProvider<ControllerProvider>(token)!;\n\n if (!provider) {\n throw new Error(\"Token not found in the provider registry\");\n }\n\n const router = createInjectableRouter(injector, provider);\n\n if (router.isBuilt()) {\n return router;\n }\n\n const useBefore = getValue(provider, \"middlewares.useBefore\", []);\n\n const {children} = provider;\n\n getOperationsRoutes(provider.token).forEach((operationRoute) => {\n const {endpoint} = operationRoute;\n const {beforeMiddlewares, middlewares: mldwrs, afterMiddlewares} = endpoint;\n\n const useBefore = getValue(provider, \"middlewares.useBefore\", []);\n const use = getValue(provider, \"middlewares.use\", []);\n const useAfter = getValue(provider, \"middlewares.useAfter\", []);\n\n const handlers = this.hooks.alter(\n \"alterEndpointHandlers\",\n [\n ...parentMiddlewares,\n ...useBefore,\n ...beforeMiddlewares,\n ...use,\n ...mldwrs,\n operationRoute.endpoint,\n ...afterMiddlewares,\n ...useAfter\n ],\n [operationRoute],\n this\n );\n\n router.addRoute(\n operationRoute.method,\n operationRoute.path || \"\",\n [\n useContextHandler(($ctx) => {\n $ctx.set(EndpointMetadata, operationRoute.endpoint);\n }),\n ...handlers\n ],\n operationRoute\n );\n });\n\n const middlewares: any[] = [...parentMiddlewares, ...useBefore];\n\n children.forEach((token: Type<any>) => {\n const nested = this.from(token, middlewares);\n\n router.use(nested);\n });\n\n return router;\n }\n\n getLayers(router: PlatformRouter): PlatformLayer[] {\n return router.layers\n .flatMap((layer) => {\n if (layer.router) {\n return this.getLayers(layer.router).map((subLayer: PlatformLayer) => {\n return new PlatformLayer({\n ...subLayer,\n path: concatPath(layer.path, subLayer.path)\n });\n });\n }\n\n return new PlatformLayer(layer);\n })\n .map((layer) => {\n const handlers = layer.handlers.map((handlerMetadata) => {\n // set path on handler metadata to retrieve it later in $ctx\n handlerMetadata.path = layer.path;\n\n let handler: any;\n\n if (handlerMetadata.isRawMiddleware()) {\n handler = handlerMetadata.handler;\n } else {\n handler = handlerMetadata.isCtxFn()\n ? (scope: PlatformParamsScope) => handlerMetadata.handler(scope.$ctx)\n : this.platformParams.compileHandler(handlerMetadata);\n }\n\n return this.hooks.alter(\"alterHandler\", handler, [handlerMetadata]);\n });\n\n layer.set(handlers);\n\n return layer;\n });\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SinglePathType.js","sourceRoot":"","sources":["../../../src/domain/SinglePathType.ts"],"names":[],"mappings":"","sourcesContent":["export type SinglePathType = string | RegExp;\n"]}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Automatically generated by barrelsby.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
tslib_1.__exportStar(require("./domain/PlatformHandlerMetadata"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./domain/PlatformHandlerType"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./domain/PlatformLayer"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./domain/PlatformRouter"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./domain/PlatformRouters"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./domain/SinglePathType"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./utils/formatMethod"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./utils/useContextHandler"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2EAAiD;AACjD,uEAA6C;AAC7C,iEAAuC;AACvC,kEAAwC;AACxC,mEAAyC;AACzC,kEAAwC;AACxC,+DAAqC;AACrC,oEAA0C","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./domain/PlatformHandlerMetadata\";\nexport * from \"./domain/PlatformHandlerType\";\nexport * from \"./domain/PlatformLayer\";\nexport * from \"./domain/PlatformRouter\";\nexport * from \"./domain/PlatformRouters\";\nexport * from \"./domain/SinglePathType\";\nexport * from \"./utils/formatMethod\";\nexport * from \"./utils/useContextHandler\";\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatMethod = void 0;
|
|
4
|
+
const schema_1 = require("@tsed/schema");
|
|
5
|
+
function formatMethod(method) {
|
|
6
|
+
return (method === schema_1.OperationMethods.CUSTOM ? "use" : method || "use").toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
exports.formatMethod = formatMethod;
|
|
9
|
+
//# sourceMappingURL=formatMethod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatMethod.js","sourceRoot":"","sources":["../../../src/utils/formatMethod.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAE9C,SAAgB,YAAY,CAAC,MAA0B;IACrD,OAAO,CAAC,MAAM,KAAK,yBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACtF,CAAC;AAFD,oCAEC","sourcesContent":["import {OperationMethods} from \"@tsed/schema\";\n\nexport function formatMethod(method: string | undefined) {\n return (method === OperationMethods.CUSTOM ? \"use\" : method || \"use\").toLowerCase();\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useContextHandler = void 0;
|
|
4
|
+
const PlatformHandlerType_1 = require("../domain/PlatformHandlerType");
|
|
5
|
+
/**
|
|
6
|
+
* Create Ts.ED context handler
|
|
7
|
+
* @param fn
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
function useContextHandler(fn) {
|
|
11
|
+
fn.type = PlatformHandlerType_1.PlatformHandlerType.CTX_FN;
|
|
12
|
+
return fn;
|
|
13
|
+
}
|
|
14
|
+
exports.useContextHandler = useContextHandler;
|
|
15
|
+
//# sourceMappingURL=useContextHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContextHandler.js","sourceRoot":"","sources":["../../../src/utils/useContextHandler.ts"],"names":[],"mappings":";;;AACA,uEAAkE;AAIlE;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,EAAyD;IACzF,EAAE,CAAC,IAAI,GAAG,yCAAmB,CAAC,MAAM,CAAC;IAErC,OAAO,EAAE,CAAC;AACZ,CAAC;AAJD,8CAIC","sourcesContent":["import {DIContext} from \"@tsed/di\";\nimport {PlatformHandlerType} from \"../domain/PlatformHandlerType\";\n\nexport type PlatformContextHandler<Context = DIContext> = ($ctx: Context) => any | Promise<any>;\n\n/**\n * Create Ts.ED context handler\n * @param fn\n * @ignore\n */\nexport function useContextHandler(fn: PlatformContextHandler & {type?: PlatformHandlerType}) {\n fn.type = PlatformHandlerType.CTX_FN;\n\n return fn;\n}\n"]}
|