@ptc-org/nestjs-query-core 0.30.1 → 0.30.2

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 (166) hide show
  1. package/package.json +2 -2
  2. package/src/assemblers/abstract.assembler.d.ts +33 -0
  3. package/src/assemblers/abstract.assembler.js +55 -0
  4. package/src/assemblers/abstract.assembler.js.map +1 -0
  5. package/src/assemblers/assembler.d.ts +86 -0
  6. package/src/assemblers/assembler.deserializer.d.ts +4 -0
  7. package/src/assemblers/assembler.deserializer.js +22 -0
  8. package/src/assemblers/assembler.deserializer.js.map +1 -0
  9. package/src/assemblers/assembler.factory.d.ts +8 -0
  10. package/src/assemblers/assembler.factory.js +29 -0
  11. package/src/assemblers/assembler.factory.js.map +1 -0
  12. package/src/assemblers/assembler.js +33 -0
  13. package/src/assemblers/assembler.js.map +1 -0
  14. package/src/assemblers/assembler.serializer.d.ts +4 -0
  15. package/src/assemblers/assembler.serializer.js +22 -0
  16. package/src/assemblers/assembler.serializer.js.map +1 -0
  17. package/src/assemblers/class-transformer.assembler.d.ts +17 -0
  18. package/src/assemblers/class-transformer.assembler.js +67 -0
  19. package/src/assemblers/class-transformer.assembler.js.map +1 -0
  20. package/src/assemblers/constants.d.ts +4 -0
  21. package/src/assemblers/constants.js +8 -0
  22. package/src/assemblers/constants.js.map +1 -0
  23. package/src/assemblers/default.assembler.d.ts +8 -0
  24. package/src/assemblers/default.assembler.js +14 -0
  25. package/src/assemblers/default.assembler.js.map +1 -0
  26. package/src/assemblers/index.d.ts +7 -0
  27. package/src/assemblers/index.js +19 -0
  28. package/src/assemblers/index.js.map +1 -0
  29. package/src/common/class.type.d.ts +8 -0
  30. package/src/common/class.type.js +3 -0
  31. package/src/common/class.type.js.map +1 -0
  32. package/src/common/class.utils.d.ts +2 -0
  33. package/src/common/class.utils.js +12 -0
  34. package/src/common/class.utils.js.map +1 -0
  35. package/src/common/deep-partial.type.d.ts +6 -0
  36. package/src/common/deep-partial.type.js +3 -0
  37. package/src/common/deep-partial.type.js.map +1 -0
  38. package/src/common/index.d.ts +5 -0
  39. package/src/common/index.js +9 -0
  40. package/src/common/index.js.map +1 -0
  41. package/src/common/misc.utils.d.ts +4 -0
  42. package/src/common/misc.utils.js +9 -0
  43. package/src/common/misc.utils.js.map +1 -0
  44. package/src/common/reflect.utils.d.ts +31 -0
  45. package/src/common/reflect.utils.js +98 -0
  46. package/src/common/reflect.utils.js.map +1 -0
  47. package/src/decorators/helpers.d.ts +6 -0
  48. package/src/decorators/helpers.js +12 -0
  49. package/src/decorators/helpers.js.map +1 -0
  50. package/src/decorators/index.d.ts +3 -0
  51. package/src/decorators/index.js +10 -0
  52. package/src/decorators/index.js.map +1 -0
  53. package/src/decorators/inject-assembler-query-service.decorator.d.ts +4 -0
  54. package/src/decorators/inject-assembler-query-service.decorator.js +8 -0
  55. package/src/decorators/inject-assembler-query-service.decorator.js.map +1 -0
  56. package/src/decorators/inject-query-service.decorator.d.ts +3 -0
  57. package/src/decorators/inject-query-service.decorator.js +8 -0
  58. package/src/decorators/inject-query-service.decorator.js.map +1 -0
  59. package/src/helpers/aggregate.helpers.d.ts +4 -0
  60. package/src/helpers/aggregate.helpers.js +56 -0
  61. package/src/helpers/aggregate.helpers.js.map +1 -0
  62. package/src/helpers/comparison.builder.d.ts +11 -0
  63. package/src/helpers/comparison.builder.js +92 -0
  64. package/src/helpers/comparison.builder.js.map +1 -0
  65. package/src/helpers/filter.builder.d.ts +10 -0
  66. package/src/helpers/filter.builder.js +49 -0
  67. package/src/helpers/filter.builder.js.map +1 -0
  68. package/src/helpers/filter.helpers.d.ts +24 -0
  69. package/src/helpers/filter.helpers.js +115 -0
  70. package/src/helpers/filter.helpers.js.map +1 -0
  71. package/src/helpers/index.d.ts +3 -0
  72. package/src/helpers/index.js +17 -0
  73. package/src/helpers/index.js.map +1 -0
  74. package/src/helpers/page.builder.d.ts +6 -0
  75. package/src/helpers/page.builder.js +13 -0
  76. package/src/helpers/page.builder.js.map +1 -0
  77. package/src/helpers/query.helpers.d.ts +11 -0
  78. package/src/helpers/query.helpers.js +60 -0
  79. package/src/helpers/query.helpers.js.map +1 -0
  80. package/src/helpers/sort.builder.d.ts +11 -0
  81. package/src/helpers/sort.builder.js +82 -0
  82. package/src/helpers/sort.builder.js.map +1 -0
  83. package/src/helpers/types.d.ts +3 -0
  84. package/src/helpers/types.js +3 -0
  85. package/src/helpers/types.js.map +1 -0
  86. package/src/index.d.ts +7 -0
  87. package/src/index.js.map +1 -0
  88. package/src/interfaces/aggregate-query.interface.d.ts +8 -0
  89. package/src/interfaces/aggregate-query.interface.js +3 -0
  90. package/src/interfaces/aggregate-query.interface.js.map +1 -0
  91. package/src/interfaces/aggregate-response.interface.d.ts +14 -0
  92. package/src/interfaces/aggregate-response.interface.js +3 -0
  93. package/src/interfaces/aggregate-response.interface.js.map +1 -0
  94. package/src/interfaces/delete-many-options.interface.d.ts +2 -0
  95. package/src/interfaces/delete-many-options.interface.js +3 -0
  96. package/src/interfaces/delete-many-options.interface.js.map +1 -0
  97. package/src/interfaces/delete-many-response.interface.d.ts +9 -0
  98. package/src/interfaces/delete-many-response.interface.js +3 -0
  99. package/src/interfaces/delete-many-response.interface.js.map +1 -0
  100. package/src/interfaces/delete-one-options.interface.d.ts +7 -0
  101. package/src/interfaces/delete-one-options.interface.js +3 -0
  102. package/src/interfaces/delete-one-options.interface.js.map +1 -0
  103. package/src/interfaces/filter-field-comparison.interface.d.ts +202 -0
  104. package/src/interfaces/filter-field-comparison.interface.js +3 -0
  105. package/src/interfaces/filter-field-comparison.interface.js.map +1 -0
  106. package/src/interfaces/filter.interface.d.ts +113 -0
  107. package/src/interfaces/filter.interface.js +3 -0
  108. package/src/interfaces/filter.interface.js.map +1 -0
  109. package/src/interfaces/filterable.interface.d.ts +13 -0
  110. package/src/interfaces/filterable.interface.js +3 -0
  111. package/src/interfaces/filterable.interface.js.map +1 -0
  112. package/src/interfaces/find-by-id-options.interface.d.ts +7 -0
  113. package/src/interfaces/find-by-id-options.interface.js +3 -0
  114. package/src/interfaces/find-by-id-options.interface.js.map +1 -0
  115. package/src/interfaces/find-relation-options.interface.d.ts +2 -0
  116. package/src/interfaces/find-relation-options.interface.js +3 -0
  117. package/src/interfaces/find-relation-options.interface.js.map +1 -0
  118. package/src/interfaces/get-by-id-options.interface.d.ts +2 -0
  119. package/src/interfaces/get-by-id-options.interface.js +3 -0
  120. package/src/interfaces/get-by-id-options.interface.js.map +1 -0
  121. package/src/interfaces/index.d.ts +17 -0
  122. package/src/interfaces/index.js +21 -0
  123. package/src/interfaces/index.js.map +1 -0
  124. package/src/interfaces/modify-relation-options.interface.d.ts +9 -0
  125. package/src/interfaces/modify-relation-options.interface.js +3 -0
  126. package/src/interfaces/modify-relation-options.interface.js.map +1 -0
  127. package/src/interfaces/paging.interface.d.ts +13 -0
  128. package/src/interfaces/paging.interface.js +3 -0
  129. package/src/interfaces/paging.interface.js.map +1 -0
  130. package/src/interfaces/query.inteface.d.ts +37 -0
  131. package/src/interfaces/query.inteface.js +3 -0
  132. package/src/interfaces/query.inteface.js.map +1 -0
  133. package/src/interfaces/sort-field.interface.d.ts +60 -0
  134. package/src/interfaces/sort-field.interface.js +26 -0
  135. package/src/interfaces/sort-field.interface.js.map +1 -0
  136. package/src/interfaces/update-many-response.interface.d.ts +9 -0
  137. package/src/interfaces/update-many-response.interface.js +3 -0
  138. package/src/interfaces/update-many-response.interface.js.map +1 -0
  139. package/src/interfaces/update-one-options.interface.d.ts +8 -0
  140. package/src/interfaces/update-one-options.interface.js +3 -0
  141. package/src/interfaces/update-one-options.interface.js.map +1 -0
  142. package/src/module.d.ts +10 -0
  143. package/src/module.js +18 -0
  144. package/src/module.js.map +1 -0
  145. package/src/providers.d.ts +4 -0
  146. package/src/providers.js +24 -0
  147. package/src/providers.js.map +1 -0
  148. package/src/services/assembler-query.service.d.ts +63 -0
  149. package/src/services/assembler-query.service.js +132 -0
  150. package/src/services/assembler-query.service.js.map +1 -0
  151. package/src/services/index.d.ts +5 -0
  152. package/src/services/index.js +14 -0
  153. package/src/services/index.js.map +1 -0
  154. package/src/services/noop-query.service.d.ts +32 -0
  155. package/src/services/noop-query.service.js +76 -0
  156. package/src/services/noop-query.service.js.map +1 -0
  157. package/src/services/proxy-query.service.d.ts +59 -0
  158. package/src/services/proxy-query.service.js +82 -0
  159. package/src/services/proxy-query.service.js.map +1 -0
  160. package/src/services/query.service.d.ts +175 -0
  161. package/src/services/query.service.js +14 -0
  162. package/src/services/query.service.js.map +1 -0
  163. package/src/services/relation-query.service.d.ts +50 -0
  164. package/src/services/relation-query.service.js +103 -0
  165. package/src/services/relation-query.service.js.map +1 -0
  166. package/CHANGELOG.md +0 -471
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ptc-org/nestjs-query-core",
3
- "version": "0.30.1",
3
+ "version": "0.30.2",
4
4
  "description": "Base query package",
5
5
  "author": "doug-martin <doug@dougamartin.com>",
6
6
  "homepage": "https://github.com/doug-martin/nestjs-query#readme",
@@ -12,7 +12,7 @@
12
12
  "test": "__tests__"
13
13
  },
14
14
  "files": [
15
- "dist/src/**"
15
+ "src/**"
16
16
  ],
17
17
  "publishConfig": {
18
18
  "access": "public"
@@ -0,0 +1,33 @@
1
+ import { Class, DeepPartial } from '../common';
2
+ import { AggregateQuery, Query, AggregateResponse } from '../interfaces';
3
+ import { Assembler } from './assembler';
4
+ /**
5
+ * Base implementation for Assemblers that requires the implementation of.
6
+ * * convertToDTO
7
+ * * convertToEntity
8
+ * * convertQuery
9
+ *
10
+ */
11
+ export declare abstract class AbstractAssembler<DTO, Entity, C = DeepPartial<DTO>, CE = DeepPartial<Entity>, U = C, UE = CE> implements Assembler<DTO, Entity, C, CE, U, UE> {
12
+ readonly DTOClass: Class<DTO>;
13
+ readonly EntityClass: Class<Entity>;
14
+ /**
15
+ * @param DTOClass - Optional class definition for the DTO. If not provided it will be looked up from the \@Assembler annotation.
16
+ * @param EntityClass - Optional class definition for the entity. If not provided it will be looked up from the \@Assembler annotation.
17
+ */
18
+ constructor(DTOClass?: Class<DTO>, EntityClass?: Class<Entity>);
19
+ abstract convertToDTO(entity: Entity): DTO;
20
+ abstract convertToEntity(dto: DTO): Entity;
21
+ abstract convertQuery(query: Query<DTO>): Query<Entity>;
22
+ abstract convertAggregateQuery(aggregate: AggregateQuery<DTO>): AggregateQuery<Entity>;
23
+ abstract convertAggregateResponse(aggregate: AggregateResponse<Entity>): AggregateResponse<DTO>;
24
+ abstract convertToCreateEntity(create: C): CE;
25
+ abstract convertToUpdateEntity(update: U): UE;
26
+ convertToDTOs(entities: Entity[]): DTO[];
27
+ convertToEntities(dtos: DTO[]): Entity[];
28
+ convertToCreateEntities(createDtos: C[]): CE[];
29
+ convertAsyncToDTO(entity: Promise<Entity>): Promise<DTO>;
30
+ convertAsyncToDTOs(entities: Promise<Entity[]>): Promise<DTO[]>;
31
+ convertAsyncToEntity(dto: Promise<DTO>): Promise<Entity>;
32
+ convertAsyncToEntities(dtos: Promise<DTO[]>): Promise<Entity[]>;
33
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractAssembler = void 0;
4
+ const assembler_1 = require("./assembler");
5
+ /**
6
+ * Base implementation for Assemblers that requires the implementation of.
7
+ * * convertToDTO
8
+ * * convertToEntity
9
+ * * convertQuery
10
+ *
11
+ */
12
+ class AbstractAssembler {
13
+ /**
14
+ * @param DTOClass - Optional class definition for the DTO. If not provided it will be looked up from the \@Assembler annotation.
15
+ * @param EntityClass - Optional class definition for the entity. If not provided it will be looked up from the \@Assembler annotation.
16
+ */
17
+ constructor(DTOClass, EntityClass) {
18
+ const classes = (0, assembler_1.getAssemblerClasses)(this.constructor);
19
+ const DTOClas = DTOClass ?? classes?.DTOClass;
20
+ const EntityClas = EntityClass ?? classes?.EntityClass;
21
+ if (!DTOClas || !EntityClas) {
22
+ // the DTO and entity classes were not provided and we didnt find them in the metadata storage.
23
+ throw new Error(`Unable to determine DTO or Entity types for ${this.constructor.name}. Did you annotate your assembler with @Assembler`);
24
+ }
25
+ this.DTOClass = DTOClas;
26
+ this.EntityClass = EntityClas;
27
+ }
28
+ convertToDTOs(entities) {
29
+ return entities.map((e) => this.convertToDTO(e));
30
+ }
31
+ convertToEntities(dtos) {
32
+ return dtos.map((dto) => this.convertToEntity(dto));
33
+ }
34
+ convertToCreateEntities(createDtos) {
35
+ return createDtos.map((c) => this.convertToCreateEntity(c));
36
+ }
37
+ async convertAsyncToDTO(entity) {
38
+ const e = await entity;
39
+ return this.convertToDTO(e);
40
+ }
41
+ async convertAsyncToDTOs(entities) {
42
+ const es = await entities;
43
+ return this.convertToDTOs(es);
44
+ }
45
+ async convertAsyncToEntity(dto) {
46
+ const d = await dto;
47
+ return this.convertToEntity(d);
48
+ }
49
+ async convertAsyncToEntities(dtos) {
50
+ const ds = await dtos;
51
+ return this.convertToEntities(ds);
52
+ }
53
+ }
54
+ exports.AbstractAssembler = AbstractAssembler;
55
+ //# sourceMappingURL=abstract.assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.assembler.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/abstract.assembler.ts"],"names":[],"mappings":";;;AAEA,2CAA6D;AAE7D;;;;;;GAMG;AACH,MAAsB,iBAAiB;IAOrC;;;OAGG;IACH,YAAY,QAAqB,EAAE,WAA2B;QAC5D,MAAM,OAAO,GAAG,IAAA,+BAAmB,EAAC,IAAI,CAAC,WAA0D,CAAC,CAAC;QACrG,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAW,IAAI,OAAO,EAAE,WAAW,CAAC;QACvD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;YAC3B,+FAA+F;YAC/F,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,CACxH,CAAC;SACH;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAgBD,aAAa,CAAC,QAAkB;QAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,iBAAiB,CAAC,IAAW;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,uBAAuB,CAAC,UAAe;QACrC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QAC7C,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAA2B;QAClD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,GAAiB;QAC1C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAoB;QAC/C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;CACF;AAtED,8CAsEC"}
@@ -0,0 +1,86 @@
1
+ import { Class, DeepPartial, MetaValue } from '../common';
2
+ import { AggregateQuery, AggregateResponse, Query } from '../interfaces';
3
+ export interface Assembler<DTO, Entity, CreateDTO = DeepPartial<DTO>, CreateEntity = DeepPartial<Entity>, UpdateDTO = CreateDTO, UpdateEntity = CreateEntity> {
4
+ /**
5
+ * Convert an entity to a DTO
6
+ * @param entity - the entity to convert
7
+ */
8
+ convertToDTO(entity: Entity): DTO;
9
+ /**
10
+ * Convert a DTO to an entity.
11
+ * @param dto - The dto to convert.
12
+ */
13
+ convertToEntity(dto: DTO): Entity;
14
+ /**
15
+ * Convert a DTO query to an entity query.
16
+ * @param query - the query to convert.
17
+ */
18
+ convertQuery(query: Query<DTO>): Query<Entity>;
19
+ /**
20
+ * Convert a DTO query to an entity query.
21
+ * @param aggregate - the aggregate query to convert.
22
+ */
23
+ convertAggregateQuery(aggregate: AggregateQuery<DTO>): AggregateQuery<Entity>;
24
+ /**
25
+ * Convert a Entity aggregate response query to an dto aggregate.
26
+ * @param aggregate - the aggregate query to convert.
27
+ */
28
+ convertAggregateResponse(aggregate: AggregateResponse<Entity>): AggregateResponse<DTO>;
29
+ /**
30
+ * Convert a create dto input to the equivalent create entity type
31
+ * @param createDTO
32
+ */
33
+ convertToCreateEntity(createDTO: CreateDTO): CreateEntity;
34
+ /**
35
+ * Convert a update dto input to the equivalent update entity type
36
+ * @param createDTO
37
+ */
38
+ convertToUpdateEntity(createDTO: UpdateDTO): UpdateEntity;
39
+ /**
40
+ * Convert an array of entities to a an of DTOs
41
+ * @param entities - the entities to convert.
42
+ */
43
+ convertToDTOs(entities: Entity[]): DTO[];
44
+ /**
45
+ * Convert an array of DTOs to an array of entities.
46
+ * @param dtos - the dtos to convert.
47
+ */
48
+ convertToEntities(dtos: DTO[]): Entity[];
49
+ /**
50
+ * Convert an entity to a DTO.
51
+ * @param entity - the promise that should resolve with the entity.
52
+ */
53
+ convertAsyncToDTO(entity: Promise<Entity>): Promise<DTO>;
54
+ /**
55
+ * Convert an array of entities to an array of DTOs.
56
+ * @param entities - the promise that should resolve with the entity array.
57
+ */
58
+ convertAsyncToDTOs(entities: Promise<Entity[]>): Promise<DTO[]>;
59
+ /**
60
+ * Convert a DTO to an entity.
61
+ * @param dto - the promise that should resolve with the DTO.
62
+ */
63
+ convertAsyncToEntity(dto: Promise<DTO>): Promise<Entity>;
64
+ /**
65
+ * Convert an array of DTOs to an array of entities.
66
+ * @param dtos - the promise that should resolve with the dtos.
67
+ */
68
+ convertAsyncToEntities(dtos: Promise<DTO[]>): Promise<Entity[]>;
69
+ /**
70
+ * Convert an array of create DTOs to an array of create entities
71
+ * @param createDtos
72
+ */
73
+ convertToCreateEntities(createDtos: CreateDTO[]): CreateEntity[];
74
+ }
75
+ export interface AssemblerClasses<DTO, Entity> {
76
+ DTOClass: Class<DTO>;
77
+ EntityClass: Class<Entity>;
78
+ }
79
+ /**
80
+ * Class decorator for Assemblers to register them with nestjs-query
81
+ * @param DTOClass - the DTO class.
82
+ * @param EntityClass - The entity class.
83
+ */
84
+ export declare function Assembler<DTO, Entity, C = DeepPartial<DTO>, CE = DeepPartial<Entity>, U = DeepPartial<DTO>, UE = DeepPartial<Entity>>(DTOClass: Class<DTO>, EntityClass: Class<Entity>): <Cls extends Class<Assembler<DTO, Entity, C, CE, U, UE>>>(cls: Cls) => void | Cls;
85
+ export declare function getAssemblers<DTO>(DTOClass: Class<DTO>): MetaValue<Map<Class<unknown>, Class<Assembler<DTO, unknown, unknown, unknown, unknown, unknown>>>>;
86
+ export declare function getAssemblerClasses<DTO, Entity, C, CE, U, UE>(AssemblerClass: Class<Assembler<DTO, Entity, C, CE, U, UE>>): MetaValue<AssemblerClasses<DTO, Entity>>;
@@ -0,0 +1,4 @@
1
+ import { Class, MetaValue } from '../common';
2
+ export declare type AssemblerDeserializer<T> = (obj: object) => T;
3
+ export declare function AssemblerDeserializer<T>(deserializer: AssemblerDeserializer<T>): <Cls extends Class<T>>(cls: Cls) => void | Cls;
4
+ export declare function getAssemblerDeserializer<DTO>(DTOClass: Class<DTO>): MetaValue<AssemblerDeserializer<DTO>>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAssemblerDeserializer = exports.AssemblerDeserializer = void 0;
4
+ const common_1 = require("../common");
5
+ const constants_1 = require("./constants");
6
+ const reflector = new common_1.ValueReflector(constants_1.ASSEMBLER_DESERIALIZER_KEY);
7
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
8
+ function AssemblerDeserializer(deserializer) {
9
+ return (cls) => {
10
+ if (reflector.isDefined(cls)) {
11
+ throw new Error(`Assembler Deserializer already registered for ${cls.name}`);
12
+ }
13
+ reflector.set(cls, deserializer);
14
+ return cls;
15
+ };
16
+ }
17
+ exports.AssemblerDeserializer = AssemblerDeserializer;
18
+ function getAssemblerDeserializer(DTOClass) {
19
+ return reflector.get(DTOClass, true);
20
+ }
21
+ exports.getAssemblerDeserializer = getAssemblerDeserializer;
22
+ //# sourceMappingURL=assembler.deserializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.deserializer.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/assembler.deserializer.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,2CAAyD;AAEzD,MAAM,SAAS,GAAG,IAAI,uBAAc,CAAC,sCAA0B,CAAC,CAAC;AAGjE,0EAA0E;AAC1E,SAAgB,qBAAqB,CAAI,YAAsC;IAC7E,OAAO,CAAuB,GAAQ,EAAc,EAAE;QACpD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9E;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AARD,sDAQC;AAED,SAAgB,wBAAwB,CAAM,QAAoB;IAChE,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,4DAEC"}
@@ -0,0 +1,8 @@
1
+ import { Class, DeepPartial } from '../common';
2
+ import { Assembler } from './assembler';
3
+ /**
4
+ * Assembler Service used by query services to look up Assemblers.
5
+ */
6
+ export declare class AssemblerFactory {
7
+ static getAssembler<DTO, Entity, C = DeepPartial<DTO>, CE = DeepPartial<Entity>, U = C, UE = CE>(DTOClass: Class<DTO>, EntityClass: Class<Entity>): Assembler<DTO, Entity, C, CE, U, UE>;
8
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssemblerFactory = void 0;
4
+ const assembler_1 = require("./assembler");
5
+ const default_assembler_1 = require("./default.assembler");
6
+ /**
7
+ * Assembler Service used by query services to look up Assemblers.
8
+ */
9
+ class AssemblerFactory {
10
+ static getAssembler(DTOClass, EntityClass) {
11
+ const AssemblerClasses = (0, assembler_1.getAssemblers)(DTOClass);
12
+ if (AssemblerClasses) {
13
+ const AssemblerClass = AssemblerClasses.get(EntityClass);
14
+ if (AssemblerClass) {
15
+ return new AssemblerClass();
16
+ }
17
+ const keys = [...AssemblerClasses.keys()];
18
+ const keysWithParent = keys.filter((k) => k.prototype instanceof EntityClass);
19
+ if (keysWithParent.length === 1) {
20
+ return this.getAssembler(DTOClass, keysWithParent[0]);
21
+ }
22
+ }
23
+ const defaultAssembler = new default_assembler_1.DefaultAssembler(DTOClass, EntityClass);
24
+ // if its a default just assume the types can be converted for all types
25
+ return defaultAssembler;
26
+ }
27
+ }
28
+ exports.AssemblerFactory = AssemblerFactory;
29
+ //# sourceMappingURL=assembler.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.factory.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/assembler.factory.ts"],"names":[],"mappings":";;;AACA,2CAAuD;AACvD,2DAAuD;AAEvD;;GAEG;AACH,MAAa,gBAAgB;IAC3B,MAAM,CAAC,YAAY,CACjB,QAAoB,EACpB,WAA0B;QAE1B,MAAM,gBAAgB,GAAG,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,gBAAgB,EAAE;YACpB,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,cAAc,EAAE;gBAClB,OAAO,IAAI,cAAc,EAA0C,CAAC;aACrE;YACD,MAAM,IAAI,GAAG,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,YAAY,WAAW,CAAC,CAAC;YAC9E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAkB,CAAC,CAAC;aACxE;SACF;QACD,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrE,wEAAwE;QACxE,OAAO,gBAAmE,CAAC;IAC7E,CAAC;CACF;AArBD,4CAqBC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAssemblerClasses = exports.getAssemblers = exports.Assembler = void 0;
4
+ const common_1 = require("../common");
5
+ const constants_1 = require("./constants");
6
+ const assemblerReflector = new common_1.ValueReflector(constants_1.ASSEMBLER_CLASSES_KEY);
7
+ const reflector = new common_1.MapReflector(constants_1.ASSEMBLER_KEY);
8
+ /**
9
+ * Class decorator for Assemblers to register them with nestjs-query
10
+ * @param DTOClass - the DTO class.
11
+ * @param EntityClass - The entity class.
12
+ */
13
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
14
+ function Assembler(DTOClass, EntityClass) {
15
+ return (cls) => {
16
+ if (reflector.has(DTOClass, EntityClass)) {
17
+ throw new Error(`Assembler already registered for ${DTOClass.name} ${EntityClass.name}`);
18
+ }
19
+ assemblerReflector.set(cls, { DTOClass, EntityClass });
20
+ reflector.set(DTOClass, EntityClass, cls);
21
+ return cls;
22
+ };
23
+ }
24
+ exports.Assembler = Assembler;
25
+ function getAssemblers(DTOClass) {
26
+ return reflector.get(DTOClass);
27
+ }
28
+ exports.getAssemblers = getAssemblers;
29
+ function getAssemblerClasses(AssemblerClass) {
30
+ return assemblerReflector.get(AssemblerClass);
31
+ }
32
+ exports.getAssemblerClasses = getAssemblerClasses;
33
+ //# sourceMappingURL=assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/assembler.ts"],"names":[],"mappings":";;;AAAA,sCAAwF;AAExF,2CAAmE;AA6FnE,MAAM,kBAAkB,GAAG,IAAI,uBAAc,CAAC,iCAAqB,CAAC,CAAC;AACrE,MAAM,SAAS,GAAG,IAAI,qBAAY,CAAiB,yBAAa,CAAC,CAAC;AAOlE;;;;GAIG;AACH,0EAA0E;AAC1E,SAAgB,SAAS,CAOvB,QAAoB,EAAE,WAA0B;IAChD,OAAO,CAA0D,GAAQ,EAAc,EAAE;QACvF,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1F;QACD,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAhBD,8BAgBC;AAED,SAAgB,aAAa,CAC3B,QAAoB;IAEpB,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAJD,sCAIC;AAED,SAAgB,mBAAmB,CACjC,cAA2D;IAE3D,OAAO,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AAJD,kDAIC"}
@@ -0,0 +1,4 @@
1
+ import { Class, MetaValue } from '../common';
2
+ export declare type AssemblerSerializer<T> = (instance: T) => object;
3
+ export declare function AssemblerSerializer<T>(serializer: AssemblerSerializer<T>): <Cls extends Class<T>>(cls: Cls) => void | Cls;
4
+ export declare function getAssemblerSerializer<DTO>(DTOClass: Class<DTO>): MetaValue<AssemblerSerializer<DTO>>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAssemblerSerializer = exports.AssemblerSerializer = void 0;
4
+ const common_1 = require("../common");
5
+ const constants_1 = require("./constants");
6
+ const reflector = new common_1.ValueReflector(constants_1.ASSEMBLER_SERIALIZER_KEY);
7
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
8
+ function AssemblerSerializer(serializer) {
9
+ return (cls) => {
10
+ if (reflector.isDefined(cls)) {
11
+ throw new Error(`Assembler Serializer already registered for ${cls.name}`);
12
+ }
13
+ reflector.set(cls, serializer);
14
+ return cls;
15
+ };
16
+ }
17
+ exports.AssemblerSerializer = AssemblerSerializer;
18
+ function getAssemblerSerializer(DTOClass) {
19
+ return reflector.get(DTOClass, true);
20
+ }
21
+ exports.getAssemblerSerializer = getAssemblerSerializer;
22
+ //# sourceMappingURL=assembler.serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.serializer.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/assembler.serializer.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,2CAAuD;AAEvD,MAAM,SAAS,GAAG,IAAI,uBAAc,CAAC,oCAAwB,CAAC,CAAC;AAG/D,0EAA0E;AAC1E,SAAgB,mBAAmB,CAAI,UAAkC;IACvE,OAAO,CAAuB,GAAQ,EAAc,EAAE;QACpD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5E;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AARD,kDAQC;AAED,SAAgB,sBAAsB,CAAM,QAAoB;IAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,wDAEC"}
@@ -0,0 +1,17 @@
1
+ import { AggregateQuery, AggregateResponse, Query } from '../interfaces';
2
+ import { AbstractAssembler } from './abstract.assembler';
3
+ import { Class, DeepPartial } from '../common';
4
+ /**
5
+ * Base assembler that uses class-transformer to transform to and from the DTO/Entity.
6
+ */
7
+ export declare abstract class ClassTransformerAssembler<DTO, Entity> extends AbstractAssembler<DTO, Entity, DeepPartial<DTO>, DeepPartial<Entity>, DeepPartial<DTO>, DeepPartial<Entity>> {
8
+ convertToDTO(entity: Entity): DTO;
9
+ convertToEntity(dto: DTO): Entity;
10
+ convertQuery(query: Query<DTO>): Query<Entity>;
11
+ convertAggregateQuery(aggregate: AggregateQuery<DTO>): AggregateQuery<Entity>;
12
+ convertAggregateResponse(aggregate: AggregateResponse<Entity>): AggregateResponse<DTO>;
13
+ convertToCreateEntity(create: DeepPartial<DTO>): DeepPartial<Entity>;
14
+ convertToUpdateEntity(create: DeepPartial<DTO>): DeepPartial<Entity>;
15
+ convert<T>(cls: Class<T>, obj: object): T;
16
+ toPlain(entityOrDto: Entity | DTO): object;
17
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClassTransformerAssembler = void 0;
4
+ const class_transformer_1 = require("class-transformer");
5
+ const abstract_assembler_1 = require("./abstract.assembler");
6
+ const assembler_serializer_1 = require("./assembler.serializer");
7
+ const assembler_deserializer_1 = require("./assembler.deserializer");
8
+ /**
9
+ * Base assembler that uses class-transformer to transform to and from the DTO/Entity.
10
+ */
11
+ class ClassTransformerAssembler extends abstract_assembler_1.AbstractAssembler {
12
+ convertToDTO(entity) {
13
+ return this.convert(this.DTOClass, this.toPlain(entity));
14
+ }
15
+ convertToEntity(dto) {
16
+ return this.convert(this.EntityClass, this.toPlain(dto));
17
+ }
18
+ convertQuery(query) {
19
+ return query;
20
+ }
21
+ convertAggregateQuery(aggregate) {
22
+ return aggregate;
23
+ }
24
+ convertAggregateResponse(aggregate) {
25
+ return aggregate;
26
+ }
27
+ convertToCreateEntity(create) {
28
+ return this.convert(this.EntityClass, create);
29
+ }
30
+ convertToUpdateEntity(create) {
31
+ return this.convert(this.EntityClass, create);
32
+ }
33
+ // eslint-disable-next-line @typescript-eslint/ban-types
34
+ convert(cls, obj) {
35
+ const deserializer = (0, assembler_deserializer_1.getAssemblerDeserializer)(cls);
36
+ if (deserializer) {
37
+ return deserializer(obj);
38
+ }
39
+ return (0, class_transformer_1.plainToClass)(cls, obj);
40
+ }
41
+ // eslint-disable-next-line @typescript-eslint/ban-types
42
+ toPlain(entityOrDto) {
43
+ if (entityOrDto && entityOrDto instanceof this.EntityClass) {
44
+ const serializer = (0, assembler_serializer_1.getAssemblerSerializer)(this.EntityClass);
45
+ if (serializer) {
46
+ return serializer(entityOrDto);
47
+ }
48
+ }
49
+ else if (entityOrDto instanceof this.DTOClass) {
50
+ const serializer = (0, assembler_serializer_1.getAssemblerSerializer)(this.DTOClass);
51
+ if (serializer) {
52
+ return serializer(entityOrDto);
53
+ }
54
+ }
55
+ else if ('constructor' in entityOrDto) {
56
+ // eslint-disable-next-line @typescript-eslint/ban-types
57
+ const serializer = (0, assembler_serializer_1.getAssemblerSerializer)((entityOrDto).constructor);
58
+ if (serializer) {
59
+ return serializer(entityOrDto);
60
+ }
61
+ }
62
+ // eslint-disable-next-line @typescript-eslint/ban-types
63
+ return entityOrDto;
64
+ }
65
+ }
66
+ exports.ClassTransformerAssembler = ClassTransformerAssembler;
67
+ //# sourceMappingURL=class-transformer.assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-transformer.assembler.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/class-transformer.assembler.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AAEjD,6DAAyD;AAEzD,iEAAgE;AAChE,qEAAoE;AAEpE;;GAEG;AACH,MAAsB,yBAAuC,SAAQ,sCAK/C;IAEpB,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe,CAAC,GAAQ;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY,CAAC,KAAiB;QAC5B,OAAO,KAAiC,CAAC;IAC3C,CAAC;IAED,qBAAqB,CAAC,SAA8B;QAClD,OAAO,SAA8C,CAAC;IACxD,CAAC;IAED,wBAAwB,CAAC,SAAoC;QAC3D,OAAO,SAA8C,CAAC;IACxD,CAAC;IAED,qBAAqB,CAAC,MAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,qBAAqB,CAAC,MAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAI,GAAa,EAAE,GAAW;QACnC,MAAM,YAAY,GAAG,IAAA,iDAAwB,EAAC,GAAG,CAAC,CAAC;QACnD,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;SAC1B;QACD,OAAO,IAAA,gCAAY,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,WAAyB;QAC/B,IAAI,WAAW,IAAI,WAAW,YAAY,IAAI,CAAC,WAAW,EAAE;YAC1D,MAAM,UAAU,GAAG,IAAA,6CAAsB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5D,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;aAAM,IAAI,WAAW,YAAY,IAAI,CAAC,QAAQ,EAAE;YAC/C,MAAM,UAAU,GAAG,IAAA,6CAAsB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;aAAM,IAAI,aAAa,IAAI,WAAW,EAAE;YACvC,wDAAwD;YACxD,MAAM,UAAU,GAAG,IAAA,6CAAsB,EAAC,CAAC,WAAW,CAAC,CAAC,WAA6B,CAAC,CAAC;YAEvF,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;QACD,wDAAwD;QACxD,OAAO,WAAgC,CAAC;IAC1C,CAAC;CACF;AAnED,8DAmEC"}
@@ -0,0 +1,4 @@
1
+ export declare const ASSEMBLER_KEY = "nestjs-query:assembler";
2
+ export declare const ASSEMBLER_CLASSES_KEY = "nestjs-query:assembler-classes";
3
+ export declare const ASSEMBLER_SERIALIZER_KEY = "nestjs-query:assembler-serializer";
4
+ export declare const ASSEMBLER_DESERIALIZER_KEY = "nestjs-query:assembler-deserializer";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ASSEMBLER_DESERIALIZER_KEY = exports.ASSEMBLER_SERIALIZER_KEY = exports.ASSEMBLER_CLASSES_KEY = exports.ASSEMBLER_KEY = void 0;
4
+ exports.ASSEMBLER_KEY = 'nestjs-query:assembler';
5
+ exports.ASSEMBLER_CLASSES_KEY = 'nestjs-query:assembler-classes';
6
+ exports.ASSEMBLER_SERIALIZER_KEY = 'nestjs-query:assembler-serializer';
7
+ exports.ASSEMBLER_DESERIALIZER_KEY = 'nestjs-query:assembler-deserializer';
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,wBAAwB,CAAC;AACzC,QAAA,qBAAqB,GAAG,gCAAgC,CAAC;AACzD,QAAA,wBAAwB,GAAG,mCAAmC,CAAC;AAC/D,QAAA,0BAA0B,GAAG,qCAAqC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Class } from '../common';
2
+ import { ClassTransformerAssembler } from './class-transformer.assembler';
3
+ /**
4
+ * DefaultAssembler used when an Assembler was not defined.
5
+ */
6
+ export declare class DefaultAssembler<DTO, Entity> extends ClassTransformerAssembler<DTO, Entity> {
7
+ constructor(DTOClass: Class<DTO>, EntityClass: Class<Entity>);
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultAssembler = void 0;
4
+ const class_transformer_assembler_1 = require("./class-transformer.assembler");
5
+ /**
6
+ * DefaultAssembler used when an Assembler was not defined.
7
+ */
8
+ class DefaultAssembler extends class_transformer_assembler_1.ClassTransformerAssembler {
9
+ constructor(DTOClass, EntityClass) {
10
+ super(DTOClass, EntityClass);
11
+ }
12
+ }
13
+ exports.DefaultAssembler = DefaultAssembler;
14
+ //# sourceMappingURL=default.assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.assembler.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/default.assembler.ts"],"names":[],"mappings":";;;AACA,+EAA0E;AAE1E;;GAEG;AACH,MAAa,gBAA8B,SAAQ,uDAAsC;IACvF,YAAY,QAAoB,EAAE,WAA0B;QAC1D,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;CACF;AAJD,4CAIC"}
@@ -0,0 +1,7 @@
1
+ export { ClassTransformerAssembler } from './class-transformer.assembler';
2
+ export { DefaultAssembler } from './default.assembler';
3
+ export { AbstractAssembler } from './abstract.assembler';
4
+ export { Assembler, getAssemblerClasses } from './assembler';
5
+ export { AssemblerFactory } from './assembler.factory';
6
+ export { AssemblerSerializer } from './assembler.serializer';
7
+ export { AssemblerDeserializer } from './assembler.deserializer';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssemblerDeserializer = exports.AssemblerSerializer = exports.AssemblerFactory = exports.getAssemblerClasses = exports.Assembler = exports.AbstractAssembler = exports.DefaultAssembler = exports.ClassTransformerAssembler = void 0;
4
+ var class_transformer_assembler_1 = require("./class-transformer.assembler");
5
+ Object.defineProperty(exports, "ClassTransformerAssembler", { enumerable: true, get: function () { return class_transformer_assembler_1.ClassTransformerAssembler; } });
6
+ var default_assembler_1 = require("./default.assembler");
7
+ Object.defineProperty(exports, "DefaultAssembler", { enumerable: true, get: function () { return default_assembler_1.DefaultAssembler; } });
8
+ var abstract_assembler_1 = require("./abstract.assembler");
9
+ Object.defineProperty(exports, "AbstractAssembler", { enumerable: true, get: function () { return abstract_assembler_1.AbstractAssembler; } });
10
+ var assembler_1 = require("./assembler");
11
+ Object.defineProperty(exports, "Assembler", { enumerable: true, get: function () { return assembler_1.Assembler; } });
12
+ Object.defineProperty(exports, "getAssemblerClasses", { enumerable: true, get: function () { return assembler_1.getAssemblerClasses; } });
13
+ var assembler_factory_1 = require("./assembler.factory");
14
+ Object.defineProperty(exports, "AssemblerFactory", { enumerable: true, get: function () { return assembler_factory_1.AssemblerFactory; } });
15
+ var assembler_serializer_1 = require("./assembler.serializer");
16
+ Object.defineProperty(exports, "AssemblerSerializer", { enumerable: true, get: function () { return assembler_serializer_1.AssemblerSerializer; } });
17
+ var assembler_deserializer_1 = require("./assembler.deserializer");
18
+ Object.defineProperty(exports, "AssemblerDeserializer", { enumerable: true, get: function () { return assembler_deserializer_1.AssemblerDeserializer; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/index.ts"],"names":[],"mappings":";;;AAAA,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,yCAA6D;AAApD,sGAAA,SAAS,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AACvC,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAC5B,mEAAiE;AAAxD,+HAAA,qBAAqB,OAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A function that acts as a constructor for a class.
3
+ *
4
+ * @typeparam T - the class instance type the constructor returns.
5
+ */
6
+ export interface Class<T> {
7
+ new (...args: any[]): T;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=class.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.type.js","sourceRoot":"","sources":["../../../../../packages/core/src/common/class.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { Class } from './class.type';
2
+ export declare function getPrototypeChain(Cls: Class<unknown>): Class<unknown>[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPrototypeChain = void 0;
4
+ function getPrototypeChain(Cls) {
5
+ const baseClass = Object.getPrototypeOf(Cls);
6
+ if (baseClass) {
7
+ return [Cls, ...getPrototypeChain(baseClass)];
8
+ }
9
+ return [Cls];
10
+ }
11
+ exports.getPrototypeChain = getPrototypeChain;
12
+ //# sourceMappingURL=class.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class.utils.js","sourceRoot":"","sources":["../../../../../packages/core/src/common/class.utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,iBAAiB,CAAC,GAAmB;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAmB,CAAC;IAC/D,IAAI,SAAS,EAAE;QACb,OAAO,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAND,8CAMC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Create a Partial that will allow for partials of nested objects and arrays.
3
+ */
4
+ export declare type DeepPartial<T> = {
5
+ [P in keyof T]?: T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : DeepPartial<T[P]> | T[P];
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=deep-partial.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-partial.type.js","sourceRoot":"","sources":["../../../../../packages/core/src/common/deep-partial.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './deep-partial.type';
2
+ export * from './class.type';
3
+ export * from './reflect.utils';
4
+ export * from './class.utils';
5
+ export * from './misc.utils';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./deep-partial.type"), exports);
5
+ (0, tslib_1.__exportStar)(require("./class.type"), exports);
6
+ (0, tslib_1.__exportStar)(require("./reflect.utils"), exports);
7
+ (0, tslib_1.__exportStar)(require("./class.utils"), exports);
8
+ (0, tslib_1.__exportStar)(require("./misc.utils"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/common/index.ts"],"names":[],"mappings":";;;AAAA,mEAAoC;AACpC,4DAA6B;AAC7B,+DAAgC;AAChC,6DAA8B;AAC9B,4DAA6B"}
@@ -0,0 +1,4 @@
1
+ export declare type NamedType = {
2
+ name: string;
3
+ };
4
+ export declare const isNamed: (SomeType: any) => SomeType is NamedType;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNamed = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types
5
+ const isNamed = (SomeType) =>
6
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
7
+ 'name' in SomeType && typeof SomeType.name === 'string';
8
+ exports.isNamed = isNamed;
9
+ //# sourceMappingURL=misc.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.utils.js","sourceRoot":"","sources":["../../../../../packages/core/src/common/misc.utils.ts"],"names":[],"mappings":";;;AACA,gHAAgH;AACzG,MAAM,OAAO,GAAG,CAAC,QAAa,EAAyB,EAAE;AAC9D,sEAAsE;AACtE,MAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AAF7C,QAAA,OAAO,WAEsC"}