@decaf-ts/for-nest 0.1.23 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/for-nest.cjs +1 -1
- package/dist/for-nest.cjs.map +1 -1
- package/dist/for-nest.js +1 -1
- package/dist/for-nest.js.map +1 -1
- package/lib/constants.cjs +2 -1
- package/lib/constants.d.ts +8 -0
- package/lib/constants.js.map +1 -1
- package/lib/controllers.cjs +67 -0
- package/lib/controllers.d.ts +20 -0
- package/lib/controllers.js.map +1 -0
- package/lib/core-module.cjs +57 -28
- package/lib/core-module.d.ts +4 -4
- package/lib/core-module.js.map +1 -1
- package/lib/decaf-model/DecafModelModule.cjs +54 -49
- package/lib/decaf-model/DecafModelModule.d.ts +8 -6
- package/lib/decaf-model/DecafModelModule.js.map +1 -1
- package/lib/decaf-model/FromModelController.cjs +97 -48
- package/lib/decaf-model/FromModelController.d.ts +2 -2
- package/lib/decaf-model/FromModelController.js.map +1 -1
- package/lib/decaf-model/decorators/DecafBody.cjs +1 -1
- package/lib/decaf-model/decorators/DecafParams.cjs +23 -8
- package/lib/decaf-model/decorators/DecafParams.d.ts +1 -0
- package/lib/decaf-model/decorators/DecafParams.js.map +1 -1
- package/lib/decaf-model/types.cjs +0 -12
- package/lib/decaf-model/types.d.ts +3 -14
- package/lib/decaf-model/types.js.map +1 -1
- package/lib/decaf-model/utils.cjs +1 -1
- package/lib/decaf-model/utils.d.ts +3 -2
- package/lib/decaf-model/utils.js.map +1 -1
- package/lib/decoration.cjs +53 -33
- package/lib/decoration.js.map +1 -1
- package/lib/esm/constants.d.ts +8 -0
- package/lib/esm/constants.js +1 -0
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/controllers.d.ts +20 -0
- package/lib/esm/controllers.js +62 -0
- package/lib/esm/controllers.js.map +1 -0
- package/lib/esm/core-module.d.ts +4 -4
- package/lib/esm/core-module.js +57 -28
- package/lib/esm/core-module.js.map +1 -1
- package/lib/esm/decaf-model/DecafModelModule.d.ts +8 -6
- package/lib/esm/decaf-model/DecafModelModule.js +53 -48
- package/lib/esm/decaf-model/DecafModelModule.js.map +1 -1
- package/lib/esm/decaf-model/FromModelController.d.ts +2 -2
- package/lib/esm/decaf-model/FromModelController.js +100 -51
- package/lib/esm/decaf-model/FromModelController.js.map +1 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafParams.d.ts +1 -0
- package/lib/esm/decaf-model/decorators/DecafParams.js +22 -8
- package/lib/esm/decaf-model/decorators/DecafParams.js.map +1 -1
- package/lib/esm/decaf-model/types.d.ts +3 -14
- package/lib/esm/decaf-model/types.js +1 -10
- package/lib/esm/decaf-model/types.js.map +1 -1
- package/lib/esm/decaf-model/utils.d.ts +3 -2
- package/lib/esm/decaf-model/utils.js +1 -1
- package/lib/esm/decaf-model/utils.js.map +1 -1
- package/lib/esm/decoration.js +45 -25
- package/lib/esm/decoration.js.map +1 -1
- package/lib/esm/factory/openapi/DtoBuilder.d.ts +15 -0
- package/lib/esm/factory/openapi/DtoBuilder.js +88 -0
- package/lib/esm/factory/openapi/DtoBuilder.js.map +1 -0
- package/lib/esm/factory/openapi/index.d.ts +1 -0
- package/lib/esm/factory/openapi/index.js +1 -0
- package/lib/esm/factory/openapi/index.js.map +1 -1
- package/lib/esm/index.d.ts +8 -6
- package/lib/esm/index.js +8 -6
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.d.ts +8 -4
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +38 -6
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js.map +1 -1
- package/lib/esm/interceptors/context.d.ts +6 -0
- package/lib/esm/interceptors/context.js +12 -0
- package/lib/esm/interceptors/context.js.map +1 -0
- package/lib/esm/module.js +9 -7
- package/lib/esm/module.js.map +1 -1
- package/lib/esm/overrides/Adapter.d.ts +10 -0
- package/lib/esm/overrides/Adapter.js +2 -0
- package/lib/esm/overrides/Adapter.js.map +1 -0
- package/lib/esm/overrides/constants.d.ts +21 -0
- package/lib/esm/overrides/constants.js +22 -0
- package/lib/esm/overrides/constants.js.map +1 -0
- package/lib/esm/overrides/decoration.d.ts +30 -0
- package/lib/esm/overrides/decoration.js +111 -0
- package/lib/esm/overrides/decoration.js.map +1 -0
- package/lib/esm/overrides/helpers.d.ts +11 -0
- package/lib/esm/overrides/helpers.js +136 -0
- package/lib/esm/overrides/helpers.js.map +1 -0
- package/lib/esm/overrides/index.d.ts +4 -0
- package/lib/esm/overrides/index.js +5 -0
- package/lib/esm/overrides/index.js.map +1 -0
- package/lib/esm/overrides/overrides.d.ts +1 -0
- package/lib/esm/overrides/overrides.js +13 -0
- package/lib/esm/overrides/overrides.js.map +1 -0
- package/lib/esm/request/DecafAuthHandler.d.ts +10 -0
- package/lib/esm/request/DecafAuthHandler.js +37 -0
- package/lib/esm/request/DecafAuthHandler.js.map +1 -0
- package/lib/esm/request/DecafHandlerExecutor.js +1 -1
- package/lib/esm/request/DecafHandlerExecutor.js.map +1 -1
- package/lib/esm/request/DecafRequestContext.d.ts +5 -4
- package/lib/esm/request/DecafRequestContext.js +7 -7
- package/lib/esm/request/DecafRequestContext.js.map +1 -1
- package/lib/esm/request/RamRequestTransformer.d.ts +5 -0
- package/lib/esm/request/RamRequestTransformer.js +25 -0
- package/lib/esm/request/RamRequestTransformer.js.map +1 -0
- package/lib/esm/request/index.d.ts +2 -0
- package/lib/esm/request/index.js +2 -0
- package/lib/esm/request/index.js.map +1 -1
- package/lib/esm/types.d.ts +13 -5
- package/lib/factory/openapi/DtoBuilder.cjs +91 -0
- package/lib/factory/openapi/DtoBuilder.d.ts +15 -0
- package/lib/factory/openapi/DtoBuilder.js.map +1 -0
- package/lib/factory/openapi/index.cjs +1 -0
- package/lib/factory/openapi/index.d.ts +1 -0
- package/lib/factory/openapi/index.js.map +1 -1
- package/lib/index.cjs +8 -6
- package/lib/index.d.ts +8 -6
- package/lib/index.js.map +1 -1
- package/lib/interceptors/DecafRequestHandlerInterceptor.cjs +37 -5
- package/lib/interceptors/DecafRequestHandlerInterceptor.d.ts +8 -4
- package/lib/interceptors/DecafRequestHandlerInterceptor.js.map +1 -1
- package/lib/interceptors/context.cjs +17 -0
- package/lib/interceptors/context.d.ts +6 -0
- package/lib/interceptors/context.js.map +1 -0
- package/lib/module.cjs +9 -7
- package/lib/module.js.map +1 -1
- package/lib/overrides/Adapter.cjs +4 -0
- package/lib/overrides/Adapter.d.ts +10 -0
- package/lib/overrides/Adapter.js.map +1 -0
- package/lib/overrides/constants.cjs +25 -0
- package/lib/overrides/constants.d.ts +21 -0
- package/lib/overrides/constants.js.map +1 -0
- package/lib/overrides/decoration.cjs +120 -0
- package/lib/overrides/decoration.d.ts +30 -0
- package/lib/overrides/decoration.js.map +1 -0
- package/lib/overrides/helpers.cjs +146 -0
- package/lib/overrides/helpers.d.ts +11 -0
- package/lib/overrides/helpers.js.map +1 -0
- package/lib/overrides/index.cjs +21 -0
- package/lib/overrides/index.d.ts +4 -0
- package/lib/overrides/index.js.map +1 -0
- package/lib/overrides/overrides.cjs +15 -0
- package/lib/overrides/overrides.d.ts +1 -0
- package/lib/overrides/overrides.js.map +1 -0
- package/lib/request/DecafAuthHandler.cjs +42 -0
- package/lib/request/DecafAuthHandler.d.ts +10 -0
- package/lib/request/DecafAuthHandler.js.map +1 -0
- package/lib/request/DecafHandlerExecutor.cjs +1 -1
- package/lib/request/DecafHandlerExecutor.js.map +1 -1
- package/lib/request/DecafRequestContext.cjs +7 -7
- package/lib/request/DecafRequestContext.d.ts +5 -4
- package/lib/request/DecafRequestContext.js.map +1 -1
- package/lib/request/RamRequestTransformer.cjs +28 -0
- package/lib/request/RamRequestTransformer.d.ts +5 -0
- package/lib/request/RamRequestTransformer.js.map +1 -0
- package/lib/request/index.cjs +2 -0
- package/lib/request/index.d.ts +2 -0
- package/lib/request/index.js.map +1 -1
- package/lib/types.d.ts +13 -5
- package/package.json +9 -1
- package/lib/esm/factory/context.d.ts +0 -0
- package/lib/esm/factory/context.js +0 -2
- package/lib/esm/factory/context.js.map +0 -1
- package/lib/factory/context.cjs +0 -2
- package/lib/factory/context.d.ts +0 -0
- package/lib/factory/context.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DtoBuilder.js","sourceRoot":"","sources":["../../../src/factory/openapi/DtoBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./SwaggerBuilder.cjs"), exports);
|
|
18
|
+
__exportStar(require("./DtoBuilder.cjs"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factory/openapi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factory/openapi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAiC;AACjC,mDAA6B"}
|
package/lib/index.cjs
CHANGED
|
@@ -38,22 +38,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.PACKAGE_NAME = exports.VERSION = void 0;
|
|
39
39
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
40
40
|
require("./decoration.cjs");
|
|
41
|
+
__exportStar(require("./decoration.cjs"), exports); // on top on purpose
|
|
42
|
+
__exportStar(require("./decaf-model/index.cjs"), exports);
|
|
43
|
+
__exportStar(require("./factory/index.cjs"), exports);
|
|
44
|
+
__exportStar(require("./interceptors/index.cjs"), exports);
|
|
45
|
+
__exportStar(require("./overrides/index.cjs"), exports);
|
|
46
|
+
__exportStar(require("./request/index.cjs"), exports);
|
|
41
47
|
__exportStar(require("./constants.cjs"), exports);
|
|
42
|
-
__exportStar(require("./
|
|
48
|
+
__exportStar(require("./controllers.cjs"), exports);
|
|
43
49
|
__exportStar(require("./module.cjs"), exports);
|
|
44
50
|
__exportStar(require("./types.cjs"), exports);
|
|
45
51
|
__exportStar(require("./utils.cjs"), exports);
|
|
46
|
-
__exportStar(require("./factory/index.cjs"), exports);
|
|
47
|
-
__exportStar(require("./decaf-model/index.cjs"), exports);
|
|
48
|
-
__exportStar(require("./interceptors/index.cjs"), exports);
|
|
49
|
-
__exportStar(require("./request/index.cjs"), exports);
|
|
50
52
|
/**
|
|
51
53
|
* Represents the current version of the ts-workspace module.
|
|
52
54
|
* The actual version number is replaced during the build process.
|
|
53
55
|
* @constant
|
|
54
56
|
* @type {string}
|
|
55
57
|
*/
|
|
56
|
-
exports.VERSION = "0.1.
|
|
58
|
+
exports.VERSION = "0.1.24";
|
|
57
59
|
exports.PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
58
60
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
59
61
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -20,20 +20,22 @@
|
|
|
20
20
|
* to easily import and use specific parts of the library as needed.
|
|
21
21
|
*/
|
|
22
22
|
import "./decoration";
|
|
23
|
-
export * from "./constants";
|
|
24
23
|
export * from "./decoration";
|
|
25
|
-
export * from "./module";
|
|
26
|
-
export * from "./types";
|
|
27
|
-
export * from "./utils";
|
|
28
|
-
export * from "./factory";
|
|
29
24
|
export * from "./decaf-model";
|
|
25
|
+
export * from "./factory";
|
|
30
26
|
export * from "./interceptors";
|
|
27
|
+
export * from "./overrides";
|
|
31
28
|
export * from "./request";
|
|
29
|
+
export * from "./constants";
|
|
30
|
+
export * from "./controllers";
|
|
31
|
+
export * from "./module";
|
|
32
|
+
export * from "./types";
|
|
33
|
+
export * from "./utils";
|
|
32
34
|
/**
|
|
33
35
|
* Represents the current version of the ts-workspace module.
|
|
34
36
|
* The actual version number is replaced during the build process.
|
|
35
37
|
* @constant
|
|
36
38
|
* @type {string}
|
|
37
39
|
*/
|
|
38
|
-
export declare const VERSION = "0.1.
|
|
40
|
+
export declare const VERSION = "0.1.24";
|
|
39
41
|
export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;AAEH,qDAAgD;AAChD,4BAAsB;AAEtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;AAEH,qDAAgD;AAChD,4BAAsB;AAEtB,mDAA6B,CAAC,oBAAoB;AAClD,0DAA8B;AAC9B,sDAA0B;AAC1B,2DAA+B;AAC/B,wDAA4B;AAC5B,sDAA0B;AAC1B,kDAA4B;AAC5B,oDAA8B;AAC9B,+CAAyB;AACzB,8CAAwB;AACxB,8CAAwB;AAExB;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC"}
|
|
@@ -12,6 +12,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.DecafRequestHandlerInterceptor = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const request_1 = require("./../request/index.cjs");
|
|
15
|
+
const core_1 = require("@decaf-ts/core");
|
|
16
|
+
require("./../overrides/index.cjs");
|
|
17
|
+
const logging_1 = require("@decaf-ts/logging");
|
|
18
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
15
19
|
/**
|
|
16
20
|
* @description
|
|
17
21
|
* Interceptor responsible for executing all registered Decaf request handlers
|
|
@@ -59,12 +63,39 @@ const request_1 = require("./../request/index.cjs");
|
|
|
59
63
|
* Controller-->>Client: Response
|
|
60
64
|
*/
|
|
61
65
|
let DecafRequestHandlerInterceptor = class DecafRequestHandlerInterceptor {
|
|
62
|
-
constructor(executor) {
|
|
66
|
+
constructor(requestContext, executor) {
|
|
67
|
+
this.requestContext = requestContext;
|
|
63
68
|
this.executor = executor;
|
|
64
69
|
}
|
|
65
|
-
async
|
|
66
|
-
const
|
|
67
|
-
const
|
|
70
|
+
async contextualize(req) {
|
|
71
|
+
const headers = req.headers;
|
|
72
|
+
const flags = {
|
|
73
|
+
headers: headers,
|
|
74
|
+
overrides: {},
|
|
75
|
+
};
|
|
76
|
+
const flavours = core_1.Adapter.flavoursToTransform();
|
|
77
|
+
if (flavours)
|
|
78
|
+
for (const flavour of flavours) {
|
|
79
|
+
try {
|
|
80
|
+
const transformer = core_1.Adapter.transformerFor(flavour);
|
|
81
|
+
const from = await transformer.from(req);
|
|
82
|
+
Object.assign(flags.overrides, from);
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
throw new db_decorators_1.InternalError(`Failed to contextualize request: ${e}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const ctx = new core_1.Context().accumulate(Object.assign({}, core_1.DefaultAdapterFlags, {
|
|
89
|
+
logger: logging_1.Logging.get(),
|
|
90
|
+
timestamp: new Date(),
|
|
91
|
+
}, flags));
|
|
92
|
+
return ctx;
|
|
93
|
+
}
|
|
94
|
+
async intercept(context, next) {
|
|
95
|
+
const req = context.switchToHttp().getRequest();
|
|
96
|
+
const res = context.switchToHttp().getResponse();
|
|
97
|
+
const ctx = await this.contextualize(req);
|
|
98
|
+
this.requestContext.applyCtx(ctx);
|
|
68
99
|
await this.executor.exec(req, res);
|
|
69
100
|
return next.handle();
|
|
70
101
|
}
|
|
@@ -72,6 +103,7 @@ let DecafRequestHandlerInterceptor = class DecafRequestHandlerInterceptor {
|
|
|
72
103
|
exports.DecafRequestHandlerInterceptor = DecafRequestHandlerInterceptor;
|
|
73
104
|
exports.DecafRequestHandlerInterceptor = DecafRequestHandlerInterceptor = __decorate([
|
|
74
105
|
(0, common_1.Injectable)({ scope: common_1.Scope.REQUEST }),
|
|
75
|
-
__metadata("design:paramtypes", [request_1.
|
|
106
|
+
__metadata("design:paramtypes", [request_1.DecafRequestContext,
|
|
107
|
+
request_1.DecafHandlerExecutor])
|
|
76
108
|
], DecafRequestHandlerInterceptor);
|
|
77
109
|
//# sourceMappingURL=DecafRequestHandlerInterceptor.js.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from "@nestjs/common";
|
|
2
|
-
import { DecafHandlerExecutor } from "../request";
|
|
2
|
+
import { DecafHandlerExecutor, DecafRequestContext } from "../request";
|
|
3
|
+
import { DecafServerContext } from "../constants";
|
|
4
|
+
import "../overrides";
|
|
3
5
|
/**
|
|
4
6
|
* @description
|
|
5
7
|
* Interceptor responsible for executing all registered Decaf request handlers
|
|
@@ -47,7 +49,9 @@ import { DecafHandlerExecutor } from "../request";
|
|
|
47
49
|
* Controller-->>Client: Response
|
|
48
50
|
*/
|
|
49
51
|
export declare class DecafRequestHandlerInterceptor implements NestInterceptor {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
protected readonly requestContext: DecafRequestContext;
|
|
53
|
+
protected readonly executor: DecafHandlerExecutor;
|
|
54
|
+
constructor(requestContext: DecafRequestContext, executor: DecafHandlerExecutor);
|
|
55
|
+
protected contextualize(req: any): Promise<DecafServerContext>;
|
|
56
|
+
intercept(context: ExecutionContext, next: CallHandler): Promise<import("rxjs").Observable<any>>;
|
|
53
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecafRequestHandlerInterceptor.js","sourceRoot":"","sources":["../../src/interceptors/DecafRequestHandlerInterceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAMwB;AACxB,
|
|
1
|
+
{"version":3,"file":"DecafRequestHandlerInterceptor.js","sourceRoot":"","sources":["../../src/interceptors/DecafRequestHandlerInterceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAMwB;AACxB,oDAAuE;AACvE,yCAAuE;AAEvE,oCAAsB;AACtB,+CAA4C;AAC5C,2DAAwD;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEI,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IACzC,YACqB,cAAmC,EACnC,QAA8B;QAD9B,mBAAc,GAAd,cAAc,CAAqB;QACnC,aAAQ,GAAR,QAAQ,CAAsB;IAChD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,GAAQ;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,KAAK,GAAqB;YAC9B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAE;SACP,CAAC;QAET,MAAM,QAAQ,GAAG,cAAO,CAAC,mBAAmB,EAAE,CAAC;QAC/C,IAAI,QAAQ;YACV,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,cAAO,CAAC,cAAc,CACxC,OAAO,CAC4B,CAAC;oBACtC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACvC,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACpB,MAAM,IAAI,6BAAa,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,cAAO,EAAE,CAAC,UAAU,CAClC,MAAM,CAAC,MAAM,CACX,EAAE,EACF,0BAAmB,EACnB;YACE,MAAM,EAAE,iBAAO,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,EACD,KAAK,CACN,CACF,CAAC;QACF,OAAO,GAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAhDY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,CAAC;qCAGE,6BAAmB;QACzB,8BAAoB;GAHxC,8BAA8B,CAgD1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestToContextTransformer = void 0;
|
|
4
|
+
exports.requestToContextTransformer = requestToContextTransformer;
|
|
5
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
6
|
+
class RequestToContextTransformer {
|
|
7
|
+
}
|
|
8
|
+
exports.RequestToContextTransformer = RequestToContextTransformer;
|
|
9
|
+
function requestToContextTransformer(flavour) {
|
|
10
|
+
return function requestToContextTransformer(original) {
|
|
11
|
+
decoration_1.Metadata.set("transformers", flavour, original);
|
|
12
|
+
if (typeof original === "function")
|
|
13
|
+
return (0, decoration_1.metadata)("transformers", flavour)(original);
|
|
14
|
+
return original;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DecafServerContext } from "../constants";
|
|
2
|
+
import { FlagsOf } from "@decaf-ts/core";
|
|
3
|
+
export declare abstract class RequestToContextTransformer<C extends DecafServerContext> {
|
|
4
|
+
abstract from(req: any, ...args: any[]): Promise<FlagsOf<C>>;
|
|
5
|
+
}
|
|
6
|
+
export declare function requestToContextTransformer(flavour: string): (original: any) => any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/interceptors/context.ts"],"names":[],"mappings":";;;AAUA,kEAOC;AAfD,qDAA0D;AAE1D,MAAsB,2BAA2B;CAIhD;AAJD,kEAIC;AAED,SAAgB,2BAA2B,CAAC,OAAe;IACzD,OAAO,SAAS,2BAA2B,CAAC,QAAa;QACvD,qBAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,UAAU;YAChC,OAAO,IAAA,qBAAQ,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
|
package/lib/module.cjs
CHANGED
|
@@ -10,21 +10,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.DecafModule = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const core_module_1 = require("./core-module.cjs");
|
|
13
|
-
const
|
|
13
|
+
const index_1 = require("./decaf-model/index.cjs");
|
|
14
14
|
/**
|
|
15
15
|
* @publicApi
|
|
16
16
|
*/
|
|
17
17
|
let DecafModule = DecafModule_1 = class DecafModule {
|
|
18
18
|
static async forRootAsync(options) {
|
|
19
19
|
const { autoControllers, autoServices, handlers } = options;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
20
|
+
const adapters = await core_module_1.DecafCoreModule.bootPersistence(options);
|
|
21
|
+
const flavours = adapters.map((adapter) => adapter.flavour);
|
|
22
22
|
const imports = [core_module_1.DecafCoreModule.forRoot(options)];
|
|
23
23
|
if (autoControllers) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
flavours.forEach((flavour) => {
|
|
25
|
+
imports.push((0, index_1.getModuleFor)(flavour).forRoot(flavour, {
|
|
26
|
+
autoServices,
|
|
27
|
+
handlers,
|
|
28
|
+
}));
|
|
29
|
+
});
|
|
28
30
|
}
|
|
29
31
|
return {
|
|
30
32
|
module: DecafModule_1,
|
package/lib/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+E;AAE/E,mDAAgD;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+E;AAE/E,mDAAgD;AAEhD,mDAAmD;AAEnD;;GAEG;AAEI,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAA2B;QAE3B,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,QAAQ,GACZ,MAAM,6BAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,OAAO,GAOG,CAAC,6BAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnD,IAAI,eAAe,EAAE,CAAC;YACpB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,OAAO,CAAC,IAAI,CACV,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;oBACrC,YAAY;oBACZ,QAAQ;iBACT,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC;CACF,CAAA;AAnCY,kCAAW;sBAAX,WAAW;IADvB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,WAAW,CAmCvB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "@decaf-ts/core";
|
|
2
|
+
import type { Constructor } from "@decaf-ts/decoration";
|
|
3
|
+
import { RequestToContextTransformer } from "../interceptors/context";
|
|
4
|
+
import { ContextOf } from "@decaf-ts/core";
|
|
5
|
+
declare module "@decaf-ts/core" {
|
|
6
|
+
namespace Adapter {
|
|
7
|
+
function transformerFor<A extends Adapter<any, any, any, any>>(adapter: A | string): Constructor<RequestToContextTransformer<ContextOf<A>>> | RequestToContextTransformer<ContextOf<A>>;
|
|
8
|
+
function flavoursToTransform(): string[] | undefined;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Adapter.js","sourceRoot":"","sources":["../../src/overrides/Adapter.ts"],"names":[],"mappings":";;AAAA,0BAAwB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DECORATORS = exports.DECORATORS_PREFIX = void 0;
|
|
4
|
+
exports.DECORATORS_PREFIX = "swagger";
|
|
5
|
+
exports.DECORATORS = {
|
|
6
|
+
API_OPERATION: `${exports.DECORATORS_PREFIX}/apiOperation`,
|
|
7
|
+
API_RESPONSE: `${exports.DECORATORS_PREFIX}/apiResponse`,
|
|
8
|
+
API_PRODUCES: `${exports.DECORATORS_PREFIX}/apiProduces`,
|
|
9
|
+
API_CONSUMES: `${exports.DECORATORS_PREFIX}/apiConsumes`,
|
|
10
|
+
API_TAGS: `${exports.DECORATORS_PREFIX}/apiUseTags`,
|
|
11
|
+
API_CALLBACKS: `${exports.DECORATORS_PREFIX}/apiCallbacks`,
|
|
12
|
+
API_PARAMETERS: `${exports.DECORATORS_PREFIX}/apiParameters`,
|
|
13
|
+
API_HEADERS: `${exports.DECORATORS_PREFIX}/apiHeaders`,
|
|
14
|
+
API_MODEL_PROPERTIES: `${exports.DECORATORS_PREFIX}/apiModelProperties`,
|
|
15
|
+
API_MODEL_PROPERTIES_ARRAY: `${exports.DECORATORS_PREFIX}/apiModelPropertiesArray`,
|
|
16
|
+
API_SECURITY: `${exports.DECORATORS_PREFIX}/apiSecurity`,
|
|
17
|
+
API_EXCLUDE_ENDPOINT: `${exports.DECORATORS_PREFIX}/apiExcludeEndpoint`,
|
|
18
|
+
API_EXCLUDE_CONTROLLER: `${exports.DECORATORS_PREFIX}/apiExcludeController`,
|
|
19
|
+
API_EXTRA_MODELS: `${exports.DECORATORS_PREFIX}/apiExtraModels`,
|
|
20
|
+
API_EXTENSION: `${exports.DECORATORS_PREFIX}/apiExtension`,
|
|
21
|
+
API_SCHEMA: `${exports.DECORATORS_PREFIX}/apiSchema`,
|
|
22
|
+
API_DEFAULT_GETTER: `${exports.DECORATORS_PREFIX}/apiDefaultGetter`,
|
|
23
|
+
API_LINK: `${exports.DECORATORS_PREFIX}/apiLink`,
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const DECORATORS_PREFIX = "swagger";
|
|
2
|
+
export declare const DECORATORS: {
|
|
3
|
+
API_OPERATION: string;
|
|
4
|
+
API_RESPONSE: string;
|
|
5
|
+
API_PRODUCES: string;
|
|
6
|
+
API_CONSUMES: string;
|
|
7
|
+
API_TAGS: string;
|
|
8
|
+
API_CALLBACKS: string;
|
|
9
|
+
API_PARAMETERS: string;
|
|
10
|
+
API_HEADERS: string;
|
|
11
|
+
API_MODEL_PROPERTIES: string;
|
|
12
|
+
API_MODEL_PROPERTIES_ARRAY: string;
|
|
13
|
+
API_SECURITY: string;
|
|
14
|
+
API_EXCLUDE_ENDPOINT: string;
|
|
15
|
+
API_EXCLUDE_CONTROLLER: string;
|
|
16
|
+
API_EXTRA_MODELS: string;
|
|
17
|
+
API_EXTENSION: string;
|
|
18
|
+
API_SCHEMA: string;
|
|
19
|
+
API_DEFAULT_GETTER: string;
|
|
20
|
+
API_LINK: string;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/overrides/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,UAAU,GAAG;IACxB,aAAa,EAAE,GAAG,yBAAiB,eAAe;IAClD,YAAY,EAAE,GAAG,yBAAiB,cAAc;IAChD,YAAY,EAAE,GAAG,yBAAiB,cAAc;IAChD,YAAY,EAAE,GAAG,yBAAiB,cAAc;IAChD,QAAQ,EAAE,GAAG,yBAAiB,aAAa;IAC3C,aAAa,EAAE,GAAG,yBAAiB,eAAe;IAClD,cAAc,EAAE,GAAG,yBAAiB,gBAAgB;IACpD,WAAW,EAAE,GAAG,yBAAiB,aAAa;IAC9C,oBAAoB,EAAE,GAAG,yBAAiB,qBAAqB;IAC/D,0BAA0B,EAAE,GAAG,yBAAiB,0BAA0B;IAC1E,YAAY,EAAE,GAAG,yBAAiB,cAAc;IAChD,oBAAoB,EAAE,GAAG,yBAAiB,qBAAqB;IAC/D,sBAAsB,EAAE,GAAG,yBAAiB,uBAAuB;IACnE,gBAAgB,EAAE,GAAG,yBAAiB,iBAAiB;IACvD,aAAa,EAAE,GAAG,yBAAiB,eAAe;IAClD,UAAU,EAAE,GAAG,yBAAiB,YAAY;IAC5C,kBAAkB,EAAE,GAAG,yBAAiB,mBAAmB;IAC3D,QAAQ,EAAE,GAAG,yBAAiB,UAAU;CACzC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isUndefined = void 0;
|
|
4
|
+
exports.getEnumValues = getEnumValues;
|
|
5
|
+
exports.getEnumType = getEnumType;
|
|
6
|
+
exports.createPropertyDecorator = createPropertyDecorator;
|
|
7
|
+
exports.ApiProperty = ApiProperty;
|
|
8
|
+
exports.createApiPropertyDecorator = createApiPropertyDecorator;
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
10
|
+
const constants_1 = require("./constants.cjs");
|
|
11
|
+
const helpers_1 = require("./helpers.cjs");
|
|
12
|
+
const isUndefined = (obj) => typeof obj === "undefined";
|
|
13
|
+
exports.isUndefined = isUndefined;
|
|
14
|
+
function getEnumValues(enumType) {
|
|
15
|
+
if (typeof enumType === "function") {
|
|
16
|
+
return getEnumValues(enumType());
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(enumType)) {
|
|
19
|
+
return enumType;
|
|
20
|
+
}
|
|
21
|
+
if (typeof enumType !== "object") {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
// Enums with numeric values
|
|
25
|
+
// enum Size {
|
|
26
|
+
// SMALL = 1,
|
|
27
|
+
// BIG = 2
|
|
28
|
+
// }
|
|
29
|
+
// are transpiled to include a reverse mapping
|
|
30
|
+
// const Size = {
|
|
31
|
+
// "1": "SMALL",
|
|
32
|
+
// "2": "BIG",
|
|
33
|
+
// "SMALL": 1,
|
|
34
|
+
// "BIG": 2,
|
|
35
|
+
// }
|
|
36
|
+
const numericValues = Object.values(enumType)
|
|
37
|
+
.filter((value) => typeof value === "number")
|
|
38
|
+
.map((value) => value.toString());
|
|
39
|
+
return Object.keys(enumType)
|
|
40
|
+
.filter((key) => !numericValues.includes(key))
|
|
41
|
+
.map((key) => enumType[key]);
|
|
42
|
+
}
|
|
43
|
+
function getEnumType(values) {
|
|
44
|
+
const hasString = values.filter(lodash_1.isString).length > 0;
|
|
45
|
+
return hasString ? "string" : "number";
|
|
46
|
+
}
|
|
47
|
+
function createPropertyDecorator(metakey, metadata, overrideExisting = true) {
|
|
48
|
+
return ((target, propertyKey) => {
|
|
49
|
+
const properties = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, target) || [];
|
|
50
|
+
const key = `:${propertyKey}`;
|
|
51
|
+
if (!properties.includes(key)) {
|
|
52
|
+
Reflect.defineMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, [...properties, `:${propertyKey}`], target);
|
|
53
|
+
}
|
|
54
|
+
const existingMetadata = Reflect.getMetadata(metakey, target, propertyKey);
|
|
55
|
+
if (existingMetadata) {
|
|
56
|
+
const newMetadata = (0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(exports.isUndefined));
|
|
57
|
+
const metadataToSave = overrideExisting
|
|
58
|
+
? {
|
|
59
|
+
...existingMetadata,
|
|
60
|
+
...newMetadata,
|
|
61
|
+
}
|
|
62
|
+
: {
|
|
63
|
+
...newMetadata,
|
|
64
|
+
...existingMetadata,
|
|
65
|
+
};
|
|
66
|
+
Reflect.defineMetadata(metakey, metadataToSave, target, propertyKey);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const type =
|
|
70
|
+
// @ts-expect-error nest js code
|
|
71
|
+
target?.constructor?.[helpers_1.METADATA_FACTORY_NAME]?.()[propertyKey]?.type ??
|
|
72
|
+
Reflect.getMetadata("design:type", target, propertyKey);
|
|
73
|
+
Reflect.defineMetadata(metakey, {
|
|
74
|
+
type,
|
|
75
|
+
...(0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(exports.isUndefined)),
|
|
76
|
+
}, target, propertyKey);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const isEnumArray = (opts) => (opts.isArray && "enum" in opts && opts.enum !== undefined);
|
|
81
|
+
/**
|
|
82
|
+
* @publicApi
|
|
83
|
+
*/
|
|
84
|
+
function ApiProperty(options = {}) {
|
|
85
|
+
return createApiPropertyDecorator(options);
|
|
86
|
+
}
|
|
87
|
+
function createApiPropertyDecorator(options = {}, overrideExisting = true) {
|
|
88
|
+
const [type, isArray] = (0, helpers_1.getTypeIsArrayTuple)(options.type, options.isArray);
|
|
89
|
+
options = {
|
|
90
|
+
...options,
|
|
91
|
+
type,
|
|
92
|
+
isArray,
|
|
93
|
+
};
|
|
94
|
+
if (isEnumArray(options)) {
|
|
95
|
+
options.type = "array";
|
|
96
|
+
const enumValues = getEnumValues(options.enum);
|
|
97
|
+
options.items = {
|
|
98
|
+
type: getEnumType(enumValues),
|
|
99
|
+
enum: enumValues,
|
|
100
|
+
};
|
|
101
|
+
// @ts-expect-error nest js code
|
|
102
|
+
delete options.enum;
|
|
103
|
+
}
|
|
104
|
+
else if ("enum" in options && options.enum !== undefined) {
|
|
105
|
+
const enumValues = getEnumValues(options.enum);
|
|
106
|
+
options.enum = enumValues;
|
|
107
|
+
options.type = getEnumType(enumValues);
|
|
108
|
+
}
|
|
109
|
+
if (Array.isArray(options.type)) {
|
|
110
|
+
options.type = "array";
|
|
111
|
+
options.items = {
|
|
112
|
+
type: "array",
|
|
113
|
+
items: {
|
|
114
|
+
type: options.type[0],
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return createPropertyDecorator(constants_1.DECORATORS.API_MODEL_PROPERTIES, options, overrideExisting);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=decoration.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Type } from "@nestjs/common";
|
|
2
|
+
import type { EnumSchemaAttributes } from "@nestjs/swagger/dist/interfaces/enum-schema-attributes.interface";
|
|
3
|
+
import type { SchemaObjectMetadata } from "@nestjs/swagger/dist/interfaces/schema-object-metadata.interface";
|
|
4
|
+
import { type SwaggerEnumType } from "@nestjs/swagger/dist/types/swagger-enum.type";
|
|
5
|
+
export declare const isUndefined: (obj: any) => obj is undefined;
|
|
6
|
+
export declare function getEnumValues(enumType: SwaggerEnumType | (() => SwaggerEnumType)): string[] | number[];
|
|
7
|
+
export declare function getEnumType(values: (string | number)[]): "string" | "number";
|
|
8
|
+
export declare function createPropertyDecorator<T extends Record<string, any> = any>(metakey: string, metadata: T, overrideExisting?: boolean): PropertyDecorator;
|
|
9
|
+
export type ApiPropertyCommonOptions = SchemaObjectMetadata & {
|
|
10
|
+
"x-enumNames"?: string[];
|
|
11
|
+
/**
|
|
12
|
+
* Lazy function returning the type for which the decorated property
|
|
13
|
+
* can be used as an id
|
|
14
|
+
*
|
|
15
|
+
* Use together with @ApiDefaultGetter on the getter route of the type
|
|
16
|
+
* to generate OpenAPI link objects
|
|
17
|
+
*
|
|
18
|
+
* @see [Swagger link objects](https://swagger.io/docs/specification/links/)
|
|
19
|
+
*/
|
|
20
|
+
link?: () => Type<unknown> | Function;
|
|
21
|
+
};
|
|
22
|
+
export type ApiPropertyOptions = ApiPropertyCommonOptions | (ApiPropertyCommonOptions & {
|
|
23
|
+
enumName: string;
|
|
24
|
+
enumSchema?: EnumSchemaAttributes;
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* @publicApi
|
|
28
|
+
*/
|
|
29
|
+
export declare function ApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
|
|
30
|
+
export declare function createApiPropertyDecorator(options?: ApiPropertyOptions, overrideExisting?: boolean): PropertyDecorator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decoration.js","sourceRoot":"","sources":["../../src/overrides/decoration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.METHOD_METADATA = exports.METADATA_FACTORY_NAME = exports.isConstructor = void 0;
|
|
4
|
+
exports.createMethodDecorator = createMethodDecorator;
|
|
5
|
+
exports.createClassDecorator = createClassDecorator;
|
|
6
|
+
exports.createPropertyDecorator = createPropertyDecorator;
|
|
7
|
+
exports.createMixedDecorator = createMixedDecorator;
|
|
8
|
+
exports.createParamDecorator = createParamDecorator;
|
|
9
|
+
exports.getTypeIsArrayTuple = getTypeIsArrayTuple;
|
|
10
|
+
const lodash_1 = require("lodash");
|
|
11
|
+
const constants_1 = require("./constants.cjs");
|
|
12
|
+
const isConstructor = (val) => val === "constructor";
|
|
13
|
+
exports.isConstructor = isConstructor;
|
|
14
|
+
exports.METADATA_FACTORY_NAME = "_OPENAPI_METADATA_FACTORY";
|
|
15
|
+
exports.METHOD_METADATA = "method";
|
|
16
|
+
function createMethodDecorator(metakey, metadata, { overrideExisting } = { overrideExisting: true }) {
|
|
17
|
+
return (target, key, descriptor) => {
|
|
18
|
+
if (typeof metadata === "object") {
|
|
19
|
+
const prevValue = Reflect.getMetadata(metakey, descriptor.value);
|
|
20
|
+
if (prevValue && !overrideExisting) {
|
|
21
|
+
return descriptor;
|
|
22
|
+
}
|
|
23
|
+
Reflect.defineMetadata(metakey, { ...prevValue, ...metadata }, descriptor.value);
|
|
24
|
+
return descriptor;
|
|
25
|
+
}
|
|
26
|
+
Reflect.defineMetadata(metakey, metadata, descriptor.value);
|
|
27
|
+
return descriptor;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function createClassDecorator(metakey, metadata = []) {
|
|
31
|
+
return (target) => {
|
|
32
|
+
const prevValue = Reflect.getMetadata(metakey, target) || [];
|
|
33
|
+
Reflect.defineMetadata(metakey, [...prevValue, ...metadata], target);
|
|
34
|
+
return target;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function createPropertyDecorator(metakey, metadata, overrideExisting = true) {
|
|
38
|
+
return ((target, propertyKey) => {
|
|
39
|
+
const properties = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, target) || [];
|
|
40
|
+
const key = `:${propertyKey}`;
|
|
41
|
+
if (!properties.includes(key)) {
|
|
42
|
+
Reflect.defineMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, [...properties, `:${propertyKey}`], target);
|
|
43
|
+
}
|
|
44
|
+
const existingMetadata = Reflect.getMetadata(metakey, target, propertyKey);
|
|
45
|
+
if (existingMetadata) {
|
|
46
|
+
const newMetadata = (0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined));
|
|
47
|
+
const metadataToSave = overrideExisting
|
|
48
|
+
? {
|
|
49
|
+
...existingMetadata,
|
|
50
|
+
...newMetadata,
|
|
51
|
+
}
|
|
52
|
+
: {
|
|
53
|
+
...newMetadata,
|
|
54
|
+
...existingMetadata,
|
|
55
|
+
};
|
|
56
|
+
Reflect.defineMetadata(metakey, metadataToSave, target, propertyKey);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const type = target?.constructor?.[exports.METADATA_FACTORY_NAME]?.()[propertyKey]?.type ?? Reflect.getMetadata("design:type", target, propertyKey);
|
|
60
|
+
Reflect.defineMetadata(metakey, {
|
|
61
|
+
type,
|
|
62
|
+
...(0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined)),
|
|
63
|
+
}, target, propertyKey);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function createMixedDecorator(metakey, metadata) {
|
|
68
|
+
return (target, key, descriptor) => {
|
|
69
|
+
if (descriptor) {
|
|
70
|
+
let metadatas;
|
|
71
|
+
if (Array.isArray(metadata)) {
|
|
72
|
+
const previousMetadata = Reflect.getMetadata(metakey, descriptor.value) || [];
|
|
73
|
+
metadatas = [...previousMetadata, ...metadata];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const previousMetadata = Reflect.getMetadata(metakey, descriptor.value) || {};
|
|
77
|
+
metadatas = { ...previousMetadata, ...metadata };
|
|
78
|
+
}
|
|
79
|
+
Reflect.defineMetadata(metakey, metadatas, descriptor.value);
|
|
80
|
+
return descriptor;
|
|
81
|
+
}
|
|
82
|
+
let metadatas;
|
|
83
|
+
if (Array.isArray(metadata)) {
|
|
84
|
+
const previousMetadata = Reflect.getMetadata(metakey, target) || [];
|
|
85
|
+
metadatas = [...previousMetadata, ...metadata];
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const previousMetadata = Reflect.getMetadata(metakey, target) || {};
|
|
89
|
+
metadatas = Object.assign(Object.assign({}, previousMetadata), metadata);
|
|
90
|
+
}
|
|
91
|
+
Reflect.defineMetadata(metakey, metadatas, target);
|
|
92
|
+
return target;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function createParamDecorator(metadata, initial) {
|
|
96
|
+
return (
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
98
|
+
target, key, descriptor) => {
|
|
99
|
+
const paramOptions = {
|
|
100
|
+
...initial,
|
|
101
|
+
...(0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined)),
|
|
102
|
+
};
|
|
103
|
+
if (descriptor) {
|
|
104
|
+
const parameters = Reflect.getMetadata(constants_1.DECORATORS.API_PARAMETERS, descriptor.value) || [];
|
|
105
|
+
Reflect.defineMetadata(constants_1.DECORATORS.API_PARAMETERS, [...parameters, paramOptions], descriptor.value);
|
|
106
|
+
return descriptor;
|
|
107
|
+
}
|
|
108
|
+
if (typeof target === "object") {
|
|
109
|
+
return target;
|
|
110
|
+
}
|
|
111
|
+
const propertyKeys = Object.getOwnPropertyNames(target.prototype);
|
|
112
|
+
for (const propertyKey of propertyKeys) {
|
|
113
|
+
if ((0, exports.isConstructor)(propertyKey)) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const methodDescriptor = Object.getOwnPropertyDescriptor(target.prototype, propertyKey);
|
|
117
|
+
if (!methodDescriptor) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const isApiMethod = Reflect.hasMetadata(exports.METHOD_METADATA, methodDescriptor.value);
|
|
121
|
+
if (!isApiMethod) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const parameters = Reflect.getMetadata(constants_1.DECORATORS.API_PARAMETERS, methodDescriptor.value) || [];
|
|
125
|
+
Reflect.defineMetadata(constants_1.DECORATORS.API_PARAMETERS, [...parameters, paramOptions], methodDescriptor.value);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function getTypeIsArrayTuple(
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
131
|
+
input, isArrayFlag
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
133
|
+
) {
|
|
134
|
+
if (!input) {
|
|
135
|
+
return [input, isArrayFlag];
|
|
136
|
+
}
|
|
137
|
+
if (isArrayFlag) {
|
|
138
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
139
|
+
return [input, isArrayFlag];
|
|
140
|
+
}
|
|
141
|
+
const isInputArray = (0, lodash_1.isArray)(input);
|
|
142
|
+
const type = isInputArray ? input[0] : input;
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
144
|
+
return [type, isInputArray];
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=helpers.js.map
|