@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.
Files changed (62) hide show
  1. package/README.md +11 -0
  2. package/package.json +11 -0
  3. package/src/constants/index.d.ts +1 -0
  4. package/src/constants/index.js +5 -0
  5. package/src/constants/index.js.map +1 -0
  6. package/src/constants/response.constant.d.ts +5 -0
  7. package/src/constants/response.constant.js +9 -0
  8. package/src/constants/response.constant.js.map +1 -0
  9. package/src/decorators/index.d.ts +1 -0
  10. package/src/decorators/index.js +5 -0
  11. package/src/decorators/index.js.map +1 -0
  12. package/src/decorators/response.decorator.d.ts +4 -0
  13. package/src/decorators/response.decorator.js +36 -0
  14. package/src/decorators/response.decorator.js.map +1 -0
  15. package/src/index.d.ts +4 -0
  16. package/src/index.js +8 -0
  17. package/src/index.js.map +1 -0
  18. package/src/interceptors/index.d.ts +3 -0
  19. package/src/interceptors/index.js +7 -0
  20. package/src/interceptors/index.js.map +1 -0
  21. package/src/interceptors/response.custom-headers.interceptor.d.ts +5 -0
  22. package/src/interceptors/response.custom-headers.interceptor.js +28 -0
  23. package/src/interceptors/response.custom-headers.interceptor.js.map +1 -0
  24. package/src/interceptors/response.default.interceptor.d.ts +11 -0
  25. package/src/interceptors/response.default.interceptor.js +85 -0
  26. package/src/interceptors/response.default.interceptor.js.map +1 -0
  27. package/src/interceptors/response.excel.interceptor.d.ts +0 -0
  28. package/src/interceptors/response.excel.interceptor.js +87 -0
  29. package/src/interceptors/response.excel.interceptor.js.map +1 -0
  30. package/src/interceptors/response.paging.interceptor.d.ts +11 -0
  31. package/src/interceptors/response.paging.interceptor.js +123 -0
  32. package/src/interceptors/response.paging.interceptor.js.map +1 -0
  33. package/src/interfaces/index.d.ts +1 -0
  34. package/src/interfaces/index.js +5 -0
  35. package/src/interfaces/index.js.map +1 -0
  36. package/src/interfaces/response.interface.d.ts +37 -0
  37. package/src/interfaces/response.interface.js +3 -0
  38. package/src/interfaces/response.interface.js.map +1 -0
  39. package/src/middleware/index.d.ts +1 -0
  40. package/src/middleware/index.js +5 -0
  41. package/src/middleware/index.js.map +1 -0
  42. package/src/middleware/response.middleware.module.d.ts +4 -0
  43. package/src/middleware/response.middleware.module.js +16 -0
  44. package/src/middleware/response.middleware.module.js.map +1 -0
  45. package/src/middleware/time/response.time.middleware.d.ts +5 -0
  46. package/src/middleware/time/response.time.middleware.js +16 -0
  47. package/src/middleware/time/response.time.middleware.js.map +1 -0
  48. package/src/response.module.d.ts +2 -0
  49. package/src/response.module.js +24 -0
  50. package/src/response.module.js.map +1 -0
  51. package/src/serializations/index.d.ts +3 -0
  52. package/src/serializations/index.js +7 -0
  53. package/src/serializations/index.js.map +1 -0
  54. package/src/serializations/response.default.serialization.d.ts +17 -0
  55. package/src/serializations/response.default.serialization.js +62 -0
  56. package/src/serializations/response.default.serialization.js.map +1 -0
  57. package/src/serializations/response.id.serialization.d.ts +3 -0
  58. package/src/serializations/response.id.serialization.js +19 -0
  59. package/src/serializations/response.id.serialization.js.map +1 -0
  60. package/src/serializations/response.paging.serialization.d.ts +22 -0
  61. package/src/serializations/response.paging.serialization.js +59 -0
  62. package/src/serializations/response.paging.serialization.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # response
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build response` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test response` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@tc-libs/response",
3
+ "version": "0.9.0",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "types": "./src/index.d.ts"
11
+ }
@@ -0,0 +1 @@
1
+ export * from './response.constant';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./response.constant"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./response.decorator"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -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
@@ -0,0 +1,4 @@
1
+ export * from './response.module';
2
+ export * from './interfaces';
3
+ export * from './decorators';
4
+ export * from './serializations';
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
@@ -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,3 @@
1
+ export * from './response.custom-headers.interceptor';
2
+ export * from './response.default.interceptor';
3
+ export * from './response.paging.interceptor';
@@ -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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"}
@@ -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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./response.interface"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=response.interface.js.map
@@ -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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./response.middleware.module"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/response/src/middleware/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C"}
@@ -0,0 +1,4 @@
1
+ import { NestModule, MiddlewareConsumer } from '@nestjs/common';
2
+ export declare class ResponseMiddlewareModule implements NestModule {
3
+ configure(consumer: MiddlewareConsumer): void;
4
+ }
@@ -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,5 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { Request, Response, NextFunction } from 'express';
3
+ export declare class ResponseTimeMiddleware implements NestMiddleware {
4
+ use(req: Request, res: Response, next: NextFunction): Promise<void>;
5
+ }
@@ -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,2 @@
1
+ export declare class ResponseModule {
2
+ }
@@ -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,3 @@
1
+ export * from './response.default.serialization';
2
+ export * from './response.id.serialization';
3
+ export * from './response.paging.serialization';
@@ -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,3 @@
1
+ export declare class ResponseIdSerialization {
2
+ _id: string;
3
+ }
@@ -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"}