@hodfords/nestjs-response 8.0.0 → 10.1.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 +9 -0
- package/constants/metadata.constant.d.ts +1 -0
- package/constants/metadata.constant.js +2 -1
- package/constants/metadata.constant.js.map +1 -1
- package/constants/native-class-response-names.constant.d.ts +1 -0
- package/constants/native-class-response-names.constant.js +5 -0
- package/constants/native-class-response-names.constant.js.map +1 -0
- package/constants/provider-key.constant.d.ts +1 -0
- package/constants/provider-key.constant.js +5 -0
- package/constants/provider-key.constant.js.map +1 -0
- package/decorators/response-model.decorator.d.ts +2 -1
- package/decorators/response-model.decorator.js +4 -3
- package/decorators/response-model.decorator.js.map +1 -1
- package/decorators/response-models.decorator.d.ts +2 -0
- package/decorators/response-models.decorator.js +20 -0
- package/decorators/response-models.decorator.js.map +1 -0
- package/decorators/use-response-interceptor.decorator.js.map +1 -1
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/index.js.map +1 -1
- package/interceptors/response.interceptor.d.ts +19 -1
- package/interceptors/response.interceptor.js +199 -27
- package/interceptors/response.interceptor.js.map +1 -1
- package/modules/response.module.d.ts +5 -0
- package/modules/response.module.js +37 -0
- package/modules/response.module.js.map +1 -0
- package/package.json +36 -32
- package/responses/native-value.response.d.ts +5 -0
- package/responses/native-value.response.js +32 -0
- package/responses/native-value.response.js.map +1 -0
- package/types/config-option.type.d.ts +3 -0
- package/types/config-option.type.js +3 -0
- package/types/config-option.type.js.map +1 -0
- package/types/handle-result.type.d.ts +5 -0
- package/types/handle-result.type.js +3 -0
- package/types/handle-result.type.js.map +1 -0
- package/types/response-metadata.type.d.ts +7 -0
- package/types/response-metadata.type.js +3 -0
- package/types/response-metadata.type.js.map +1 -0
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
[](https://opencollective.com/nest#sponsor)-->
|
|
24
24
|
|
|
25
25
|
# nestjs-response
|
|
26
|
+
For response, use sync, not async.
|
|
26
27
|
|
|
27
28
|
## Installation 🤖
|
|
28
29
|
|
|
@@ -45,6 +46,12 @@ class UserController{
|
|
|
45
46
|
getAllUser() {
|
|
46
47
|
return [{name: "hello"}]
|
|
47
48
|
}
|
|
49
|
+
|
|
50
|
+
@Get()
|
|
51
|
+
@ResponseModel(UserResponse, true, true)
|
|
52
|
+
getUser() {
|
|
53
|
+
return undefined
|
|
54
|
+
}
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
```
|
|
@@ -62,6 +69,8 @@ class UserController{
|
|
|
62
69
|
```
|
|
63
70
|
|
|
64
71
|
- `Interceptor decorator`
|
|
72
|
+
|
|
73
|
+
This option is not recommended. Just use for microservice, let use global interceptor
|
|
65
74
|
```javascript
|
|
66
75
|
@Controller('test')
|
|
67
76
|
@UseResponseInterceptor()
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RESPONSE_METADATA_KEY = void 0;
|
|
3
|
+
exports.RESPONSE_METADATA_KEYS = exports.RESPONSE_METADATA_KEY = void 0;
|
|
4
4
|
exports.RESPONSE_METADATA_KEY = 'response:class';
|
|
5
|
+
exports.RESPONSE_METADATA_KEYS = 'response:classes';
|
|
5
6
|
//# sourceMappingURL=metadata.constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.constant.js","sourceRoot":"","sources":["../../../libs/constants/metadata.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"metadata.constant.js","sourceRoot":"","sources":["../../../libs/constants/metadata.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,gBAAgB,CAAC;AACzC,QAAA,sBAAsB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NativeClassResponseNamesConstant: string[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NativeClassResponseNamesConstant = void 0;
|
|
4
|
+
exports.NativeClassResponseNamesConstant = ['Boolean', 'String', 'Number'];
|
|
5
|
+
//# sourceMappingURL=native-class-response-names.constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-class-response-names.constant.js","sourceRoot":"","sources":["../../../libs/constants/native-class-response-names.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,gCAAgC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NESTJS_RESPONSE_CONFIG_OPTIONS = "NESTJS_RESPONSE_CONFIG_OPTIONS";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-key.constant.js","sourceRoot":"","sources":["../../../libs/constants/provider-key.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,gCAAgC,CAAC"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ClassConstructor } from 'class-transformer';
|
|
2
|
+
export declare function ResponseModel(responseClass: ClassConstructor<object>, isArray?: boolean, isAllowEmpty?: boolean): MethodDecorator;
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ResponseModel = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
-
const metadata_constant_1 = require("../constants/metadata.constant");
|
|
6
5
|
const swagger_1 = require("@nestjs/swagger");
|
|
7
|
-
|
|
6
|
+
const metadata_constant_1 = require("../constants/metadata.constant");
|
|
7
|
+
function ResponseModel(responseClass, isArray = false, isAllowEmpty = false) {
|
|
8
8
|
return (0, common_1.applyDecorators)((0, swagger_1.ApiResponse)({ type: responseClass, isArray }), (0, common_1.SetMetadata)(metadata_constant_1.RESPONSE_METADATA_KEY, {
|
|
9
9
|
responseClass,
|
|
10
|
-
isArray
|
|
10
|
+
isArray,
|
|
11
|
+
isAllowEmpty
|
|
11
12
|
}));
|
|
12
13
|
}
|
|
13
14
|
exports.ResponseModel = ResponseModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-model.decorator.js","sourceRoot":"","sources":["../../../libs/decorators/response-model.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"response-model.decorator.js","sourceRoot":"","sources":["../../../libs/decorators/response-model.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAC9D,6CAA8C;AAE9C,sEAAuE;AAEvE,SAAgB,aAAa,CACzB,aAAuC,EACvC,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,KAAK;IAEpB,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAC7C,IAAA,oBAAW,EAAC,yCAAqB,EAAE;QAC/B,aAAa;QACb,OAAO;QACP,YAAY;KACf,CAAC,CACL,CAAC;AACN,CAAC;AAbD,sCAaC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseModels = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const metadata_constant_1 = require("../constants/metadata.constant");
|
|
7
|
+
function ResponseModels(...responseClasses) {
|
|
8
|
+
const metadatas = responseClasses.map((metadata) => {
|
|
9
|
+
const isArray = Array.isArray(metadata);
|
|
10
|
+
const responseClass = isArray ? metadata[0] : metadata;
|
|
11
|
+
const isAllowEmpty = metadata === undefined || metadata === null;
|
|
12
|
+
return { isArray, responseClass, isAllowEmpty };
|
|
13
|
+
});
|
|
14
|
+
const models = metadatas.filter((metadata) => !metadata.isAllowEmpty).map((metadata) => metadata.responseClass);
|
|
15
|
+
return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(...models), (0, swagger_1.ApiOkResponse)({
|
|
16
|
+
schema: { anyOf: (0, swagger_1.refs)(...models) }
|
|
17
|
+
}), (0, common_1.SetMetadata)(metadata_constant_1.RESPONSE_METADATA_KEYS, metadatas));
|
|
18
|
+
}
|
|
19
|
+
exports.ResponseModels = ResponseModels;
|
|
20
|
+
//# sourceMappingURL=response-models.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-models.decorator.js","sourceRoot":"","sources":["../../../libs/decorators/response-models.decorator.ts"],"names":[],"mappings":";;;AACA,2CAA8D;AAC9D,6CAAsE;AACtE,sEAAwE;AAExE,SAAgB,cAAc,CAAC,GAAG,eAAgC;IAC9D,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChH,OAAO,IAAA,wBAAe,EAClB,IAAA,wBAAc,EAAC,GAAG,MAAM,CAAC,EACzB,IAAA,uBAAa,EAAC;QACV,MAAM,EAAE,EAAE,KAAK,EAAE,IAAA,cAAI,EAAC,GAAG,MAAM,CAAC,EAAE;KACrC,CAAC,EACF,IAAA,oBAAW,EAAC,0CAAsB,EAAE,SAAS,CAAC,CACjD,CAAC;AACN,CAAC;AAfD,wCAeC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-response-interceptor.decorator.js","sourceRoot":"","sources":["../../../libs/decorators/use-response-interceptor.decorator.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"use-response-interceptor.decorator.js","sourceRoot":"","sources":["../../../libs/decorators/use-response-interceptor.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAiD;AACjD,+EAA2E;AAE3E,SAAgB,sBAAsB;IAClC,OAAO,IAAA,wBAAe,EAAC,0CAAmB,CAAC,CAAC;AAChD,CAAC;AAFD,wDAEC"}
|
package/index.d.ts
CHANGED
|
@@ -3,3 +3,7 @@ export * from './decorators/response-model.decorator';
|
|
|
3
3
|
export * from './decorators/use-response-interceptor.decorator';
|
|
4
4
|
export * from './exceptions/response-validate.exception';
|
|
5
5
|
export * from './interceptors/response.interceptor';
|
|
6
|
+
export * from './types/response-metadata.type';
|
|
7
|
+
export * from './decorators/response-models.decorator';
|
|
8
|
+
export * from './types/handle-result.type';
|
|
9
|
+
export * from './modules/response.module';
|
package/index.js
CHANGED
|
@@ -19,4 +19,8 @@ __exportStar(require("./decorators/response-model.decorator"), exports);
|
|
|
19
19
|
__exportStar(require("./decorators/use-response-interceptor.decorator"), exports);
|
|
20
20
|
__exportStar(require("./exceptions/response-validate.exception"), exports);
|
|
21
21
|
__exportStar(require("./interceptors/response.interceptor"), exports);
|
|
22
|
+
__exportStar(require("./types/response-metadata.type"), exports);
|
|
23
|
+
__exportStar(require("./decorators/response-models.decorator"), exports);
|
|
24
|
+
__exportStar(require("./types/handle-result.type"), exports);
|
|
25
|
+
__exportStar(require("./modules/response.module"), exports);
|
|
22
26
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,wEAAsD;AACtD,kFAAgE;AAChE,2EAAyD;AACzD,sEAAoD;AACpD,iEAA+C;AAC/C,yEAAuD;AACvD,6DAA2C;AAC3C,4DAA0C"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
+
import { ModuleRef } from '@nestjs/core';
|
|
3
4
|
export declare class ResponseInterceptor implements NestInterceptor {
|
|
5
|
+
private moduleRef;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
private configOption;
|
|
8
|
+
constructor(moduleRef: ModuleRef);
|
|
4
9
|
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
5
|
-
handleResponse(context: ExecutionContext, data: any):
|
|
10
|
+
handleResponse(context: ExecutionContext, data: any): any;
|
|
11
|
+
private excludeByKeys;
|
|
12
|
+
private excludeByKey;
|
|
13
|
+
private handleOneTypeResponse;
|
|
14
|
+
private handleMultiTypeResponse;
|
|
15
|
+
private handleSingleResponse;
|
|
16
|
+
private handleListResponse;
|
|
17
|
+
private handleEmptyResponse;
|
|
18
|
+
private handleNativeValueResponse;
|
|
19
|
+
private getResponseMap;
|
|
20
|
+
private filterResponseMetadatas;
|
|
21
|
+
private getArrayTypeMetadata;
|
|
22
|
+
private getEmptyTypeMetadata;
|
|
23
|
+
private getObjectTypeMetadata;
|
|
6
24
|
}
|
|
@@ -5,53 +5,225 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var ResponseInterceptor_1;
|
|
8
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
13
|
exports.ResponseInterceptor = void 0;
|
|
10
14
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const rxjs_1 = require("rxjs");
|
|
12
15
|
const class_transformer_1 = require("class-transformer");
|
|
13
16
|
const class_validator_1 = require("class-validator");
|
|
14
|
-
const
|
|
17
|
+
const provider_key_constant_1 = require("../constants/provider-key.constant");
|
|
18
|
+
const rxjs_1 = require("rxjs");
|
|
15
19
|
const metadata_constant_1 = require("../constants/metadata.constant");
|
|
16
|
-
|
|
20
|
+
const response_validate_exception_1 = require("../exceptions/response-validate.exception");
|
|
21
|
+
const native_value_response_1 = require("../responses/native-value.response");
|
|
22
|
+
const native_class_response_names_constant_1 = require("./../constants/native-class-response-names.constant");
|
|
23
|
+
const core_1 = require("@nestjs/core");
|
|
24
|
+
let Metadata = null;
|
|
25
|
+
try {
|
|
26
|
+
const grpc = require('@grpc/grpc-js');
|
|
27
|
+
Metadata = grpc.Metadata;
|
|
28
|
+
}
|
|
29
|
+
catch (ex) { }
|
|
30
|
+
let ResponseInterceptor = ResponseInterceptor_1 = class ResponseInterceptor {
|
|
31
|
+
constructor(moduleRef) {
|
|
32
|
+
this.moduleRef = moduleRef;
|
|
33
|
+
this.logger = new common_1.Logger(ResponseInterceptor_1.name);
|
|
34
|
+
this.configOption = this.moduleRef.get(provider_key_constant_1.NESTJS_RESPONSE_CONFIG_OPTIONS, { strict: false });
|
|
35
|
+
}
|
|
17
36
|
intercept(context, next) {
|
|
18
|
-
return next.handle().pipe((0, rxjs_1.map)((data) =>
|
|
37
|
+
return next.handle().pipe((0, rxjs_1.map)((data) => {
|
|
38
|
+
var _a;
|
|
39
|
+
const res = this.handleResponse(context, data);
|
|
40
|
+
return this.excludeByKeys(res, ((_a = this.configOption) === null || _a === void 0 ? void 0 : _a.excludeKeys) || []);
|
|
41
|
+
}));
|
|
19
42
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
handleResponse(context, data) {
|
|
44
|
+
const responseMetadata = Reflect.getMetadata(metadata_constant_1.RESPONSE_METADATA_KEY, context.getHandler());
|
|
45
|
+
const responseMetadatas = Reflect.getMetadata(metadata_constant_1.RESPONSE_METADATA_KEYS, context.getHandler());
|
|
46
|
+
if (responseMetadata) {
|
|
47
|
+
return this.handleMultiTypeResponse(context, data, [responseMetadata]);
|
|
48
|
+
}
|
|
49
|
+
if (responseMetadatas && responseMetadatas.length > 0) {
|
|
50
|
+
return this.handleMultiTypeResponse(context, data, responseMetadatas);
|
|
51
|
+
}
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
excludeByKeys(data, keys) {
|
|
55
|
+
for (const key of keys) {
|
|
56
|
+
data = this.excludeByKey(data, key);
|
|
57
|
+
}
|
|
58
|
+
return data;
|
|
59
|
+
}
|
|
60
|
+
excludeByKey(data, key) {
|
|
61
|
+
for (const prop in data) {
|
|
62
|
+
if (typeof data[prop] === 'object') {
|
|
63
|
+
data[prop] = this.excludeByKey(data[prop], key);
|
|
64
|
+
}
|
|
65
|
+
else if (Array.isArray(data[prop])) {
|
|
66
|
+
data[prop] = data[prop].map((item) => this.excludeByKey(item, key));
|
|
67
|
+
}
|
|
68
|
+
else if (prop === key) {
|
|
69
|
+
delete data[prop];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return data;
|
|
73
|
+
}
|
|
74
|
+
handleOneTypeResponse(context, data, responseMetadata) {
|
|
75
|
+
if (!(0, class_validator_1.isBoolean)(data) && !data) {
|
|
76
|
+
return this.handleEmptyResponse(responseMetadata, data);
|
|
24
77
|
}
|
|
25
78
|
if (responseMetadata.isArray) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
79
|
+
return this.handleListResponse(context, responseMetadata, data);
|
|
80
|
+
}
|
|
81
|
+
return this.handleSingleResponse(responseMetadata, data);
|
|
82
|
+
}
|
|
83
|
+
handleMultiTypeResponse(context, data, responseMetadatas) {
|
|
84
|
+
const results = [];
|
|
85
|
+
const newMetadatas = this.filterResponseMetadatas(responseMetadatas, data);
|
|
86
|
+
for (const metadata of newMetadatas) {
|
|
87
|
+
try {
|
|
88
|
+
const result = this.handleOneTypeResponse(context, data, metadata);
|
|
89
|
+
results.push({ data: result, error: null });
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const newError = error.errors ? error.errors : error;
|
|
93
|
+
results.push({ data: null, error: newError });
|
|
38
94
|
}
|
|
39
|
-
return newData;
|
|
40
95
|
}
|
|
41
|
-
|
|
42
|
-
|
|
96
|
+
const resultValid = results.find((result) => result.error === null);
|
|
97
|
+
if (resultValid) {
|
|
98
|
+
return resultValid.data;
|
|
99
|
+
}
|
|
100
|
+
const errors = results.map((result) => result.error);
|
|
101
|
+
this.logger.error(errors);
|
|
102
|
+
throw new response_validate_exception_1.ResponseValidateException(errors);
|
|
103
|
+
}
|
|
104
|
+
handleSingleResponse(responseMetadata, data) {
|
|
105
|
+
if (native_class_response_names_constant_1.NativeClassResponseNamesConstant.includes(responseMetadata.responseClass.name)) {
|
|
106
|
+
return this.handleNativeValueResponse(responseMetadata, data);
|
|
107
|
+
}
|
|
108
|
+
const newData = (0, class_transformer_1.plainToInstance)(responseMetadata.responseClass, data);
|
|
109
|
+
const errors = (0, class_validator_1.validateSync)(newData, {
|
|
43
110
|
whitelist: true,
|
|
44
111
|
stopAtFirstError: true
|
|
45
112
|
});
|
|
46
113
|
if (errors.length) {
|
|
47
|
-
console.error(errors);
|
|
48
114
|
throw new response_validate_exception_1.ResponseValidateException(errors);
|
|
49
115
|
}
|
|
116
|
+
return (0, class_transformer_1.plainToInstance)(responseMetadata.responseClass, data);
|
|
117
|
+
}
|
|
118
|
+
handleListResponse(context, responseMetadata, data) {
|
|
119
|
+
const newData = [];
|
|
120
|
+
for (const item of data) {
|
|
121
|
+
const newItem = this.handleSingleResponse(responseMetadata, item);
|
|
122
|
+
newData.push(newItem);
|
|
123
|
+
}
|
|
124
|
+
if (Metadata && context.switchToRpc().getContext() instanceof Metadata) {
|
|
125
|
+
return { items: newData, grpcArray: true };
|
|
126
|
+
}
|
|
50
127
|
return newData;
|
|
51
128
|
}
|
|
129
|
+
handleEmptyResponse(responseMetadata, data) {
|
|
130
|
+
if (responseMetadata.isAllowEmpty) {
|
|
131
|
+
return data;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
throw new response_validate_exception_1.ResponseValidateException([
|
|
135
|
+
{
|
|
136
|
+
target: data,
|
|
137
|
+
children: [],
|
|
138
|
+
constraints: {
|
|
139
|
+
nullValue: 'an null value was passed to the validate function'
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
]);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
handleNativeValueResponse(responseMetadata, data) {
|
|
146
|
+
const responseMap = this.getResponseMap(responseMetadata, data);
|
|
147
|
+
const newData = (0, class_transformer_1.plainToInstance)(native_value_response_1.NativeValueResponse, responseMap);
|
|
148
|
+
const errors = (0, class_validator_1.validateSync)(newData, {
|
|
149
|
+
whitelist: true,
|
|
150
|
+
stopAtFirstError: true
|
|
151
|
+
});
|
|
152
|
+
if (errors.length) {
|
|
153
|
+
throw new response_validate_exception_1.ResponseValidateException(errors);
|
|
154
|
+
}
|
|
155
|
+
return data;
|
|
156
|
+
}
|
|
157
|
+
getResponseMap(responseMetadata, data) {
|
|
158
|
+
switch (responseMetadata.responseClass.name) {
|
|
159
|
+
case 'Boolean':
|
|
160
|
+
return { ['boolean']: data };
|
|
161
|
+
case 'String':
|
|
162
|
+
return { ['string']: data };
|
|
163
|
+
case 'Number':
|
|
164
|
+
return { ['number']: data };
|
|
165
|
+
default:
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
filterResponseMetadatas(responseMetadatas, data) {
|
|
170
|
+
if (Array.isArray(data)) {
|
|
171
|
+
return this.getArrayTypeMetadata(responseMetadatas, data);
|
|
172
|
+
}
|
|
173
|
+
if (!(0, class_validator_1.isBoolean)(data) && !data) {
|
|
174
|
+
return this.getEmptyTypeMetadata(responseMetadatas, data);
|
|
175
|
+
}
|
|
176
|
+
return this.getObjectTypeMetadata(responseMetadatas, data);
|
|
177
|
+
}
|
|
178
|
+
getArrayTypeMetadata(responseMetadatas, data) {
|
|
179
|
+
const arrayTypes = responseMetadatas.filter((metadata) => metadata.isArray);
|
|
180
|
+
if (arrayTypes.length == 0) {
|
|
181
|
+
throw new response_validate_exception_1.ResponseValidateException([
|
|
182
|
+
{
|
|
183
|
+
target: data,
|
|
184
|
+
children: [],
|
|
185
|
+
constraints: {
|
|
186
|
+
arrayValue: 'an array value was passed to the validate function'
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
191
|
+
return arrayTypes;
|
|
192
|
+
}
|
|
193
|
+
getEmptyTypeMetadata(responseMetadatas, data) {
|
|
194
|
+
const emptyType = responseMetadatas.find((metadata) => metadata.isAllowEmpty);
|
|
195
|
+
if (emptyType) {
|
|
196
|
+
return [emptyType];
|
|
197
|
+
}
|
|
198
|
+
throw new response_validate_exception_1.ResponseValidateException([
|
|
199
|
+
{
|
|
200
|
+
target: data,
|
|
201
|
+
children: [],
|
|
202
|
+
constraints: {
|
|
203
|
+
arrayValue: 'an empty value was passed to the validate function'
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
]);
|
|
207
|
+
}
|
|
208
|
+
getObjectTypeMetadata(responseMetadatas, data) {
|
|
209
|
+
const objectTypes = responseMetadatas.filter((metadata) => !metadata.isArray);
|
|
210
|
+
if (objectTypes.length == 0) {
|
|
211
|
+
throw new response_validate_exception_1.ResponseValidateException([
|
|
212
|
+
{
|
|
213
|
+
target: data,
|
|
214
|
+
children: [],
|
|
215
|
+
constraints: {
|
|
216
|
+
arrayValue: 'an object value was passed to the validate function'
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
]);
|
|
220
|
+
}
|
|
221
|
+
return objectTypes;
|
|
222
|
+
}
|
|
52
223
|
};
|
|
53
|
-
ResponseInterceptor = __decorate([
|
|
54
|
-
(0, common_1.Injectable)()
|
|
55
|
-
], ResponseInterceptor);
|
|
56
224
|
exports.ResponseInterceptor = ResponseInterceptor;
|
|
225
|
+
exports.ResponseInterceptor = ResponseInterceptor = ResponseInterceptor_1 = __decorate([
|
|
226
|
+
(0, common_1.Injectable)(),
|
|
227
|
+
__metadata("design:paramtypes", [core_1.ModuleRef])
|
|
228
|
+
], ResponseInterceptor);
|
|
57
229
|
//# sourceMappingURL=response.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.interceptor.js","sourceRoot":"","sources":["../../../libs/interceptors/response.interceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"response.interceptor.js","sourceRoot":"","sources":["../../../libs/interceptors/response.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var ResponseModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ResponseModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const core_1 = require("@nestjs/core");
|
|
13
|
+
const response_interceptor_1 = require("../interceptors/response.interceptor");
|
|
14
|
+
const provider_key_constant_1 = require("../constants/provider-key.constant");
|
|
15
|
+
let ResponseModule = ResponseModule_1 = class ResponseModule {
|
|
16
|
+
static forRoot(option) {
|
|
17
|
+
return {
|
|
18
|
+
module: ResponseModule_1,
|
|
19
|
+
providers: [
|
|
20
|
+
{
|
|
21
|
+
provide: provider_key_constant_1.NESTJS_RESPONSE_CONFIG_OPTIONS,
|
|
22
|
+
useValue: option
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
provide: core_1.APP_INTERCEPTOR,
|
|
26
|
+
useClass: response_interceptor_1.ResponseInterceptor
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
exports: []
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.ResponseModule = ResponseModule;
|
|
34
|
+
exports.ResponseModule = ResponseModule = ResponseModule_1 = __decorate([
|
|
35
|
+
(0, common_1.Module)({})
|
|
36
|
+
], ResponseModule);
|
|
37
|
+
//# sourceMappingURL=response.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.module.js","sourceRoot":"","sources":["../../../libs/modules/response.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,uCAA+C;AAC/C,+EAA2E;AAC3E,8EAAoF;AAI7E,IAAM,cAAc,sBAApB,MAAM,cAAc;IACvB,MAAM,CAAC,OAAO,CAAC,MAAqB;QAChC,OAAO;YACH,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,sDAA8B;oBACvC,QAAQ,EAAE,MAAM;iBACnB;gBACD;oBACI,OAAO,EAAE,sBAAe;oBACxB,QAAQ,EAAE,0CAAmB;iBAChC;aACJ;YACD,OAAO,EAAE,EAAE;SACd,CAAC;IACN,CAAC;CACJ,CAAA;AAjBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,cAAc,CAiB1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hodfords/nestjs-response",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"prebuild": "rimraf dist",
|
|
13
13
|
"build": "nest build",
|
|
14
|
+
"postbuild": "cp package.json dist/libs/package.json",
|
|
14
15
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"libs/**/*.ts\"",
|
|
15
16
|
"start": "nest start",
|
|
16
17
|
"start:dev": "npm run prebuild && nest start --watch",
|
|
@@ -26,43 +27,46 @@
|
|
|
26
27
|
"prepare": "is-ci || husky install",
|
|
27
28
|
"version": "auto-changelog && git add CHANGELOG.md",
|
|
28
29
|
"release:patch": "git add CHANGELOG.md && npm version patch --tag-version-prefix='' -f -m 'chore: release to %s'",
|
|
29
|
-
"release:push": "git push --no-verify && git push --tags --no-verify"
|
|
30
|
+
"release:push": "git push --no-verify && git push --tags --no-verify",
|
|
31
|
+
"lint-staged": "lint-staged",
|
|
32
|
+
"cspell": "cspell"
|
|
30
33
|
},
|
|
31
34
|
"devDependencies": {
|
|
32
|
-
"@nestjs/cli": "
|
|
33
|
-
"@nestjs/common": "
|
|
34
|
-
"@nestjs/core": "
|
|
35
|
-
"@nestjs/platform-express": "
|
|
36
|
-
"@nestjs/
|
|
37
|
-
"@nestjs/
|
|
38
|
-
"@nestjs/testing": "
|
|
39
|
-
"@types/express": "4.17.
|
|
40
|
-
"@types/jest": "
|
|
41
|
-
"@types/node": "
|
|
42
|
-
"@types/supertest": "2.0.
|
|
43
|
-
"@typescript-eslint/eslint-plugin": "
|
|
44
|
-
"@typescript-eslint/parser": "
|
|
35
|
+
"@nestjs/cli": "10.3.0",
|
|
36
|
+
"@nestjs/common": "10.3.1",
|
|
37
|
+
"@nestjs/core": "10.3.1",
|
|
38
|
+
"@nestjs/platform-express": "10.3.1",
|
|
39
|
+
"@nestjs/schematics": "10.1.0",
|
|
40
|
+
"@nestjs/swagger": "7.2.0",
|
|
41
|
+
"@nestjs/testing": "10.3.1",
|
|
42
|
+
"@types/express": "4.17.21",
|
|
43
|
+
"@types/jest": "29.5.11",
|
|
44
|
+
"@types/node": "20.11.10",
|
|
45
|
+
"@types/supertest": "2.0.16",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "6.20.0",
|
|
47
|
+
"@typescript-eslint/parser": "6.20.0",
|
|
45
48
|
"auto-changelog": "2.4.0",
|
|
46
|
-
"class-transformer": "
|
|
47
|
-
"class-validator": "
|
|
48
|
-
"
|
|
49
|
-
"eslint
|
|
50
|
-
"eslint-
|
|
51
|
-
"
|
|
49
|
+
"class-transformer": "0.5.1",
|
|
50
|
+
"class-validator": "0.14.0",
|
|
51
|
+
"cspell": "8.3.2",
|
|
52
|
+
"eslint": "8.56.0",
|
|
53
|
+
"eslint-config-prettier": "9.1.0",
|
|
54
|
+
"eslint-plugin-prettier": "5.1.3",
|
|
55
|
+
"husky": "8.0.3",
|
|
52
56
|
"is-ci": "3.0.1",
|
|
53
|
-
"jest": "
|
|
54
|
-
"lint-staged": "
|
|
55
|
-
"prettier": "2.
|
|
57
|
+
"jest": "29.7.0",
|
|
58
|
+
"lint-staged": "15.2.0",
|
|
59
|
+
"prettier": "3.2.4",
|
|
56
60
|
"reflect-metadata": "0.1.13",
|
|
57
|
-
"rimraf": "
|
|
58
|
-
"rxjs": "7.
|
|
61
|
+
"rimraf": "5.0.5",
|
|
62
|
+
"rxjs": "7.8.1",
|
|
59
63
|
"source-map-support": "0.5.21",
|
|
60
|
-
"supertest": "6.
|
|
61
|
-
"ts-jest": "
|
|
62
|
-
"ts-loader": "9.
|
|
63
|
-
"ts-node": "10.
|
|
64
|
-
"tsconfig-paths": "
|
|
65
|
-
"typescript": "
|
|
64
|
+
"supertest": "6.3.4",
|
|
65
|
+
"ts-jest": "29.1.2",
|
|
66
|
+
"ts-loader": "9.5.1",
|
|
67
|
+
"ts-node": "10.9.2",
|
|
68
|
+
"tsconfig-paths": "4.2.0",
|
|
69
|
+
"typescript": "5.3.3"
|
|
66
70
|
},
|
|
67
71
|
"jest": {
|
|
68
72
|
"moduleFileExtensions": [
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.NativeValueResponse = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class NativeValueResponse {
|
|
15
|
+
}
|
|
16
|
+
exports.NativeValueResponse = NativeValueResponse;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsOptional)(),
|
|
19
|
+
(0, class_validator_1.IsString)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], NativeValueResponse.prototype, "string", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, class_validator_1.IsNumber)(),
|
|
25
|
+
__metadata("design:type", Number)
|
|
26
|
+
], NativeValueResponse.prototype, "number", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
|
+
(0, class_validator_1.IsBoolean)(),
|
|
30
|
+
__metadata("design:type", Boolean)
|
|
31
|
+
], NativeValueResponse.prototype, "boolean", void 0);
|
|
32
|
+
//# sourceMappingURL=native-value.response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-value.response.js","sourceRoot":"","sources":["../../../libs/responses/native-value.response.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA4E;AAE5E,MAAa,mBAAmB;CAY/B;AAZD,kDAYC;AATG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACI;AAIf;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACI;AAIf;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;oDACK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-option.type.js","sourceRoot":"","sources":["../../../libs/types/config-option.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-result.type.js","sourceRoot":"","sources":["../../../libs/types/handle-result.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-metadata.type.js","sourceRoot":"","sources":["../../../libs/types/response-metadata.type.ts"],"names":[],"mappings":""}
|