@rafikidota/iroh 0.44.0 → 0.45.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 (136) hide show
  1. package/README.md +9 -9
  2. package/dist/common/database/query-builder/query-builder.d.ts +1 -0
  3. package/dist/common/database/query-builder/query-builder.js +3 -0
  4. package/dist/common/database/query-builder/query-builder.js.map +1 -1
  5. package/dist/common/database/typeorm-unit-of-work/interfaces/IUnitOfWork.d.ts +4 -4
  6. package/dist/common/database/typeorm-unit-of-work/typeorm-unit-of-work.provider.d.ts +4 -4
  7. package/dist/common/decorators/controller.decorator.d.ts +1 -0
  8. package/dist/common/decorators/controller.decorator.js +20 -0
  9. package/dist/common/decorators/controller.decorator.js.map +1 -0
  10. package/dist/common/decorators/entity-id.decorator.d.ts +5 -0
  11. package/dist/common/decorators/entity-id.decorator.js +44 -0
  12. package/dist/common/decorators/entity-id.decorator.js.map +1 -0
  13. package/dist/common/decorators/generic-get.decorator.js +2 -6
  14. package/dist/common/decorators/generic-get.decorator.js.map +1 -1
  15. package/dist/common/decorators/index.d.ts +5 -0
  16. package/dist/common/decorators/index.js +5 -0
  17. package/dist/common/decorators/index.js.map +1 -1
  18. package/dist/common/decorators/pagination.decorator.d.ts +2 -0
  19. package/dist/common/decorators/pagination.decorator.js +26 -0
  20. package/dist/common/decorators/pagination.decorator.js.map +1 -0
  21. package/dist/common/decorators/param.decorator.d.ts +1 -0
  22. package/dist/common/decorators/param.decorator.js +8 -0
  23. package/dist/common/decorators/param.decorator.js.map +1 -0
  24. package/dist/common/decorators/query.decorator.d.ts +1 -0
  25. package/dist/common/decorators/query.decorator.js +8 -0
  26. package/dist/common/decorators/query.decorator.js.map +1 -0
  27. package/dist/common/decorators/use-dto.decorator.d.ts +3 -3
  28. package/dist/common/dto/index.d.ts +1 -0
  29. package/dist/common/dto/index.js +1 -0
  30. package/dist/common/dto/index.js.map +1 -1
  31. package/dist/common/dto/pagination.view.d.ts +11 -0
  32. package/dist/common/dto/pagination.view.js +48 -0
  33. package/dist/common/dto/pagination.view.js.map +1 -0
  34. package/dist/common/index.d.ts +0 -1
  35. package/dist/common/index.js +0 -1
  36. package/dist/common/index.js.map +1 -1
  37. package/dist/common/interceptors/index.d.ts +0 -3
  38. package/dist/common/interceptors/index.js +0 -3
  39. package/dist/common/interceptors/index.js.map +1 -1
  40. package/dist/common/interceptors/response.interceptor.d.ts +2 -2
  41. package/dist/common/interceptors/response.interceptor.js +11 -17
  42. package/dist/common/interceptors/response.interceptor.js.map +1 -1
  43. package/dist/common/interfaces/crud.controller.d.ts +6 -5
  44. package/dist/common/interfaces/crud.repository.d.ts +6 -5
  45. package/dist/common/interfaces/crud.service.d.ts +9 -7
  46. package/dist/common/interfaces/generic.mapper.d.ts +4 -4
  47. package/dist/common/interfaces/index.d.ts +0 -1
  48. package/dist/common/interfaces/index.js +0 -1
  49. package/dist/common/interfaces/index.js.map +1 -1
  50. package/dist/common/types/index.d.ts +1 -0
  51. package/dist/common/types/index.js +1 -0
  52. package/dist/common/types/index.js.map +1 -1
  53. package/dist/common/types/pagination.d.ts +11 -0
  54. package/dist/common/{errors/types/app.error.js → types/pagination.js} +1 -1
  55. package/dist/common/types/pagination.js.map +1 -0
  56. package/dist/core/app/dto/generic.create.dto.d.ts +4 -4
  57. package/dist/core/app/dto/generic.view.d.ts +1 -1
  58. package/dist/core/app/dto/generic.view.js +6 -6
  59. package/dist/core/app/dto/generic.view.js.map +1 -1
  60. package/dist/core/app/dto/nomenclator.view.d.ts +2 -2
  61. package/dist/core/app/dto/nomenclator.view.js +1 -1
  62. package/dist/core/app/dto/nomenclator.view.js.map +1 -1
  63. package/dist/core/domain/generic.domain.d.ts +6 -6
  64. package/dist/core/domain/generic.domain.factory.d.ts +3 -3
  65. package/dist/core/domain/generic.domain.factory.js.map +1 -1
  66. package/dist/core/domain/generic.domain.js +3 -3
  67. package/dist/core/domain/generic.domain.js.map +1 -1
  68. package/dist/core/domain/nomenclator.domain.d.ts +2 -2
  69. package/dist/core/domain/nomenclator.domain.js +1 -1
  70. package/dist/core/domain/nomenclator.domain.js.map +1 -1
  71. package/dist/core/infra/generic.persistence.d.ts +1 -1
  72. package/dist/core/infra/generic.persistence.factory.d.ts +3 -3
  73. package/dist/core/infra/generic.persistence.factory.js.map +1 -1
  74. package/dist/core/infra/generic.persistence.js +7 -7
  75. package/dist/core/infra/generic.persistence.js.map +1 -1
  76. package/dist/core/infra/iroh.mapper.d.ts +4 -4
  77. package/dist/core/infra/iroh.repository.d.ts +7 -6
  78. package/dist/core/infra/iroh.repository.js +11 -4
  79. package/dist/core/infra/iroh.repository.js.map +1 -1
  80. package/dist/core/infra/nomenclator.persistence.d.ts +2 -2
  81. package/dist/core/infra/nomenclator.persistence.js +1 -1
  82. package/dist/core/infra/nomenclator.persistence.js.map +1 -1
  83. package/dist/core/iroh.controller.d.ts +7 -6
  84. package/dist/core/iroh.controller.js +3 -2
  85. package/dist/core/iroh.controller.js.map +1 -1
  86. package/dist/core/iroh.service.d.ts +7 -8
  87. package/dist/core/iroh.service.js +65 -102
  88. package/dist/core/iroh.service.js.map +1 -1
  89. package/dist/schematics/crud/files/ts/app/dto/__name__.view.ts +2 -2
  90. package/dist/schematics/crud/files/ts/domain/__name__.domain.ts +2 -2
  91. package/dist/schematics/crud/files/ts/infra/__name__.persistence.ts +2 -2
  92. package/package.json +11 -11
  93. package/dist/common/errors/database/index.d.ts +0 -1
  94. package/dist/common/errors/database/index.js +0 -18
  95. package/dist/common/errors/database/index.js.map +0 -1
  96. package/dist/common/errors/database/postgresql.error.d.ts +0 -6
  97. package/dist/common/errors/database/postgresql.error.js +0 -7
  98. package/dist/common/errors/database/postgresql.error.js.map +0 -1
  99. package/dist/common/errors/handler/error.handler.d.ts +0 -8
  100. package/dist/common/errors/handler/error.handler.js +0 -20
  101. package/dist/common/errors/handler/error.handler.js.map +0 -1
  102. package/dist/common/errors/handler/index.d.ts +0 -1
  103. package/dist/common/errors/handler/index.js +0 -18
  104. package/dist/common/errors/handler/index.js.map +0 -1
  105. package/dist/common/errors/index.d.ts +0 -4
  106. package/dist/common/errors/index.js +0 -21
  107. package/dist/common/errors/index.js.map +0 -1
  108. package/dist/common/errors/interfaces/IErrorHandler.d.ts +0 -4
  109. package/dist/common/errors/interfaces/IErrorHandler.js +0 -3
  110. package/dist/common/errors/interfaces/IErrorHandler.js.map +0 -1
  111. package/dist/common/errors/interfaces/index.d.ts +0 -1
  112. package/dist/common/errors/interfaces/index.js +0 -18
  113. package/dist/common/errors/interfaces/index.js.map +0 -1
  114. package/dist/common/errors/types/app.error.d.ts +0 -3
  115. package/dist/common/errors/types/app.error.js.map +0 -1
  116. package/dist/common/errors/types/index.d.ts +0 -1
  117. package/dist/common/errors/types/index.js +0 -18
  118. package/dist/common/errors/types/index.js.map +0 -1
  119. package/dist/common/errors/util/error.map.d.ts +0 -3
  120. package/dist/common/errors/util/error.map.js +0 -3
  121. package/dist/common/errors/util/error.map.js.map +0 -1
  122. package/dist/common/errors/util/index.d.ts +0 -1
  123. package/dist/common/errors/util/index.js +0 -18
  124. package/dist/common/errors/util/index.js.map +0 -1
  125. package/dist/common/interceptors/body.logger.interceptor.d.ts +0 -6
  126. package/dist/common/interceptors/body.logger.interceptor.js +0 -27
  127. package/dist/common/interceptors/body.logger.interceptor.js.map +0 -1
  128. package/dist/common/interceptors/query.logger.interceptor.d.ts +0 -6
  129. package/dist/common/interceptors/query.logger.interceptor.js +0 -27
  130. package/dist/common/interceptors/query.logger.interceptor.js.map +0 -1
  131. package/dist/common/interceptors/query.options.interceptor.d.ts +0 -8
  132. package/dist/common/interceptors/query.options.interceptor.js +0 -31
  133. package/dist/common/interceptors/query.options.interceptor.js.map +0 -1
  134. package/dist/common/interfaces/response.interceptor.d.ts +0 -8
  135. package/dist/common/interfaces/response.interceptor.js +0 -3
  136. package/dist/common/interfaces/response.interceptor.js.map +0 -1
package/README.md CHANGED
@@ -174,26 +174,26 @@ export class HeroRepository extends IrohRepository<HeroMapper> {
174
174
  ```
175
175
 
176
176
  ### Persistence
177
- Define your persistence by extending `GenericPersistence`:
177
+ Define your persistence by extending `Persistence`:
178
178
  ```ts
179
179
  import { Column, Entity } from 'typeorm';
180
- import { GenericPersistence } from '@rafikidota/iroh';
180
+ import { Persistence } from '@rafikidota/iroh';
181
181
  import { IHero } from '../domain';
182
182
 
183
183
  @Entity('hero')
184
- export class HeroPersistence extends GenericPersistence implements IHero {
184
+ export class HeroPersistence extends Persistence implements IHero {
185
185
  @Column()
186
186
  name: string;
187
187
  }
188
188
  ```
189
189
 
190
190
  ### Domain
191
- Define your domain by extending `GenericDomain`:
191
+ Define your domain by extending `Domain`:
192
192
  ```ts
193
193
  import { DeepPartial } from 'typeorm';
194
194
  import { Result } from '@rafikidota/iroh';
195
195
  import { DomainFactory } from '@rafikidota/iroh';
196
- import { GenericDomain } from '@rafikidota/iroh';
196
+ import { Domain } from '@rafikidota/iroh';
197
197
  import { IUpdatableDomain } from '@rafikidota/iroh';
198
198
  import { Props } from '@rafikidota/iroh';
199
199
  import { IHero } from './hero.interface';
@@ -206,7 +206,7 @@ export type UpdateHeroProps = DeepPartial<NewHeroProps>;
206
206
 
207
207
  export type IHeroDomain = IHero & IUpdatableDomain<HeroDomain>;
208
208
 
209
- export class HeroDomain extends GenericDomain implements IHeroDomain {
209
+ export class HeroDomain extends Domain implements IHeroDomain {
210
210
  name: string;
211
211
 
212
212
  static create(props: NewHeroProps): Result<HeroDomain> {
@@ -222,19 +222,19 @@ export class HeroDomain extends GenericDomain implements IHeroDomain {
222
222
  ```
223
223
 
224
224
  ### View
225
- Define your view by extending `OmitType` from the `IntersectionType` of `PartialType(CreateHeroDto)` and `GenericView`:
225
+ Define your view by extending `OmitType` from the `IntersectionType` of `PartialType(CreateHeroDto)` and `View`:
226
226
  ```ts
227
227
  import { ApiProperty } from '@nestjs/swagger';
228
228
  import { IntersectionType } from '@nestjs/swagger';
229
229
  import { OmitType } from '@nestjs/swagger';
230
230
  import { PartialType } from '@nestjs/swagger';
231
- import { GenericView } from '@rafikidota/iroh';
231
+ import { View } from '@rafikidota/iroh';
232
232
  import { CreateHeroDto } from './hero.create.dto';
233
233
  import { HeroDomain, IHero } from '../../domain';
234
234
 
235
235
  export class HeroView
236
236
  extends OmitType(
237
- IntersectionType(PartialType(CreateHeroDto), GenericView),
237
+ IntersectionType(PartialType(CreateHeroDto), View),
238
238
  [],
239
239
  )
240
240
  implements IHero
@@ -10,6 +10,7 @@ export declare class QueryBuilder<T> {
10
10
  constructor(sqb: SelectQueryBuilder<T>);
11
11
  addOptions(form: QueryForm<T>): void;
12
12
  getMany(): Promise<T[]>;
13
+ getManyAndCount(): Promise<[T[], number]>;
13
14
  getOne(): Promise<T>;
14
15
  getCount(): Promise<number>;
15
16
  getSql(): string;
@@ -23,6 +23,9 @@ class QueryBuilder {
23
23
  getMany() {
24
24
  return this.builder.getMany();
25
25
  }
26
+ getManyAndCount() {
27
+ return this.builder.getManyAndCount();
28
+ }
26
29
  getOne() {
27
30
  return this.builder.getOne();
28
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../../src/common/database/query-builder/query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../../src/common/database/query-builder/query-builder.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { Type } from '@nestjs/common';
2
2
  import { UnitOfWorkResponse } from '../unit-of-work.response.type';
3
- import { GenericPersistence } from '../../../../core/infra/generic.persistence';
4
- import { GenericView } from '../../../../core/app/dto/generic.view';
5
- import { GenericDomain } from '../../../../core/domain/generic.domain';
3
+ import { Persistence } from '../../../../core/infra/generic.persistence';
4
+ import { View } from '../../../../core/app/dto/generic.view';
5
+ import { Domain } from '../../../../core/domain/generic.domain';
6
6
  import { IGenericRepository } from '../../../interfaces/crud.repository';
7
7
  export interface IUnitOfWork {
8
8
  start(): Promise<void> | void;
9
9
  commit<T>(work: () => Promise<UnitOfWorkResponse<T>>): Promise<UnitOfWorkResponse<T>>;
10
- getRepository<T extends GenericPersistence = GenericPersistence, D extends GenericDomain = GenericDomain, V extends GenericView = GenericView, R extends IGenericRepository<T, D, V> = IGenericRepository<T, D, V>>(Repo: Type<R>): R;
10
+ getRepository<T extends Persistence = Persistence, D extends Domain = Domain, V extends View = View, R extends IGenericRepository<T, D, V> = IGenericRepository<T, D, V>>(Repo: Type<R>): R;
11
11
  }
@@ -4,9 +4,9 @@ import { QueryRunner } from 'typeorm';
4
4
  import { Repository } from 'typeorm';
5
5
  import { IsolationLevel } from 'typeorm/driver/types/IsolationLevel';
6
6
  import { IUnitOfWork } from './interfaces';
7
- import { GenericPersistence } from '../../../core/infra/generic.persistence';
8
- import { GenericDomain } from '../../../core/domain/generic.domain';
9
- import { GenericView } from '../../../core/app/dto/generic.view';
7
+ import { Persistence } from '../../../core/infra/generic.persistence';
8
+ import { Domain } from '../../../core/domain/generic.domain';
9
+ import { View } from '../../../core/app/dto/generic.view';
10
10
  import { IGenericRepository } from '../../interfaces/crud.repository';
11
11
  import { Result } from '../../../core/app/result';
12
12
  export declare class TypeOrmUnitOfWork implements IUnitOfWork {
@@ -16,7 +16,7 @@ export declare class TypeOrmUnitOfWork implements IUnitOfWork {
16
16
  private logger;
17
17
  constructor(dataSource: DataSource);
18
18
  getQueryRunner(): QueryRunner;
19
- getRepository<T extends GenericPersistence = GenericPersistence, D extends GenericDomain = GenericDomain, V extends GenericView = GenericView, R extends IGenericRepository<T, D, V> = IGenericRepository<T, D, V>>(Repo: Type<IGenericRepository<T, D, V>>): R;
19
+ getRepository<T extends Persistence = Persistence, D extends Domain = Domain, V extends View = View, R extends IGenericRepository<T, D, V> = IGenericRepository<T, D, V>>(Repo: Type<IGenericRepository<T, D, V>>): R;
20
20
  getRepositoryEntity<T>(repo: Type<T>): Repository<T>;
21
21
  start(isolationLevel?: IsolationLevel): Promise<void>;
22
22
  commit<T>(work: () => Promise<Result<T>>): Promise<Result<T>>;
@@ -0,0 +1 @@
1
+ export declare function Controller(name: string): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Controller = Controller;
4
+ const common_1 = require("@nestjs/common");
5
+ const common_2 = require("@nestjs/common");
6
+ const common_3 = require("@nestjs/common");
7
+ const common_4 = require("@nestjs/common");
8
+ const http_exception_filter_1 = require("../filters/http.exception.filter");
9
+ const logging_interceptor_1 = require("../interceptors/logging.interceptor");
10
+ const response_interceptor_1 = require("../interceptors/response.interceptor");
11
+ function Controller(name) {
12
+ const decorators = [
13
+ (0, common_1.Controller)(name),
14
+ (0, common_2.UseFilters)(http_exception_filter_1.HttpExceptionFilter),
15
+ (0, common_3.UseInterceptors)(logging_interceptor_1.LoggingInterceptor),
16
+ (0, common_3.UseInterceptors)(response_interceptor_1.ResponseInterceptor),
17
+ ];
18
+ return (0, common_4.applyDecorators)(...decorators);
19
+ }
20
+ //# sourceMappingURL=controller.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/controller.decorator.ts"],"names":[],"mappings":";;AASA,gCAQC;AAjBD,2CAA8D;AAC9D,2CAA4C;AAC5C,2CAAiD;AACjD,2CAAiD;AAEjD,4EAAuE;AACvE,6EAAyE;AACzE,+EAA2E;AAE3E,SAAgB,UAAU,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG;QACjB,IAAA,mBAAc,EAAC,IAAI,CAAC;QACpB,IAAA,mBAAU,EAAC,2CAAmB,CAAC;QAC/B,IAAA,wBAAe,EAAC,wCAAkB,CAAC;QACnC,IAAA,wBAAe,EAAC,0CAAmB,CAAC;KACrC,CAAC;IACF,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ApiPropertyOptions } from '@nestjs/swagger';
2
+ export declare function RequiredEntityDto(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
3
+ export declare function OptionalEntityDto(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
4
+ export declare function SwaggerRequiredEntityDto(options?: ApiPropertyOptions): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
5
+ export declare function SwaggerOptionalEntityDto(options?: ApiPropertyOptions): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequiredEntityDto = RequiredEntityDto;
4
+ exports.OptionalEntityDto = OptionalEntityDto;
5
+ exports.SwaggerRequiredEntityDto = SwaggerRequiredEntityDto;
6
+ exports.SwaggerOptionalEntityDto = SwaggerOptionalEntityDto;
7
+ const common_1 = require("@nestjs/common");
8
+ const swagger_1 = require("@nestjs/swagger");
9
+ const class_validator_1 = require("class-validator");
10
+ const class_validator_2 = require("class-validator");
11
+ const class_validator_3 = require("class-validator");
12
+ const class_transformer_1 = require("class-transformer");
13
+ const entity_id_dto_1 = require("../dto/entity-id.dto");
14
+ function RequiredEntityDto() {
15
+ const decorators = [
16
+ (0, class_validator_1.ValidateNested)(),
17
+ (0, class_transformer_1.Type)(() => entity_id_dto_1.EntityIdDto),
18
+ (0, class_validator_3.IsNotEmptyObject)(),
19
+ ];
20
+ return (0, common_1.applyDecorators)(...decorators);
21
+ }
22
+ function OptionalEntityDto() {
23
+ const decorators = [(0, class_validator_1.ValidateNested)(), (0, class_transformer_1.Type)(() => entity_id_dto_1.EntityIdDto), (0, class_validator_2.IsOptional)()];
24
+ return (0, common_1.applyDecorators)(...decorators);
25
+ }
26
+ function SwaggerRequiredEntityDto(options) {
27
+ const decorators = [
28
+ (0, swagger_1.ApiProperty)(options),
29
+ (0, class_validator_1.ValidateNested)(),
30
+ (0, class_transformer_1.Type)(() => entity_id_dto_1.EntityIdDto),
31
+ (0, class_validator_3.IsNotEmptyObject)(),
32
+ ];
33
+ return (0, common_1.applyDecorators)(...decorators);
34
+ }
35
+ function SwaggerOptionalEntityDto(options) {
36
+ const decorators = [
37
+ (0, swagger_1.ApiProperty)(options),
38
+ (0, class_validator_1.ValidateNested)(),
39
+ (0, class_transformer_1.Type)(() => entity_id_dto_1.EntityIdDto),
40
+ (0, class_validator_2.IsOptional)(),
41
+ ];
42
+ return (0, common_1.applyDecorators)(...decorators);
43
+ }
44
+ //# sourceMappingURL=entity-id.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-id.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/entity-id.decorator.ts"],"names":[],"mappings":";;AAWA,8CAOC;AAED,8CAGC;AAED,4DAQC;AAED,4DAQC;AA3CD,2CAAiD;AACjD,6CAA8C;AAG9C,qDAAiD;AACjD,qDAA6C;AAC7C,qDAAmD;AACnD,yDAAyC;AAEzC,wDAAmD;AAEnD,SAAgB,iBAAiB;IAC/B,MAAM,UAAU,GAAG;QACjB,IAAA,gCAAc,GAAE;QAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAW,CAAC;QACvB,IAAA,kCAAgB,GAAE;KACnB,CAAC;IACF,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,UAAU,GAAG,CAAC,IAAA,gCAAc,GAAE,EAAE,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAW,CAAC,EAAE,IAAA,4BAAU,GAAE,CAAC,CAAC;IAC7E,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,wBAAwB,CAAC,OAA4B;IACnE,MAAM,UAAU,GAAG;QACjB,IAAA,qBAAW,EAAC,OAAO,CAAC;QACpB,IAAA,gCAAc,GAAE;QAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAW,CAAC;QACvB,IAAA,kCAAgB,GAAE;KACnB,CAAC;IACF,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,wBAAwB,CAAC,OAA4B;IACnE,MAAM,UAAU,GAAG;QACjB,IAAA,qBAAW,EAAC,OAAO,CAAC;QACpB,IAAA,gCAAc,GAAE;QAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAW,CAAC;QACvB,IAAA,4BAAU,GAAE;KACb,CAAC;IACF,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -8,12 +8,8 @@ const swagger_1 = require("@nestjs/swagger");
8
8
  const swagger_2 = require("@nestjs/swagger");
9
9
  const validation_pipe_1 = require("../pipes/validation.pipe");
10
10
  const search_dto_1 = require("../dto/search.dto");
11
+ const pagination_decorator_1 = require("./pagination.decorator");
11
12
  function GenericGet(View) {
12
- return (0, common_1.applyDecorators)((0, common_2.Get)(), (0, swagger_1.ApiQuery)({ name: 'page', type: Number, required: false }), (0, swagger_1.ApiQuery)({ name: 'limit', type: Number, required: false }), (0, swagger_1.ApiQuery)({ name: 'offset', type: Number, required: false }), (0, swagger_1.ApiQuery)({ name: 'options', type: String, required: false }), (0, swagger_2.ApiResponse)({
13
- status: 200,
14
- description: `List of paginated entities`,
15
- type: View,
16
- isArray: true,
17
- }), (0, swagger_2.ApiResponse)({ status: 400, description: 'Bad request' }), (0, swagger_2.ApiResponse)({ status: 401, description: 'Unauthorized' }), (0, swagger_2.ApiResponse)({ status: 403, description: 'Forbidden' }), (0, common_3.UsePipes)((0, validation_pipe_1.GenericValidationPipe)(search_dto_1.SearchDto)));
13
+ return (0, common_1.applyDecorators)((0, common_2.Get)(), (0, swagger_1.ApiQuery)({ name: 'page', type: Number, required: false }), (0, swagger_1.ApiQuery)({ name: 'limit', type: Number, required: false }), (0, swagger_1.ApiQuery)({ name: 'offset', type: Number, required: false }), (0, swagger_1.ApiQuery)({ name: 'options', type: String, required: false }), (0, pagination_decorator_1.PaginationResponse)(View), (0, swagger_2.ApiResponse)({ status: 400, description: 'Bad request' }), (0, swagger_2.ApiResponse)({ status: 401, description: 'Unauthorized' }), (0, swagger_2.ApiResponse)({ status: 403, description: 'Forbidden' }), (0, common_3.UsePipes)((0, validation_pipe_1.GenericValidationPipe)(search_dto_1.SearchDto)));
18
14
  }
19
15
  //# sourceMappingURL=generic-get.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generic-get.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/generic-get.decorator.ts"],"names":[],"mappings":";;AASA,gCAkBC;AA3BD,2CAAiD;AACjD,2CAAqC;AAErC,2CAA0C;AAC1C,6CAA2C;AAC3C,6CAA8C;AAC9C,8DAAiE;AACjE,kDAA8C;AAE9C,SAAgB,UAAU,CAAI,IAAa;IACzC,OAAO,IAAA,wBAAe,EACpB,IAAA,YAAG,GAAE,EACL,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EACzD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC5D,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KACd,CAAC,EACF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EACxD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EACzD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EACtD,IAAA,iBAAQ,EAAC,IAAA,uCAAqB,EAAC,sBAAS,CAAC,CAAC,CAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generic-get.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/generic-get.decorator.ts"],"names":[],"mappings":";;AAUA,gCAaC;AAvBD,2CAAiD;AACjD,2CAAqC;AAErC,2CAA0C;AAC1C,6CAA2C;AAC3C,6CAA8C;AAC9C,8DAAiE;AACjE,kDAA8C;AAC9C,iEAA4D;AAE5D,SAAgB,UAAU,CAAI,IAAa;IACzC,OAAO,IAAA,wBAAe,EACpB,IAAA,YAAG,GAAE,EACL,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EACzD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAC5D,IAAA,yCAAkB,EAAC,IAAI,CAAC,EACxB,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EACxD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EACzD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EACtD,IAAA,iBAAQ,EAAC,IAAA,uCAAqB,EAAC,sBAAS,CAAC,CAAC,CAC3C,CAAC;AACJ,CAAC"}
@@ -1,9 +1,14 @@
1
+ export * from './controller.decorator';
2
+ export * from './entity-id.decorator';
1
3
  export * from './entity.decorator';
2
4
  export * from './generic-delete.decorator';
3
5
  export * from './generic-get-by-id.decorator';
4
6
  export * from './generic-get.decorator';
5
7
  export * from './generic-patch.decorator';
6
8
  export * from './generic-post.decorator';
9
+ export * from './pagination.decorator';
10
+ export * from './param.decorator';
7
11
  export * from './query-option.decorator';
12
+ export * from './query.decorator';
8
13
  export * from './soft-unique.decorator';
9
14
  export * from './use-dto.decorator';
@@ -14,13 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./controller.decorator"), exports);
18
+ __exportStar(require("./entity-id.decorator"), exports);
17
19
  __exportStar(require("./entity.decorator"), exports);
18
20
  __exportStar(require("./generic-delete.decorator"), exports);
19
21
  __exportStar(require("./generic-get-by-id.decorator"), exports);
20
22
  __exportStar(require("./generic-get.decorator"), exports);
21
23
  __exportStar(require("./generic-patch.decorator"), exports);
22
24
  __exportStar(require("./generic-post.decorator"), exports);
25
+ __exportStar(require("./pagination.decorator"), exports);
26
+ __exportStar(require("./param.decorator"), exports);
23
27
  __exportStar(require("./query-option.decorator"), exports);
28
+ __exportStar(require("./query.decorator"), exports);
24
29
  __exportStar(require("./soft-unique.decorator"), exports);
25
30
  __exportStar(require("./use-dto.decorator"), exports);
26
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,6DAA2C;AAC3C,gEAA8C;AAC9C,0DAAwC;AACxC,4DAA0C;AAC1C,2DAAyC;AACzC,2DAAyC;AACzC,0DAAwC;AACxC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,wDAAsC;AACtC,qDAAmC;AACnC,6DAA2C;AAC3C,gEAA8C;AAC9C,0DAAwC;AACxC,4DAA0C;AAC1C,2DAAyC;AACzC,yDAAuC;AACvC,oDAAkC;AAClC,2DAAyC;AACzC,oDAAkC;AAClC,0DAAwC;AACxC,sDAAoC"}
@@ -0,0 +1,2 @@
1
+ import { Type } from '@nestjs/common';
2
+ export declare function PaginationResponse<V>(View: Type<V>): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationResponse = PaginationResponse;
4
+ const common_1 = require("@nestjs/common");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const swagger_2 = require("@nestjs/swagger");
7
+ const swagger_3 = require("@nestjs/swagger");
8
+ const pagination_view_1 = require("../dto/pagination.view");
9
+ const pagination_view_2 = require("../dto/pagination.view");
10
+ function PaginationResponse(View) {
11
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(pagination_view_1.PaginationView, View), (0, swagger_2.ApiResponse)({
12
+ status: 200,
13
+ description: `List of paginated entities`,
14
+ schema: {
15
+ allOf: [{ $ref: (0, swagger_3.getSchemaPath)(pagination_view_1.PaginationView) }],
16
+ properties: {
17
+ items: {
18
+ type: 'array',
19
+ items: { $ref: (0, swagger_3.getSchemaPath)(View) },
20
+ },
21
+ meta: { $ref: (0, swagger_3.getSchemaPath)(pagination_view_2.PaginationMetaView) },
22
+ },
23
+ },
24
+ }));
25
+ }
26
+ //# sourceMappingURL=pagination.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/pagination.decorator.ts"],"names":[],"mappings":";;AAQA,gDAkBC;AA1BD,2CAAiD;AAEjD,6CAAiD;AACjD,6CAA8C;AAC9C,6CAAgD;AAChD,4DAAwD;AACxD,4DAA4D;AAE5D,SAAgB,kBAAkB,CAAI,IAAa;IACjD,OAAO,IAAA,wBAAe,EACpB,IAAA,wBAAc,EAAC,gCAAc,EAAE,IAAI,CAAC,EACpC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,4BAA4B;QACzC,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,gCAAc,CAAC,EAAE,CAAC;YAChD,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,IAAI,CAAC,EAAE;iBACrC;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,oCAAkB,CAAC,EAAE;aAClD;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const Param: () => ParameterDecorator;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Param = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const common_2 = require("@nestjs/common");
6
+ const Param = () => (0, common_1.Param)('id', common_2.ParseUUIDPipe);
7
+ exports.Param = Param;
8
+ //# sourceMappingURL=param.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/param.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AACpD,2CAA+C;AAExC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAA,cAAS,EAAC,IAAI,EAAE,sBAAa,CAAC,CAAC;AAA7C,QAAA,KAAK,SAAwC"}
@@ -0,0 +1 @@
1
+ export declare const Query: () => ParameterDecorator;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const parse_query_pipe_1 = require("../pipes/parse-query.pipe");
6
+ const Query = () => (0, common_1.Query)(parse_query_pipe_1.ParseQueryPipe);
7
+ exports.Query = Query;
8
+ //# sourceMappingURL=query.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/query.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AAEpD,gEAA2D;AAEpD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAA,cAAS,EAAC,iCAAc,CAAC,CAAC;AAAxC,QAAA,KAAK,SAAmC"}
@@ -1,6 +1,6 @@
1
1
  import { Type } from '@nestjs/common';
2
- import { GenericDomain } from '../../core/domain/generic.domain';
3
- import { GenericView } from '../../core/app/dto/generic.view';
2
+ import { Domain } from '../../core/domain/generic.domain';
3
+ import { View } from '../../core/app/dto/generic.view';
4
4
  import { DtoMapper } from '../../core/app/dto/generic.create.dto';
5
5
  import { IGenericController } from '../interfaces/crud.controller';
6
- export declare function UseDtos<D extends GenericDomain, V extends GenericView, DTO extends DtoMapper<D, DTO>, U extends Partial<DTO>>(CreateDto: Type<DTO>, UpdateDto: Type<U>, View: Type<V>): (target: new (...args: any[]) => IGenericController<D, V, DTO>) => void;
6
+ export declare function UseDtos<D extends Domain, V extends View, DTO extends DtoMapper<D, DTO>, U extends Partial<DTO>>(CreateDto: Type<DTO>, UpdateDto: Type<U>, View: Type<V>): (target: new (...args: any[]) => IGenericController<D, V, DTO>) => void;
@@ -1,6 +1,7 @@
1
1
  export * from './entity-id.dto';
2
2
  export * from './find-by-id.dto';
3
3
  export * from './pagination.dto';
4
+ export * from './pagination.view';
4
5
  export * from './parsed-query-option.dto';
5
6
  export * from './parsed-search.dto';
6
7
  export * from './query-option.dto';
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./entity-id.dto"), exports);
18
18
  __exportStar(require("./find-by-id.dto"), exports);
19
19
  __exportStar(require("./pagination.dto"), exports);
20
+ __exportStar(require("./pagination.view"), exports);
20
21
  __exportStar(require("./parsed-query-option.dto"), exports);
21
22
  __exportStar(require("./parsed-search.dto"), exports);
22
23
  __exportStar(require("./query-option.dto"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,mDAAiC;AACjC,4DAA0C;AAC1C,sDAAoC;AACpC,qDAAmC;AACnC,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC;AAClC,4DAA0C;AAC1C,sDAAoC;AACpC,qDAAmC;AACnC,+CAA6B"}
@@ -0,0 +1,11 @@
1
+ export declare class PaginationMetaView {
2
+ total?: number;
3
+ page?: number;
4
+ limit?: number;
5
+ offset?: number;
6
+ pages?: number;
7
+ }
8
+ export declare class PaginationView<V> {
9
+ items: V[];
10
+ meta: PaginationMetaView;
11
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PaginationView = exports.PaginationMetaView = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ class PaginationMetaView {
15
+ }
16
+ exports.PaginationMetaView = PaginationMetaView;
17
+ __decorate([
18
+ (0, swagger_1.ApiProperty)({ required: true, example: 120 }),
19
+ __metadata("design:type", Number)
20
+ ], PaginationMetaView.prototype, "total", void 0);
21
+ __decorate([
22
+ (0, swagger_1.ApiProperty)({ required: false, example: 2 }),
23
+ __metadata("design:type", Number)
24
+ ], PaginationMetaView.prototype, "page", void 0);
25
+ __decorate([
26
+ (0, swagger_1.ApiProperty)({ required: false, example: 10 }),
27
+ __metadata("design:type", Number)
28
+ ], PaginationMetaView.prototype, "limit", void 0);
29
+ __decorate([
30
+ (0, swagger_1.ApiProperty)({ required: false, example: 20 }),
31
+ __metadata("design:type", Number)
32
+ ], PaginationMetaView.prototype, "offset", void 0);
33
+ __decorate([
34
+ (0, swagger_1.ApiProperty)({ required: false, example: 12 }),
35
+ __metadata("design:type", Number)
36
+ ], PaginationMetaView.prototype, "pages", void 0);
37
+ class PaginationView {
38
+ }
39
+ exports.PaginationView = PaginationView;
40
+ __decorate([
41
+ (0, swagger_1.ApiProperty)({ isArray: true }),
42
+ __metadata("design:type", Array)
43
+ ], PaginationView.prototype, "items", void 0);
44
+ __decorate([
45
+ (0, swagger_1.ApiProperty)({ type: () => PaginationMetaView }),
46
+ __metadata("design:type", PaginationMetaView)
47
+ ], PaginationView.prototype, "meta", void 0);
48
+ //# sourceMappingURL=pagination.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.view.js","sourceRoot":"","sources":["../../../src/common/dto/pagination.view.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,kBAAkB;CAe9B;AAfD,gDAeC;AAbC;IADC,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;iDAC/B;AAGf;IADC,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;gDAC/B;AAGd;IADC,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;iDAC/B;AAGf;IADC,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;kDAC9B;AAGhB;IADC,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;iDAC/B;AAGjB,MAAa,cAAc;CAM1B;AAND,wCAMC;AAJC;IADC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;6CACpB;AAGX;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;8BAC1C,kBAAkB;4CAAC"}
@@ -1,7 +1,6 @@
1
1
  export * from './database';
2
2
  export * from './decorators';
3
3
  export * from './dto';
4
- export * from './errors';
5
4
  export * from './filters';
6
5
  export * from './interceptors';
7
6
  export * from './interfaces';
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./database"), exports);
18
18
  __exportStar(require("./decorators"), exports);
19
19
  __exportStar(require("./dto"), exports);
20
- __exportStar(require("./errors"), exports);
21
20
  __exportStar(require("./filters"), exports);
22
21
  __exportStar(require("./interceptors"), exports);
23
22
  __exportStar(require("./interfaces"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,wCAAsB;AACtB,2CAAyB;AACzB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,wCAAsB;AACtB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,0CAAwB"}
@@ -1,5 +1,2 @@
1
- export * from './body.logger.interceptor';
2
1
  export * from './logging.interceptor';
3
- export * from './query.logger.interceptor';
4
- export * from './query.options.interceptor';
5
2
  export * from './response.interceptor';
@@ -14,9 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./body.logger.interceptor"), exports);
18
17
  __exportStar(require("./logging.interceptor"), exports);
19
- __exportStar(require("./query.logger.interceptor"), exports);
20
- __exportStar(require("./query.options.interceptor"), exports);
21
18
  __exportStar(require("./response.interceptor"), exports);
22
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,yDAAuC"}
@@ -1,6 +1,6 @@
1
- import { CallHandler } from '@nestjs/common';
2
- import { ExecutionContext } from '@nestjs/common';
3
1
  import { NestInterceptor } from '@nestjs/common';
2
+ import { ExecutionContext } from '@nestjs/common';
3
+ import { CallHandler } from '@nestjs/common';
4
4
  import { Observable } from 'rxjs';
5
5
  export declare class ResponseInterceptor implements NestInterceptor {
6
6
  intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
@@ -8,26 +8,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ResponseInterceptor = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
- const operators_1 = require("rxjs/operators");
11
+ const rxjs_1 = require("rxjs");
12
+ const uuid_1 = require("uuid");
12
13
  let ResponseInterceptor = class ResponseInterceptor {
13
14
  intercept(context, next) {
14
- return next.handle().pipe((0, operators_1.map)((res) => {
15
- const payload = {
16
- data: null,
17
- meta: null,
15
+ const request = (0, uuid_1.v4)();
16
+ const startTime = Date.now();
17
+ return next.handle().pipe((0, rxjs_1.map)((data) => {
18
+ const endTime = Date.now();
19
+ return {
20
+ payload: data,
21
+ request,
22
+ startTime,
23
+ endTime,
18
24
  };
19
- switch (true) {
20
- case res instanceof Array:
21
- payload.data = { items: res };
22
- break;
23
- case res instanceof Object:
24
- payload.data = res;
25
- break;
26
- default:
27
- return res;
28
- }
29
- const body = { payload };
30
- return body;
31
25
  }));
32
26
  }
33
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"response.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/response.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAEA,2CAA4C;AAG5C,8CAAqC;AAK9B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,GAAG,EAAE,EAAE;YAGV,MAAM,OAAO,GAAqB;gBAChC,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;aACX,CAAC;YACF,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,GAAG,YAAY,KAAK;oBACvB,OAAO,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBAC9B,MAAM;gBACR,KAAK,GAAG,YAAY,MAAM;oBACxB,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;oBACnB,MAAM;gBACR;oBACE,OAAO,GAAG,CAAC;YACf,CAAC;YACD,MAAM,IAAI,GAAkB,EAAE,OAAO,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAzBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAyB/B"}
1
+ {"version":3,"file":"response.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/response.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAI5C,+BAAuC;AACvC,+BAAoC;AAG7B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,OAAO,GAAG,IAAA,SAAM,GAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,UAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;gBACP,SAAS;gBACT,OAAO;aACR,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAiB/B"}
@@ -1,14 +1,15 @@
1
1
  import { SearchDto } from '../../common/dto';
2
2
  import { QueryOptionDto } from '../../common/dto';
3
- import { GenericDomain } from '../../core/domain/generic.domain';
4
- import { GenericView } from '../../core/app/dto/generic.view';
3
+ import { Domain } from '../../core/domain/generic.domain';
4
+ import { View } from '../../core/app/dto/generic.view';
5
5
  import { DtoMapper } from '../../core/app/dto/generic.create.dto';
6
- export type IGenericController<D extends GenericDomain, V extends GenericView, DTO extends DtoMapper<D, DTO>> = {
6
+ import { Pagination as Page } from '../types/pagination';
7
+ export type IGenericController<D extends Domain, V extends View, DTO extends DtoMapper<D, DTO>> = {
7
8
  create(body: DTO): Promise<Partial<V>>;
8
- paginate(query: SearchDto): Promise<Partial<V>[]>;
9
+ paginate(query: SearchDto): Promise<Page<Partial<V>>>;
9
10
  findById(id: string, query: QueryOptionDto): Promise<Partial<V>>;
10
11
  update(id: string, body: Partial<DTO>): Promise<Partial<V>>;
11
12
  remove(id: string): Promise<Partial<V>>;
12
13
  mapView(domain: D): V;
13
- mapViewList(domains: D[]): V[];
14
+ mapViewList(pagination: Page<D>): Page<V>;
14
15
  };