@tc-libs/response 0.9.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 +11 -0
- package/package.json +11 -0
- package/src/constants/index.d.ts +1 -0
- package/src/constants/index.js +5 -0
- package/src/constants/index.js.map +1 -0
- package/src/constants/response.constant.d.ts +5 -0
- package/src/constants/response.constant.js +9 -0
- package/src/constants/response.constant.js.map +1 -0
- package/src/decorators/index.d.ts +1 -0
- package/src/decorators/index.js +5 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/response.decorator.d.ts +4 -0
- package/src/decorators/response.decorator.js +36 -0
- package/src/decorators/response.decorator.js.map +1 -0
- package/src/index.d.ts +4 -0
- package/src/index.js +8 -0
- package/src/index.js.map +1 -0
- package/src/interceptors/index.d.ts +3 -0
- package/src/interceptors/index.js +7 -0
- package/src/interceptors/index.js.map +1 -0
- package/src/interceptors/response.custom-headers.interceptor.d.ts +5 -0
- package/src/interceptors/response.custom-headers.interceptor.js +28 -0
- package/src/interceptors/response.custom-headers.interceptor.js.map +1 -0
- package/src/interceptors/response.default.interceptor.d.ts +11 -0
- package/src/interceptors/response.default.interceptor.js +85 -0
- package/src/interceptors/response.default.interceptor.js.map +1 -0
- package/src/interceptors/response.excel.interceptor.d.ts +0 -0
- package/src/interceptors/response.excel.interceptor.js +87 -0
- package/src/interceptors/response.excel.interceptor.js.map +1 -0
- package/src/interceptors/response.paging.interceptor.d.ts +11 -0
- package/src/interceptors/response.paging.interceptor.js +123 -0
- package/src/interceptors/response.paging.interceptor.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.js +5 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/response.interface.d.ts +37 -0
- package/src/interfaces/response.interface.js +3 -0
- package/src/interfaces/response.interface.js.map +1 -0
- package/src/middleware/index.d.ts +1 -0
- package/src/middleware/index.js +5 -0
- package/src/middleware/index.js.map +1 -0
- package/src/middleware/response.middleware.module.d.ts +4 -0
- package/src/middleware/response.middleware.module.js +16 -0
- package/src/middleware/response.middleware.module.js.map +1 -0
- package/src/middleware/time/response.time.middleware.d.ts +5 -0
- package/src/middleware/time/response.time.middleware.js +16 -0
- package/src/middleware/time/response.time.middleware.js.map +1 -0
- package/src/response.module.d.ts +2 -0
- package/src/response.module.js +24 -0
- package/src/response.module.js.map +1 -0
- package/src/serializations/index.d.ts +3 -0
- package/src/serializations/index.js +7 -0
- package/src/serializations/index.js.map +1 -0
- package/src/serializations/response.default.serialization.d.ts +17 -0
- package/src/serializations/response.default.serialization.js +62 -0
- package/src/serializations/response.default.serialization.js.map +1 -0
- package/src/serializations/response.id.serialization.d.ts +3 -0
- package/src/serializations/response.id.serialization.js +19 -0
- package/src/serializations/response.id.serialization.js.map +1 -0
- package/src/serializations/response.paging.serialization.d.ts +22 -0
- package/src/serializations/response.paging.serialization.js +59 -0
- package/src/serializations/response.paging.serialization.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './response.constant';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/constants/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const RESPONSE_SERIALIZATION_META_KEY = "ResponseSerializationMetaKey";
|
|
2
|
+
export declare const RESPONSE_SERIALIZATION_OPTIONS_META_KEY = "class_serializer:options";
|
|
3
|
+
export declare const RESPONSE_MESSAGE_PROPERTIES_META_KEY = "ResponseSerializationPropertiesMetaKey";
|
|
4
|
+
export declare const RESPONSE_MESSAGE_PATH_META_KEY = "ResponseMessagePathMetaKey";
|
|
5
|
+
export declare const RESPONSE_EXCEL_TYPE_META_KEY = "ResponseExcelTypeMetaKey";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RESPONSE_EXCEL_TYPE_META_KEY = exports.RESPONSE_MESSAGE_PATH_META_KEY = exports.RESPONSE_MESSAGE_PROPERTIES_META_KEY = exports.RESPONSE_SERIALIZATION_OPTIONS_META_KEY = exports.RESPONSE_SERIALIZATION_META_KEY = void 0;
|
|
4
|
+
exports.RESPONSE_SERIALIZATION_META_KEY = 'ResponseSerializationMetaKey';
|
|
5
|
+
exports.RESPONSE_SERIALIZATION_OPTIONS_META_KEY = 'class_serializer:options';
|
|
6
|
+
exports.RESPONSE_MESSAGE_PROPERTIES_META_KEY = 'ResponseSerializationPropertiesMetaKey';
|
|
7
|
+
exports.RESPONSE_MESSAGE_PATH_META_KEY = 'ResponseMessagePathMetaKey';
|
|
8
|
+
exports.RESPONSE_EXCEL_TYPE_META_KEY = 'ResponseExcelTypeMetaKey';
|
|
9
|
+
//# sourceMappingURL=response.constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.constant.js","sourceRoot":"","sources":["../../../../../packages/response/src/constants/response.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,+BAA+B,GAAG,8BAA8B,CAAC;AACjE,QAAA,uCAAuC,GAClD,0BAA0B,CAAC;AAChB,QAAA,oCAAoC,GAC/C,wCAAwC,CAAC;AAC9B,QAAA,8BAA8B,GAAG,4BAA4B,CAAC;AAC9D,QAAA,4BAA4B,GAAG,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './response.decorator';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IResponseOptions, IResponsePagingOptions } from '../interfaces';
|
|
2
|
+
export declare function Response<T>(messagePath: string, options?: IResponseOptions<T>): MethodDecorator;
|
|
3
|
+
export declare function ResponsePaging<T>(messagePath: string, options?: IResponsePagingOptions<T>): MethodDecorator;
|
|
4
|
+
export declare const ResponseSerializationOptions: (options: import("@nestjs/common").ClassSerializerContextOptions) => import("@nestjs/common").CustomDecorator<string>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseSerializationOptions = void 0;
|
|
4
|
+
exports.Response = Response;
|
|
5
|
+
exports.ResponsePaging = ResponsePaging;
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
const response_default_interceptor_1 = require("../interceptors/response.default.interceptor");
|
|
9
|
+
const response_paging_interceptor_1 = require("../interceptors/response.paging.interceptor");
|
|
10
|
+
function Response(messagePath, options) {
|
|
11
|
+
return (0, common_1.applyDecorators)((0, common_1.UseInterceptors)((response_default_interceptor_1.ResponseDefaultInterceptor)), (0, common_1.SetMetadata)(constants_1.RESPONSE_MESSAGE_PATH_META_KEY, messagePath), (0, common_1.SetMetadata)(constants_1.RESPONSE_SERIALIZATION_META_KEY, options ? options.serialization : undefined), (0, common_1.SetMetadata)(constants_1.RESPONSE_MESSAGE_PROPERTIES_META_KEY, options ? options.messageProperties : undefined));
|
|
12
|
+
}
|
|
13
|
+
// export function ResponseExcel(
|
|
14
|
+
// options?: IResponseExcelOptions<void>,
|
|
15
|
+
// ): MethodDecorator {
|
|
16
|
+
// return applyDecorators(
|
|
17
|
+
// UseInterceptors(ResponseExcelInterceptor),
|
|
18
|
+
// SetMetadata(
|
|
19
|
+
// RESPONSE_SERIALIZATION_META_KEY,
|
|
20
|
+
// options ? options.serialization : undefined,
|
|
21
|
+
// ),
|
|
22
|
+
// SetMetadata(
|
|
23
|
+
// RESPONSE_EXCEL_TYPE_META_KEY,
|
|
24
|
+
// options ? options.fileType : ENUM_TABLE_FILE_TYPE.CSV,
|
|
25
|
+
// ),
|
|
26
|
+
// SetMetadata(
|
|
27
|
+
// RESPONSE_MESSAGE_PROPERTIES_META_KEY,
|
|
28
|
+
// options ? options.messageProperties : undefined,
|
|
29
|
+
// ),
|
|
30
|
+
// );
|
|
31
|
+
// }
|
|
32
|
+
function ResponsePaging(messagePath, options) {
|
|
33
|
+
return (0, common_1.applyDecorators)((0, common_1.UseInterceptors)((response_paging_interceptor_1.ResponsePagingInterceptor)), (0, common_1.SetMetadata)(constants_1.RESPONSE_MESSAGE_PATH_META_KEY, messagePath), (0, common_1.SetMetadata)(constants_1.RESPONSE_SERIALIZATION_META_KEY, options ? options.serialization : undefined), (0, common_1.SetMetadata)(constants_1.RESPONSE_MESSAGE_PROPERTIES_META_KEY, options ? options.messageProperties : undefined));
|
|
34
|
+
}
|
|
35
|
+
exports.ResponseSerializationOptions = common_1.SerializeOptions;
|
|
36
|
+
//# sourceMappingURL=response.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.decorator.js","sourceRoot":"","sources":["../../../../../packages/response/src/decorators/response.decorator.ts"],"names":[],"mappings":";;;AAeA,4BAgBC;AAsBD,wCAgBC;AArED,2CAKwB;AACxB,4CAIsB;AACtB,+FAA0F;AAC1F,6FAAwF;AAGxF,SAAgB,QAAQ,CACtB,WAAmB,EACnB,OAA6B;IAE7B,OAAO,IAAA,wBAAe,EACpB,IAAA,wBAAe,EAAC,CAAA,yDAA6B,CAAA,CAAC,EAC9C,IAAA,oBAAW,EAAC,0CAA8B,EAAE,WAAW,CAAC,EACxD,IAAA,oBAAW,EACT,2CAA+B,EAC/B,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAC5C,EACD,IAAA,oBAAW,EACT,gDAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAChD,CACF,CAAC;AACJ,CAAC;AAED,iCAAiC;AACjC,2CAA2C;AAC3C,uBAAuB;AACvB,4BAA4B;AAC5B,iDAAiD;AACjD,mBAAmB;AACnB,yCAAyC;AACzC,qDAAqD;AACrD,SAAS;AACT,mBAAmB;AACnB,sCAAsC;AACtC,+DAA+D;AAC/D,SAAS;AACT,mBAAmB;AACnB,8CAA8C;AAC9C,yDAAyD;AACzD,SAAS;AACT,OAAO;AACP,IAAI;AAEJ,SAAgB,cAAc,CAC5B,WAAmB,EACnB,OAAmC;IAEnC,OAAO,IAAA,wBAAe,EACpB,IAAA,wBAAe,EAAC,CAAA,uDAA4B,CAAA,CAAC,EAC7C,IAAA,oBAAW,EAAC,0CAA8B,EAAE,WAAW,CAAC,EACxD,IAAA,oBAAW,EACT,2CAA+B,EAC/B,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAC5C,EACD,IAAA,oBAAW,EACT,gDAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAChD,CACF,CAAC;AACJ,CAAC;AAEY,QAAA,4BAA4B,GAAG,yBAAgB,CAAC"}
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./response.module"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./decorators"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./serializations"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/response/src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,uDAA6B;AAC7B,2DAAiC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./response.custom-headers.interceptor"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./response.default.interceptor"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./response.paging.interceptor"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/interceptors/index.ts"],"names":[],"mappings":";;;AAAA,gFAAsD;AACtD,yEAA+C;AAC/C,wEAA8C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export declare class ResponseCustomHeadersInterceptor implements NestInterceptor<Promise<any>> {
|
|
4
|
+
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<Promise<any> | string>>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseCustomHeadersInterceptor = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
// only for response success and error in controller
|
|
7
|
+
let ResponseCustomHeadersInterceptor = class ResponseCustomHeadersInterceptor {
|
|
8
|
+
async intercept(context, next) {
|
|
9
|
+
if (context.getType() === 'http') {
|
|
10
|
+
const ctx = context.switchToHttp();
|
|
11
|
+
const responseExpress = ctx.getResponse();
|
|
12
|
+
const request = ctx.getRequest();
|
|
13
|
+
responseExpress.setHeader('x-custom-lang', request.__customLang);
|
|
14
|
+
responseExpress.setHeader('x-timestamp', request.__xTimestamp ?? request.__timestamp);
|
|
15
|
+
responseExpress.setHeader('x-timezone', request.__timezone);
|
|
16
|
+
responseExpress.setHeader('x-request-id', request.__id);
|
|
17
|
+
responseExpress.setHeader('x-version', request.__version);
|
|
18
|
+
responseExpress.setHeader('x-repo-version', request.__repoVersion);
|
|
19
|
+
return next.handle();
|
|
20
|
+
}
|
|
21
|
+
return next.handle();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.ResponseCustomHeadersInterceptor = ResponseCustomHeadersInterceptor;
|
|
25
|
+
exports.ResponseCustomHeadersInterceptor = ResponseCustomHeadersInterceptor = tslib_1.__decorate([
|
|
26
|
+
(0, common_1.Injectable)()
|
|
27
|
+
], ResponseCustomHeadersInterceptor);
|
|
28
|
+
//# sourceMappingURL=response.custom-headers.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.custom-headers.interceptor.js","sourceRoot":"","sources":["../../../../../packages/response/src/interceptors/response.custom-headers.interceptor.ts"],"names":[],"mappings":";;;;AAAA,2CAKwB;AAMxB,oDAAoD;AAE7C,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAG3C,KAAK,CAAC,SAAS,CACb,OAAyB,EACzB,IAAiB;QAEjB,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,GAAG,GAAsB,OAAO,CAAC,YAAY,EAAE,CAAC;YACtD,MAAM,eAAe,GAAa,GAAG,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,OAAO,GAAgB,GAAG,CAAC,UAAU,EAAE,CAAC;YAE9C,eAAe,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YACjE,eAAe,CAAC,SAAS,CACvB,aAAa,EACb,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW,CAC5C,CAAC;YACF,eAAe,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5D,eAAe,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxD,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1D,eAAe,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAEnE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AA3BY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,mBAAU,GAAE;GACA,gCAAgC,CA2B5C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Reflector } from '@nestjs/core';
|
|
4
|
+
import { MessageService } from '@tc-libs/message';
|
|
5
|
+
import { ResponseDefaultSerialization } from '../serializations/response.default.serialization';
|
|
6
|
+
export declare class ResponseDefaultInterceptor<T> implements NestInterceptor<Promise<T>> {
|
|
7
|
+
private readonly reflector;
|
|
8
|
+
private readonly messageService;
|
|
9
|
+
constructor(reflector: Reflector, messageService: MessageService);
|
|
10
|
+
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<Promise<ResponseDefaultSerialization>>>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseDefaultInterceptor = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const operators_1 = require("rxjs/operators");
|
|
7
|
+
const core_1 = require("@nestjs/core");
|
|
8
|
+
const class_transformer_1 = require("class-transformer");
|
|
9
|
+
const message_1 = require("@tc-libs/message");
|
|
10
|
+
const constants_1 = require("../constants");
|
|
11
|
+
let ResponseDefaultInterceptor = class ResponseDefaultInterceptor {
|
|
12
|
+
constructor(reflector, messageService) {
|
|
13
|
+
this.reflector = reflector;
|
|
14
|
+
this.messageService = messageService;
|
|
15
|
+
}
|
|
16
|
+
async intercept(context, next) {
|
|
17
|
+
if (context.getType() === 'http') {
|
|
18
|
+
return next.handle().pipe((0, operators_1.map)(async (res) => {
|
|
19
|
+
const ctx = context.switchToHttp();
|
|
20
|
+
const response = ctx.getResponse();
|
|
21
|
+
const request = ctx.getRequest();
|
|
22
|
+
let messagePath = this.reflector.get(constants_1.RESPONSE_MESSAGE_PATH_META_KEY, context.getHandler());
|
|
23
|
+
const classSerialization = this.reflector.get(constants_1.RESPONSE_SERIALIZATION_META_KEY, context.getHandler());
|
|
24
|
+
const classSerializationOptions = this.reflector.get(constants_1.RESPONSE_SERIALIZATION_OPTIONS_META_KEY, context.getHandler());
|
|
25
|
+
let messageProperties = this.reflector.get(constants_1.RESPONSE_MESSAGE_PROPERTIES_META_KEY, context.getHandler());
|
|
26
|
+
// metadata
|
|
27
|
+
const __customLang = request.__customLang;
|
|
28
|
+
const __requestId = request.__id;
|
|
29
|
+
const __path = request.path;
|
|
30
|
+
const __timestamp = request.__xTimestamp ?? request.__timestamp;
|
|
31
|
+
const __timezone = request.__timezone;
|
|
32
|
+
const __version = request.__version;
|
|
33
|
+
const __repoVersion = request.__repoVersion;
|
|
34
|
+
// set default response
|
|
35
|
+
let statusCode = response.statusCode;
|
|
36
|
+
let data = undefined;
|
|
37
|
+
let metadata = {
|
|
38
|
+
languages: __customLang,
|
|
39
|
+
timestamp: __timestamp,
|
|
40
|
+
timezone: __timezone,
|
|
41
|
+
requestId: __requestId,
|
|
42
|
+
path: __path,
|
|
43
|
+
version: __version,
|
|
44
|
+
repoVersion: __repoVersion,
|
|
45
|
+
};
|
|
46
|
+
// response
|
|
47
|
+
const responseData = (await res);
|
|
48
|
+
if (responseData) {
|
|
49
|
+
const { _metadata } = responseData;
|
|
50
|
+
data = responseData.data;
|
|
51
|
+
if (classSerialization) {
|
|
52
|
+
data = (0, class_transformer_1.plainToInstance)(classSerialization, data, classSerializationOptions);
|
|
53
|
+
}
|
|
54
|
+
statusCode = _metadata?.customProperty?.statusCode ?? statusCode;
|
|
55
|
+
messagePath = _metadata?.customProperty?.message ?? messagePath;
|
|
56
|
+
messageProperties =
|
|
57
|
+
_metadata?.customProperty?.messageProperties ?? messageProperties;
|
|
58
|
+
delete _metadata?.customProperty;
|
|
59
|
+
metadata = {
|
|
60
|
+
...metadata,
|
|
61
|
+
..._metadata,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const message = await this.messageService.get(messagePath, {
|
|
65
|
+
customLanguages: __customLang,
|
|
66
|
+
properties: messageProperties,
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
statusCode,
|
|
70
|
+
message,
|
|
71
|
+
_metadata: metadata,
|
|
72
|
+
data,
|
|
73
|
+
};
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
return next.handle();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
exports.ResponseDefaultInterceptor = ResponseDefaultInterceptor;
|
|
80
|
+
exports.ResponseDefaultInterceptor = ResponseDefaultInterceptor = tslib_1.__decorate([
|
|
81
|
+
(0, common_1.Injectable)(),
|
|
82
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Reflector,
|
|
83
|
+
message_1.MessageService])
|
|
84
|
+
], ResponseDefaultInterceptor);
|
|
85
|
+
//# sourceMappingURL=response.default.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.default.interceptor.js","sourceRoot":"","sources":["../../../../../packages/response/src/interceptors/response.default.interceptor.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import {
|
|
3
|
+
// Injectable,
|
|
4
|
+
// NestInterceptor,
|
|
5
|
+
// ExecutionContext,
|
|
6
|
+
// CallHandler,
|
|
7
|
+
// StreamableFile,
|
|
8
|
+
// } from '@nestjs/common';
|
|
9
|
+
// import { Observable } from 'rxjs';
|
|
10
|
+
// import { map } from 'rxjs/operators';
|
|
11
|
+
// import { HttpArgumentsHost } from '@nestjs/common/interfaces';
|
|
12
|
+
// import { Response } from 'express';
|
|
13
|
+
// import {
|
|
14
|
+
// ClassConstructor,
|
|
15
|
+
// ClassTransformOptions,
|
|
16
|
+
// plainToInstance,
|
|
17
|
+
// } from 'class-transformer';
|
|
18
|
+
// import { Reflector } from '@nestjs/core';
|
|
19
|
+
// import { DateService } from '@tc-libs/date';
|
|
20
|
+
// @Injectable()
|
|
21
|
+
// export class ResponseExcelInterceptor implements NestInterceptor<Promise<any>> {
|
|
22
|
+
// constructor(
|
|
23
|
+
// private readonly reflector: Reflector,
|
|
24
|
+
// private readonly helperFileService: FileService,
|
|
25
|
+
// private readonly helperDateService: DateService,
|
|
26
|
+
// ) {}
|
|
27
|
+
// async intercept(
|
|
28
|
+
// context: ExecutionContext,
|
|
29
|
+
// next: CallHandler,
|
|
30
|
+
// ): Promise<Observable<Promise<Record<string, any>>>> {
|
|
31
|
+
// const excelType: ENUM_HELPER_FILE_TYPE =
|
|
32
|
+
// this.reflector.get<ENUM_HELPER_FILE_TYPE>(
|
|
33
|
+
// RESPONSE_EXCEL_TYPE_META_KEY,
|
|
34
|
+
// context.getHandler(),
|
|
35
|
+
// );
|
|
36
|
+
// if (context.getType() === 'http') {
|
|
37
|
+
// return next.handle().pipe(
|
|
38
|
+
// map(async (responseData: Promise<IResponseExcel>) => {
|
|
39
|
+
// const ctx: HttpArgumentsHost = context.switchToHttp();
|
|
40
|
+
// const responseExpress: Response = ctx.getResponse();
|
|
41
|
+
// const classSerialization: ClassConstructor<any> = this.reflector.get<
|
|
42
|
+
// ClassConstructor<any>
|
|
43
|
+
// >(RESPONSE_SERIALIZATION_META_KEY, context.getHandler());
|
|
44
|
+
// const classSerializationOptions: ClassTransformOptions =
|
|
45
|
+
// this.reflector.get<ClassTransformOptions>(
|
|
46
|
+
// RESPONSE_SERIALIZATION_OPTIONS_META_KEY,
|
|
47
|
+
// context.getHandler(),
|
|
48
|
+
// );
|
|
49
|
+
// // response
|
|
50
|
+
// const response = (await responseData) as IResponseExcel;
|
|
51
|
+
// let serialization = response.data;
|
|
52
|
+
// if (classSerialization) {
|
|
53
|
+
// serialization = plainToInstance(
|
|
54
|
+
// classSerialization,
|
|
55
|
+
// serialization,
|
|
56
|
+
// classSerializationOptions,
|
|
57
|
+
// );
|
|
58
|
+
// }
|
|
59
|
+
// // create excel
|
|
60
|
+
// const workbook: WorkBook =
|
|
61
|
+
// this.helperFileService.createExcelWorkbook(serialization);
|
|
62
|
+
// const excel: Buffer = this.helperFileService.writeExcelToBuffer(
|
|
63
|
+
// workbook,
|
|
64
|
+
// {
|
|
65
|
+
// type: excelType,
|
|
66
|
+
// },
|
|
67
|
+
// );
|
|
68
|
+
// // set headers
|
|
69
|
+
// const timestamp = this.helperDateService.timestamp();
|
|
70
|
+
// responseExpress
|
|
71
|
+
// .setHeader(
|
|
72
|
+
// 'Content-Type',
|
|
73
|
+
// ENUM_FILE_EXCEL_MIME[excelType.toUpperCase()],
|
|
74
|
+
// )
|
|
75
|
+
// .setHeader(
|
|
76
|
+
// 'Content-Disposition',
|
|
77
|
+
// `attachment; filename=export-${timestamp}.${excelType}`,
|
|
78
|
+
// )
|
|
79
|
+
// .setHeader('Content-Length', excel.length);
|
|
80
|
+
// return new StreamableFile(excel);
|
|
81
|
+
// }),
|
|
82
|
+
// );
|
|
83
|
+
// }
|
|
84
|
+
// return next.handle();
|
|
85
|
+
// }
|
|
86
|
+
// }
|
|
87
|
+
//# sourceMappingURL=response.excel.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.excel.interceptor.js","sourceRoot":"","sources":["../../../../../packages/response/src/interceptors/response.excel.interceptor.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,gBAAgB;AAChB,qBAAqB;AACrB,sBAAsB;AACtB,iBAAiB;AACjB,oBAAoB;AACpB,2BAA2B;AAC3B,qCAAqC;AACrC,wCAAwC;AACxC,iEAAiE;AACjE,sCAAsC;AACtC,WAAW;AACX,sBAAsB;AACtB,2BAA2B;AAC3B,qBAAqB;AACrB,8BAA8B;AAC9B,4CAA4C;AAC5C,+CAA+C;AAE/C,gBAAgB;AAChB,mFAAmF;AACnF,iBAAiB;AACjB,6CAA6C;AAC7C,uDAAuD;AACvD,uDAAuD;AACvD,SAAS;AAET,qBAAqB;AACrB,iCAAiC;AACjC,yBAAyB;AACzB,2DAA2D;AAC3D,+CAA+C;AAC/C,mDAAmD;AACnD,wCAAwC;AACxC,gCAAgC;AAChC,WAAW;AAEX,0CAA0C;AAC1C,mCAAmC;AACnC,iEAAiE;AACjE,mEAAmE;AACnE,iEAAiE;AAEjE,kFAAkF;AAClF,oCAAoC;AACpC,sEAAsE;AACtE,qEAAqE;AACrE,yDAAyD;AACzD,yDAAyD;AACzD,sCAAsC;AACtC,iBAAiB;AAEjB,wBAAwB;AACxB,qEAAqE;AACrE,+CAA+C;AAC/C,sCAAsC;AACtC,+CAA+C;AAC/C,oCAAoC;AACpC,+BAA+B;AAC/B,2CAA2C;AAC3C,iBAAiB;AACjB,cAAc;AAEd,4BAA4B;AAC5B,uCAAuC;AACvC,yEAAyE;AACzE,6EAA6E;AAC7E,wBAAwB;AACxB,gBAAgB;AAChB,iCAAiC;AACjC,iBAAiB;AACjB,eAAe;AAEf,2BAA2B;AAC3B,kEAAkE;AAClE,4BAA4B;AAC5B,0BAA0B;AAC1B,gCAAgC;AAChC,+DAA+D;AAC/D,gBAAgB;AAChB,0BAA0B;AAC1B,uCAAuC;AACvC,yEAAyE;AACzE,gBAAgB;AAChB,0DAA0D;AAE1D,8CAA8C;AAC9C,cAAc;AACd,WAAW;AACX,QAAQ;AAER,4BAA4B;AAC5B,MAAM;AACN,IAAI"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Reflector } from '@nestjs/core';
|
|
4
|
+
import { MessageService } from '@tc-libs/message';
|
|
5
|
+
import { ResponsePagingSerialization } from '../serializations/response.paging.serialization';
|
|
6
|
+
export declare class ResponsePagingInterceptor<T> implements NestInterceptor<Promise<T>> {
|
|
7
|
+
private readonly reflector;
|
|
8
|
+
private readonly messageService;
|
|
9
|
+
constructor(reflector: Reflector, messageService: MessageService);
|
|
10
|
+
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<Promise<ResponsePagingSerialization>>>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponsePagingInterceptor = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const operators_1 = require("rxjs/operators");
|
|
7
|
+
const core_1 = require("@nestjs/core");
|
|
8
|
+
const class_transformer_1 = require("class-transformer");
|
|
9
|
+
const qs_1 = tslib_1.__importDefault(require("qs"));
|
|
10
|
+
const message_1 = require("@tc-libs/message");
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
const lodash_1 = require("lodash");
|
|
13
|
+
let ResponsePagingInterceptor = class ResponsePagingInterceptor {
|
|
14
|
+
constructor(reflector, messageService) {
|
|
15
|
+
this.reflector = reflector;
|
|
16
|
+
this.messageService = messageService;
|
|
17
|
+
}
|
|
18
|
+
async intercept(context, next) {
|
|
19
|
+
if (context.getType() === 'http') {
|
|
20
|
+
return next.handle().pipe((0, operators_1.map)(async (res) => {
|
|
21
|
+
const ctx = context.switchToHttp();
|
|
22
|
+
const response = ctx.getResponse();
|
|
23
|
+
const request = ctx.getRequest();
|
|
24
|
+
let messagePath = this.reflector.get(constants_1.RESPONSE_MESSAGE_PATH_META_KEY, context.getHandler());
|
|
25
|
+
const classSerialization = this.reflector.get(constants_1.RESPONSE_SERIALIZATION_META_KEY, context.getHandler());
|
|
26
|
+
const classSerializationOptions = this.reflector.get(constants_1.RESPONSE_SERIALIZATION_OPTIONS_META_KEY, context.getHandler());
|
|
27
|
+
let messageProperties = this.reflector.get(constants_1.RESPONSE_MESSAGE_PROPERTIES_META_KEY, context.getHandler());
|
|
28
|
+
// metadata
|
|
29
|
+
const __customLang = request.__customLang;
|
|
30
|
+
const __path = request.path;
|
|
31
|
+
const __requestId = request.__id;
|
|
32
|
+
const __timestamp = request.__xTimestamp ?? request.__timestamp;
|
|
33
|
+
const __timezone = request.__timezone;
|
|
34
|
+
const __version = request.__version;
|
|
35
|
+
const __repoVersion = request.__repoVersion;
|
|
36
|
+
const __pagination = request.__pagination;
|
|
37
|
+
let statusCode = response.statusCode;
|
|
38
|
+
let data = [];
|
|
39
|
+
let metadata = {
|
|
40
|
+
languages: __customLang,
|
|
41
|
+
timestamp: __timestamp,
|
|
42
|
+
timezone: __timezone,
|
|
43
|
+
requestId: __requestId,
|
|
44
|
+
path: __path,
|
|
45
|
+
version: __version,
|
|
46
|
+
repoVersion: __repoVersion,
|
|
47
|
+
};
|
|
48
|
+
// response
|
|
49
|
+
const responseData = (await res);
|
|
50
|
+
if (!responseData) {
|
|
51
|
+
throw new Error('Paging must have response');
|
|
52
|
+
}
|
|
53
|
+
const { _metadata } = responseData;
|
|
54
|
+
data = responseData.data;
|
|
55
|
+
if (classSerialization) {
|
|
56
|
+
data = (0, class_transformer_1.plainToInstance)(classSerialization, data, classSerializationOptions);
|
|
57
|
+
}
|
|
58
|
+
statusCode = _metadata?.customProperty?.statusCode ?? statusCode;
|
|
59
|
+
messagePath = _metadata?.customProperty?.message ?? messagePath;
|
|
60
|
+
messageProperties =
|
|
61
|
+
_metadata?.customProperty?.messageProperties ?? messageProperties;
|
|
62
|
+
delete _metadata?.customProperty;
|
|
63
|
+
// metadata pagination
|
|
64
|
+
const { query } = request;
|
|
65
|
+
delete query['perPage'];
|
|
66
|
+
delete query['page'];
|
|
67
|
+
const total = responseData._pagination.total;
|
|
68
|
+
const totalPage = responseData._pagination.totalPages;
|
|
69
|
+
const perPage = __pagination?.perPage ?? 0;
|
|
70
|
+
const page = __pagination?.page ?? 0;
|
|
71
|
+
const queryString = qs_1.default.stringify(query, {
|
|
72
|
+
encode: false,
|
|
73
|
+
});
|
|
74
|
+
const cursorPaginationMetadata = {
|
|
75
|
+
nextPage: page < totalPage
|
|
76
|
+
? `${__path}?perPage=${perPage}&page=${page + 1}&${queryString}`
|
|
77
|
+
: undefined,
|
|
78
|
+
previousPage: page > 1
|
|
79
|
+
? `${__path}?perPage=${perPage}&page=${page - 1}&${queryString}`
|
|
80
|
+
: undefined,
|
|
81
|
+
firstPage: totalPage > 1
|
|
82
|
+
? `${__path}?perPage=${perPage}&page=${1}&${queryString}`
|
|
83
|
+
: undefined,
|
|
84
|
+
lastPage: totalPage > 1
|
|
85
|
+
? `${__path}?perPage=${perPage}&page=${totalPage}&${queryString}`
|
|
86
|
+
: undefined,
|
|
87
|
+
};
|
|
88
|
+
metadata = {
|
|
89
|
+
...metadata,
|
|
90
|
+
..._metadata,
|
|
91
|
+
pagination: {
|
|
92
|
+
...__pagination,
|
|
93
|
+
...metadata['_pagination'],
|
|
94
|
+
total,
|
|
95
|
+
totalPage,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
if (!(0, lodash_1.includes)(Object.values(cursorPaginationMetadata), undefined)) {
|
|
99
|
+
metadata.cursor = cursorPaginationMetadata;
|
|
100
|
+
}
|
|
101
|
+
const message = await this.messageService.get(messagePath, {
|
|
102
|
+
customLanguages: __customLang,
|
|
103
|
+
properties: messageProperties,
|
|
104
|
+
});
|
|
105
|
+
const responseHttp = {
|
|
106
|
+
statusCode,
|
|
107
|
+
message,
|
|
108
|
+
_metadata: metadata,
|
|
109
|
+
data,
|
|
110
|
+
};
|
|
111
|
+
return responseHttp;
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
return next.handle();
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
exports.ResponsePagingInterceptor = ResponsePagingInterceptor;
|
|
118
|
+
exports.ResponsePagingInterceptor = ResponsePagingInterceptor = tslib_1.__decorate([
|
|
119
|
+
(0, common_1.Injectable)(),
|
|
120
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Reflector,
|
|
121
|
+
message_1.MessageService])
|
|
122
|
+
], ResponsePagingInterceptor);
|
|
123
|
+
//# sourceMappingURL=response.paging.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.paging.interceptor.js","sourceRoot":"","sources":["../../../../../packages/response/src/interceptors/response.paging.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './response.interface';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ENUM_TABLE_FILE_TYPE } from '@tc-libs/constant';
|
|
2
|
+
import { IFileRows } from '@tc-libs/file-handler';
|
|
3
|
+
import { IMessageOptionsProperties } from '@tc-libs/message';
|
|
4
|
+
import { ClassConstructor } from 'class-transformer';
|
|
5
|
+
export interface IResponseCustomPropertyMetadata {
|
|
6
|
+
statusCode?: number;
|
|
7
|
+
message?: string;
|
|
8
|
+
messageProperties?: IMessageOptionsProperties;
|
|
9
|
+
}
|
|
10
|
+
export interface IResponseMetadata {
|
|
11
|
+
customProperty?: IResponseCustomPropertyMetadata;
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}
|
|
14
|
+
export interface IResponseOptions<T> {
|
|
15
|
+
serialization?: ClassConstructor<T>;
|
|
16
|
+
messageProperties?: IMessageOptionsProperties;
|
|
17
|
+
}
|
|
18
|
+
export type IResponsePagingOptions<T> = IResponseOptions<T>;
|
|
19
|
+
export interface IResponseExcelOptions<T> extends IResponseOptions<T> {
|
|
20
|
+
fileType?: ENUM_TABLE_FILE_TYPE;
|
|
21
|
+
}
|
|
22
|
+
export interface IResponse<T = Record<string, any>> {
|
|
23
|
+
_metadata?: IResponseMetadata;
|
|
24
|
+
data: T;
|
|
25
|
+
}
|
|
26
|
+
export interface IResponsePagingPagination {
|
|
27
|
+
totalPages: number;
|
|
28
|
+
total: number;
|
|
29
|
+
}
|
|
30
|
+
export interface IResponsePaging {
|
|
31
|
+
_metadata?: IResponseMetadata;
|
|
32
|
+
_pagination: IResponsePagingPagination;
|
|
33
|
+
data: Record<string, any>[];
|
|
34
|
+
}
|
|
35
|
+
export interface IResponseExcel {
|
|
36
|
+
data: IFileRows[];
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.interface.js","sourceRoot":"","sources":["../../../../../packages/response/src/interfaces/response.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './response.middleware.module';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/middleware/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseMiddlewareModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const response_time_middleware_1 = require("./time/response.time.middleware");
|
|
7
|
+
let ResponseMiddlewareModule = class ResponseMiddlewareModule {
|
|
8
|
+
configure(consumer) {
|
|
9
|
+
consumer.apply(response_time_middleware_1.ResponseTimeMiddleware).forRoutes('*');
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
exports.ResponseMiddlewareModule = ResponseMiddlewareModule;
|
|
13
|
+
exports.ResponseMiddlewareModule = ResponseMiddlewareModule = tslib_1.__decorate([
|
|
14
|
+
(0, common_1.Module)({})
|
|
15
|
+
], ResponseMiddlewareModule);
|
|
16
|
+
//# sourceMappingURL=response.middleware.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.middleware.module.js","sourceRoot":"","sources":["../../../../../packages/response/src/middleware/response.middleware.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwE;AACxE,8EAAyE;AAGlE,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,iDAAsB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AAJY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,wBAAwB,CAIpC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseTimeMiddleware = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const response_time_1 = tslib_1.__importDefault(require("response-time"));
|
|
7
|
+
let ResponseTimeMiddleware = class ResponseTimeMiddleware {
|
|
8
|
+
async use(req, res, next) {
|
|
9
|
+
(0, response_time_1.default)()(req, res, next);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
exports.ResponseTimeMiddleware = ResponseTimeMiddleware;
|
|
13
|
+
exports.ResponseTimeMiddleware = ResponseTimeMiddleware = tslib_1.__decorate([
|
|
14
|
+
(0, common_1.Injectable)()
|
|
15
|
+
], ResponseTimeMiddleware);
|
|
16
|
+
//# sourceMappingURL=response.time.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.time.middleware.js","sourceRoot":"","sources":["../../../../../../packages/response/src/middleware/time/response.time.middleware.ts"],"names":[],"mappings":";;;;AAAA,2CAA4D;AAE5D,0EAAyC;AAGlC,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACvD,IAAA,uBAAY,GAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AAJY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CAIlC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const core_1 = require("@nestjs/core");
|
|
7
|
+
const response_custom_headers_interceptor_1 = require("./interceptors/response.custom-headers.interceptor");
|
|
8
|
+
const middleware_1 = require("./middleware");
|
|
9
|
+
let ResponseModule = class ResponseModule {
|
|
10
|
+
};
|
|
11
|
+
exports.ResponseModule = ResponseModule;
|
|
12
|
+
exports.ResponseModule = ResponseModule = tslib_1.__decorate([
|
|
13
|
+
(0, common_1.Module)({
|
|
14
|
+
controllers: [],
|
|
15
|
+
providers: [
|
|
16
|
+
{
|
|
17
|
+
provide: core_1.APP_INTERCEPTOR,
|
|
18
|
+
useClass: response_custom_headers_interceptor_1.ResponseCustomHeadersInterceptor,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
imports: [middleware_1.ResponseMiddlewareModule],
|
|
22
|
+
})
|
|
23
|
+
], ResponseModule);
|
|
24
|
+
//# sourceMappingURL=response.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.module.js","sourceRoot":"","sources":["../../../../packages/response/src/response.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,uCAA+C;AAC/C,4GAAsG;AACtG,6CAAwD;AAYjD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAV1B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,EAAE;QACf,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,sBAAe;gBACxB,QAAQ,EAAE,sEAAgC;aAC3C;SACF;QACD,OAAO,EAAE,CAAC,qCAAwB,CAAC;KACpC,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./response.default.serialization"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./response.id.serialization"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./response.paging.serialization"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/serializations/index.ts"],"names":[],"mappings":";;;AAAA,2EAAiD;AACjD,sEAA4C;AAC5C,0EAAgD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IMessage } from '@tc-libs/message';
|
|
2
|
+
export declare class ResponseMetadataSerialization {
|
|
3
|
+
languages: string[];
|
|
4
|
+
timestamp: number;
|
|
5
|
+
timezone: string;
|
|
6
|
+
requestId: string;
|
|
7
|
+
path: string;
|
|
8
|
+
version: string;
|
|
9
|
+
repoVersion: string;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}
|
|
12
|
+
export declare class ResponseDefaultSerialization<T = Record<string, any>> {
|
|
13
|
+
statusCode: number;
|
|
14
|
+
message: string | IMessage;
|
|
15
|
+
_metadata?: ResponseMetadataSerialization;
|
|
16
|
+
data?: T;
|
|
17
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseDefaultSerialization = exports.ResponseMetadataSerialization = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
class ResponseMetadataSerialization {
|
|
7
|
+
}
|
|
8
|
+
exports.ResponseMetadataSerialization = ResponseMetadataSerialization;
|
|
9
|
+
class ResponseDefaultSerialization {
|
|
10
|
+
}
|
|
11
|
+
exports.ResponseDefaultSerialization = ResponseDefaultSerialization;
|
|
12
|
+
tslib_1.__decorate([
|
|
13
|
+
(0, swagger_1.ApiProperty)({
|
|
14
|
+
name: 'statusCode',
|
|
15
|
+
type: Number,
|
|
16
|
+
nullable: false,
|
|
17
|
+
description: 'return specific status code for every endpoints',
|
|
18
|
+
example: 200,
|
|
19
|
+
}),
|
|
20
|
+
tslib_1.__metadata("design:type", Number)
|
|
21
|
+
], ResponseDefaultSerialization.prototype, "statusCode", void 0);
|
|
22
|
+
tslib_1.__decorate([
|
|
23
|
+
(0, swagger_1.ApiProperty)({
|
|
24
|
+
name: 'message',
|
|
25
|
+
nullable: false,
|
|
26
|
+
description: 'Message base on language',
|
|
27
|
+
oneOf: [
|
|
28
|
+
{
|
|
29
|
+
type: 'string',
|
|
30
|
+
example: 'message endpoint',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
type: 'object',
|
|
34
|
+
example: {
|
|
35
|
+
en: 'This is test endpoint.',
|
|
36
|
+
id: 'Ini adalah endpoint test',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
}),
|
|
41
|
+
tslib_1.__metadata("design:type", Object)
|
|
42
|
+
], ResponseDefaultSerialization.prototype, "message", void 0);
|
|
43
|
+
tslib_1.__decorate([
|
|
44
|
+
(0, swagger_1.ApiProperty)({
|
|
45
|
+
name: '_metadata',
|
|
46
|
+
nullable: true,
|
|
47
|
+
description: 'Contain metadata about API',
|
|
48
|
+
type: 'object',
|
|
49
|
+
required: true,
|
|
50
|
+
example: {
|
|
51
|
+
languages: ['it'],
|
|
52
|
+
timestamp: 1660190937231,
|
|
53
|
+
timezone: 'Asia/Jakarta',
|
|
54
|
+
requestId: '40c2f734-7247-472b-bc26-8eff6e669781',
|
|
55
|
+
path: '/api/v1/test/hello',
|
|
56
|
+
version: '1',
|
|
57
|
+
repoVersion: '1.0.0',
|
|
58
|
+
},
|
|
59
|
+
}),
|
|
60
|
+
tslib_1.__metadata("design:type", ResponseMetadataSerialization)
|
|
61
|
+
], ResponseDefaultSerialization.prototype, "_metadata", void 0);
|
|
62
|
+
//# sourceMappingURL=response.default.serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.default.serialization.js","sourceRoot":"","sources":["../../../../../packages/response/src/serializations/response.default.serialization.ts"],"names":[],"mappings":";;;;AACA,6CAA8C;AAE9C,MAAa,6BAA6B;CASzC;AATD,sEASC;AAED,MAAa,4BAA4B;CAiDxC;AAjDD,oEAiDC;AAzCC;IAPC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,GAAG;KACb,CAAC;;gEACiB;AAoBnB;IAlBC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,0BAA0B;QACvC,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,kBAAkB;aAC5B;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,EAAE,EAAE,wBAAwB;oBAC5B,EAAE,EAAE,0BAA0B;iBAC/B;aACF;SACF;KACF,CAAC;;6DACyB;AAkB3B;IAhBC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACP,SAAS,EAAE,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,sCAAsC;YACjD,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,OAAO;SACrB;KACF,CAAC;sCACU,6BAA6B;+DAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseIdSerialization = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const class_transformer_1 = require("class-transformer");
|
|
7
|
+
class ResponseIdSerialization {
|
|
8
|
+
}
|
|
9
|
+
exports.ResponseIdSerialization = ResponseIdSerialization;
|
|
10
|
+
tslib_1.__decorate([
|
|
11
|
+
(0, swagger_1.ApiProperty)({
|
|
12
|
+
description: 'Id that representative with your target data',
|
|
13
|
+
example: '631d9f32a65cf07250b8938c',
|
|
14
|
+
required: true,
|
|
15
|
+
}),
|
|
16
|
+
(0, class_transformer_1.Type)(() => String),
|
|
17
|
+
tslib_1.__metadata("design:type", String)
|
|
18
|
+
], ResponseIdSerialization.prototype, "_id", void 0);
|
|
19
|
+
//# sourceMappingURL=response.id.serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.id.serialization.js","sourceRoot":"","sources":["../../../../../packages/response/src/serializations/response.id.serialization.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAC9C,yDAAyC;AAEzC,MAAa,uBAAuB;CAQnC;AARD,0DAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;oDACP"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RequestPaginationSerialization } from '@tc-libs/request';
|
|
2
|
+
import { ResponseMetadataSerialization, ResponseDefaultSerialization } from './response.default.serialization';
|
|
3
|
+
export declare class ResponsePagingCursorMetadataSerialization {
|
|
4
|
+
nextPage?: string;
|
|
5
|
+
previousPage?: string;
|
|
6
|
+
firstPage?: string;
|
|
7
|
+
lastPage?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class ResponsePagingPaginationSerialization extends RequestPaginationSerialization {
|
|
10
|
+
total: number;
|
|
11
|
+
totalPage: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ResponsePagingMetadataSerialization extends ResponseMetadataSerialization {
|
|
14
|
+
cursor?: ResponsePagingCursorMetadataSerialization;
|
|
15
|
+
pagination?: ResponsePagingPaginationSerialization;
|
|
16
|
+
}
|
|
17
|
+
declare const ResponsePagingSerialization_base: import("@nestjs/common").Type<Pick<ResponseDefaultSerialization<unknown>, "statusCode" | "message">>;
|
|
18
|
+
export declare class ResponsePagingSerialization<T = Record<string, any>> extends ResponsePagingSerialization_base {
|
|
19
|
+
readonly _metadata: ResponsePagingMetadataSerialization;
|
|
20
|
+
readonly data: T[];
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponsePagingSerialization = exports.ResponsePagingPaginationSerialization = exports.ResponsePagingCursorMetadataSerialization = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pagination_1 = require("@tc-libs/pagination");
|
|
6
|
+
const request_1 = require("@tc-libs/request");
|
|
7
|
+
const faker_1 = require("@faker-js/faker");
|
|
8
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
9
|
+
const response_default_serialization_1 = require("./response.default.serialization");
|
|
10
|
+
class ResponsePagingCursorMetadataSerialization {
|
|
11
|
+
}
|
|
12
|
+
exports.ResponsePagingCursorMetadataSerialization = ResponsePagingCursorMetadataSerialization;
|
|
13
|
+
class ResponsePagingPaginationSerialization extends request_1.RequestPaginationSerialization {
|
|
14
|
+
}
|
|
15
|
+
exports.ResponsePagingPaginationSerialization = ResponsePagingPaginationSerialization;
|
|
16
|
+
class ResponsePagingSerialization extends (0, swagger_1.PickType)(response_default_serialization_1.ResponseDefaultSerialization, [
|
|
17
|
+
'statusCode',
|
|
18
|
+
'message',
|
|
19
|
+
]) {
|
|
20
|
+
}
|
|
21
|
+
exports.ResponsePagingSerialization = ResponsePagingSerialization;
|
|
22
|
+
tslib_1.__decorate([
|
|
23
|
+
(0, swagger_1.ApiProperty)({
|
|
24
|
+
name: '_metadata',
|
|
25
|
+
nullable: false,
|
|
26
|
+
description: 'Contain metadata about API',
|
|
27
|
+
type: 'object',
|
|
28
|
+
required: true,
|
|
29
|
+
example: {
|
|
30
|
+
languages: ['it'],
|
|
31
|
+
timestamp: 1660190937231,
|
|
32
|
+
timezone: 'Asia/Jakarta',
|
|
33
|
+
requestId: '40c2f734-7247-472b-bc26-8eff6e669781',
|
|
34
|
+
path: '/api/v1/test/hello',
|
|
35
|
+
version: '1',
|
|
36
|
+
repoVersion: '1.0.0',
|
|
37
|
+
pagination: {
|
|
38
|
+
search: faker_1.faker.person.firstName(),
|
|
39
|
+
page: 1,
|
|
40
|
+
perPage: 20,
|
|
41
|
+
orderBy: 'createdAt',
|
|
42
|
+
orderDirection: pagination_1.ENUM_PAGINATION_ORDER_DIRECTION_TYPE.ASC,
|
|
43
|
+
availableSearch: ['name'],
|
|
44
|
+
availableOrderBy: ['createdAt'],
|
|
45
|
+
availableOrderDirection: pagination_1.PAGINATION_AVAILABLE_ORDER_DIRECTION,
|
|
46
|
+
total: 100,
|
|
47
|
+
totalPage: 5,
|
|
48
|
+
},
|
|
49
|
+
cursor: {
|
|
50
|
+
nextPage: `http://217.0.0.1/__path?perPage=10&page=3&search=abc`,
|
|
51
|
+
previousPage: `http://217.0.0.1/__path?perPage=10&page=1&search=abc`,
|
|
52
|
+
firstPage: `http://217.0.0.1/__path?perPage=10&page=1&search=abc`,
|
|
53
|
+
lastPage: `http://217.0.0.1/__path?perPage=10&page=20&search=abc`,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}),
|
|
57
|
+
tslib_1.__metadata("design:type", Object)
|
|
58
|
+
], ResponsePagingSerialization.prototype, "_metadata", void 0);
|
|
59
|
+
//# sourceMappingURL=response.paging.serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.paging.serialization.js","sourceRoot":"","sources":["../../../../../packages/response/src/serializations/response.paging.serialization.ts"],"names":[],"mappings":";;;;AAAA,oDAG6B;AAC7B,8CAAkE;AAClE,2CAAwC;AACxC,6CAAwD;AACxD,qFAG0C;AAE1C,MAAa,yCAAyC;CAKrD;AALD,8FAKC;AAED,MAAa,qCAAsC,SAAQ,wCAA8B;CAGxF;AAHD,sFAGC;AASD,MAAa,2BAEX,SAAQ,IAAA,kBAAQ,EAAC,6DAA4B,EAAE;IAC/C,YAAY;IACZ,SAAS;CACD,CAAC;CAsCV;AA3CD,kEA2CC;AAHU;IAlCR,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACP,SAAS,EAAE,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,sCAAsC;YACjD,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE;gBACV,MAAM,EAAE,aAAK,CAAC,MAAM,CAAC,SAAS,EAAE;gBAChC,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,WAAW;gBACpB,cAAc,EAAE,iDAAoC,CAAC,GAAG;gBACxD,eAAe,EAAE,CAAC,MAAM,CAAC;gBACzB,gBAAgB,EAAE,CAAC,WAAW,CAAC;gBAC/B,uBAAuB,EAAE,iDAAoC;gBAC7D,KAAK,EAAE,GAAG;gBACV,SAAS,EAAE,CAAC;aACb;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,sDAAsD;gBAChE,YAAY,EAAE,sDAAsD;gBACpE,SAAS,EAAE,sDAAsD;gBACjE,QAAQ,EAAE,uDAAuD;aAClE;SACF;KACF,CAAC;;8DACsD"}
|