@trishchuk/nestjs-query-core 0.0.0-stage → 9.5.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 (191) hide show
  1. package/README.md +21 -2
  2. package/package.json +41 -4
  3. package/src/assemblers/abstract.assembler.d.ts +29 -0
  4. package/src/assemblers/abstract.assembler.js +39 -0
  5. package/src/assemblers/abstract.assembler.js.map +1 -0
  6. package/src/assemblers/assembler.d.ts +66 -0
  7. package/src/assemblers/assembler.deserializer.d.ts +4 -0
  8. package/src/assemblers/assembler.deserializer.js +21 -0
  9. package/src/assemblers/assembler.deserializer.js.map +1 -0
  10. package/src/assemblers/assembler.factory.d.ts +8 -0
  11. package/src/assemblers/assembler.factory.js +29 -0
  12. package/src/assemblers/assembler.factory.js.map +1 -0
  13. package/src/assemblers/assembler.js +32 -0
  14. package/src/assemblers/assembler.js.map +1 -0
  15. package/src/assemblers/assembler.serializer.d.ts +4 -0
  16. package/src/assemblers/assembler.serializer.js +21 -0
  17. package/src/assemblers/assembler.serializer.js.map +1 -0
  18. package/src/assemblers/class-transformer.assembler.d.ts +18 -0
  19. package/src/assemblers/class-transformer.assembler.js +81 -0
  20. package/src/assemblers/class-transformer.assembler.js.map +1 -0
  21. package/src/assemblers/constants.d.ts +4 -0
  22. package/src/assemblers/constants.js +8 -0
  23. package/src/assemblers/constants.js.map +1 -0
  24. package/src/assemblers/default.assembler.d.ts +8 -0
  25. package/src/assemblers/default.assembler.js +14 -0
  26. package/src/assemblers/default.assembler.js.map +1 -0
  27. package/src/assemblers/index.d.ts +7 -0
  28. package/src/assemblers/index.js +19 -0
  29. package/src/assemblers/index.js.map +1 -0
  30. package/src/common/class.type.d.ts +8 -0
  31. package/src/common/class.type.js +3 -0
  32. package/src/common/class.type.js.map +1 -0
  33. package/src/common/class.utils.d.ts +2 -0
  34. package/src/common/class.utils.js +11 -0
  35. package/src/common/class.utils.js.map +1 -0
  36. package/src/common/deep-partial.type.d.ts +6 -0
  37. package/src/common/deep-partial.type.js +3 -0
  38. package/src/common/deep-partial.type.js.map +1 -0
  39. package/src/common/index.d.ts +5 -0
  40. package/src/common/index.js +9 -0
  41. package/src/common/index.js.map +1 -0
  42. package/src/common/misc.utils.d.ts +6 -0
  43. package/src/common/misc.utils.js +17 -0
  44. package/src/common/misc.utils.js.map +1 -0
  45. package/src/common/reflect.utils.d.ts +31 -0
  46. package/src/common/reflect.utils.js +98 -0
  47. package/src/common/reflect.utils.js.map +1 -0
  48. package/src/decorators/helpers.d.ts +6 -0
  49. package/src/decorators/helpers.js +11 -0
  50. package/src/decorators/helpers.js.map +1 -0
  51. package/src/decorators/index.d.ts +3 -0
  52. package/src/decorators/index.js +10 -0
  53. package/src/decorators/index.js.map +1 -0
  54. package/src/decorators/inject-assembler-query-service.decorator.d.ts +4 -0
  55. package/src/decorators/inject-assembler-query-service.decorator.js +8 -0
  56. package/src/decorators/inject-assembler-query-service.decorator.js.map +1 -0
  57. package/src/decorators/inject-query-service.decorator.d.ts +3 -0
  58. package/src/decorators/inject-query-service.decorator.js +8 -0
  59. package/src/decorators/inject-query-service.decorator.js.map +1 -0
  60. package/src/helpers/aggregate.helpers.d.ts +4 -0
  61. package/src/helpers/aggregate.helpers.js +56 -0
  62. package/src/helpers/aggregate.helpers.js.map +1 -0
  63. package/src/helpers/comparison.builder.d.ts +11 -0
  64. package/src/helpers/comparison.builder.js +92 -0
  65. package/src/helpers/comparison.builder.js.map +1 -0
  66. package/src/helpers/filter.builder.d.ts +10 -0
  67. package/src/helpers/filter.builder.js +49 -0
  68. package/src/helpers/filter.builder.js.map +1 -0
  69. package/src/helpers/filter.helpers.d.ts +23 -0
  70. package/src/helpers/filter.helpers.js +170 -0
  71. package/src/helpers/filter.helpers.js.map +1 -0
  72. package/src/helpers/index.d.ts +3 -0
  73. package/src/helpers/index.js +17 -0
  74. package/src/helpers/index.js.map +1 -0
  75. package/src/helpers/page.builder.d.ts +6 -0
  76. package/src/helpers/page.builder.js +13 -0
  77. package/src/helpers/page.builder.js.map +1 -0
  78. package/src/helpers/query.helpers.d.ts +11 -0
  79. package/src/helpers/query.helpers.js +60 -0
  80. package/src/helpers/query.helpers.js.map +1 -0
  81. package/src/helpers/sort.builder.d.ts +11 -0
  82. package/src/helpers/sort.builder.js +82 -0
  83. package/src/helpers/sort.builder.js.map +1 -0
  84. package/src/helpers/types.d.ts +3 -0
  85. package/src/helpers/types.js +3 -0
  86. package/src/helpers/types.js.map +1 -0
  87. package/src/index.d.ts +7 -0
  88. package/src/index.js +46 -0
  89. package/src/index.js.map +1 -0
  90. package/src/interfaces/aggregate-options.interface.d.ts +3 -0
  91. package/src/interfaces/aggregate-options.interface.js +3 -0
  92. package/src/interfaces/aggregate-options.interface.js.map +1 -0
  93. package/src/interfaces/aggregate-query.interface.d.ts +26 -0
  94. package/src/interfaces/aggregate-query.interface.js +11 -0
  95. package/src/interfaces/aggregate-query.interface.js.map +1 -0
  96. package/src/interfaces/aggregate-response.interface.d.ts +14 -0
  97. package/src/interfaces/aggregate-response.interface.js +3 -0
  98. package/src/interfaces/aggregate-response.interface.js.map +1 -0
  99. package/src/interfaces/count-options.interface.d.ts +3 -0
  100. package/src/interfaces/count-options.interface.js +3 -0
  101. package/src/interfaces/count-options.interface.js.map +1 -0
  102. package/src/interfaces/delete-many-options.interface.d.ts +2 -0
  103. package/src/interfaces/delete-many-options.interface.js +3 -0
  104. package/src/interfaces/delete-many-options.interface.js.map +1 -0
  105. package/src/interfaces/delete-many-response.interface.d.ts +9 -0
  106. package/src/interfaces/delete-many-response.interface.js +3 -0
  107. package/src/interfaces/delete-many-response.interface.js.map +1 -0
  108. package/src/interfaces/delete-one-options.interface.d.ts +7 -0
  109. package/src/interfaces/delete-one-options.interface.js +3 -0
  110. package/src/interfaces/delete-one-options.interface.js.map +1 -0
  111. package/src/interfaces/filter-field-comparison.interface.d.ts +202 -0
  112. package/src/interfaces/filter-field-comparison.interface.js +3 -0
  113. package/src/interfaces/filter-field-comparison.interface.js.map +1 -0
  114. package/src/interfaces/filter.interface.d.ts +113 -0
  115. package/src/interfaces/filter.interface.js +3 -0
  116. package/src/interfaces/filter.interface.js.map +1 -0
  117. package/src/interfaces/filterable.interface.d.ts +13 -0
  118. package/src/interfaces/filterable.interface.js +3 -0
  119. package/src/interfaces/filterable.interface.js.map +1 -0
  120. package/src/interfaces/find-by-id-options.interface.d.ts +6 -0
  121. package/src/interfaces/find-by-id-options.interface.js +3 -0
  122. package/src/interfaces/find-by-id-options.interface.js.map +1 -0
  123. package/src/interfaces/find-relation-options.interface.d.ts +9 -0
  124. package/src/interfaces/find-relation-options.interface.js +3 -0
  125. package/src/interfaces/find-relation-options.interface.js.map +1 -0
  126. package/src/interfaces/get-by-id-options.interface.d.ts +2 -0
  127. package/src/interfaces/get-by-id-options.interface.js +3 -0
  128. package/src/interfaces/get-by-id-options.interface.js.map +1 -0
  129. package/src/interfaces/index.d.ts +25 -0
  130. package/src/interfaces/index.js +29 -0
  131. package/src/interfaces/index.js.map +1 -0
  132. package/src/interfaces/modify-relation-options.interface.d.ts +9 -0
  133. package/src/interfaces/modify-relation-options.interface.js +3 -0
  134. package/src/interfaces/modify-relation-options.interface.js.map +1 -0
  135. package/src/interfaces/paging.interface.d.ts +13 -0
  136. package/src/interfaces/paging.interface.js +3 -0
  137. package/src/interfaces/paging.interface.js.map +1 -0
  138. package/src/interfaces/query-options.interface.d.ts +4 -0
  139. package/src/interfaces/query-options.interface.js +3 -0
  140. package/src/interfaces/query-options.interface.js.map +1 -0
  141. package/src/interfaces/query-relations-options.interface.d.ts +3 -0
  142. package/src/interfaces/query-relations-options.interface.js +3 -0
  143. package/src/interfaces/query-relations-options.interface.js.map +1 -0
  144. package/src/interfaces/query-resolve-info.interface.d.ts +10 -0
  145. package/src/interfaces/query-resolve-info.interface.js +3 -0
  146. package/src/interfaces/query-resolve-info.interface.js.map +1 -0
  147. package/src/interfaces/query.interface.d.ts +38 -0
  148. package/src/interfaces/query.interface.js +3 -0
  149. package/src/interfaces/query.interface.js.map +1 -0
  150. package/src/interfaces/select-relation.interface.d.ts +11 -0
  151. package/src/interfaces/select-relation.interface.js +3 -0
  152. package/src/interfaces/select-relation.interface.js.map +1 -0
  153. package/src/interfaces/sort-field.interface.d.ts +60 -0
  154. package/src/interfaces/sort-field.interface.js +26 -0
  155. package/src/interfaces/sort-field.interface.js.map +1 -0
  156. package/src/interfaces/update-many-response.interface.d.ts +9 -0
  157. package/src/interfaces/update-many-response.interface.js +3 -0
  158. package/src/interfaces/update-many-response.interface.js.map +1 -0
  159. package/src/interfaces/update-one-options.interface.d.ts +8 -0
  160. package/src/interfaces/update-one-options.interface.js +3 -0
  161. package/src/interfaces/update-one-options.interface.js.map +1 -0
  162. package/src/interfaces/with-deleted.interface.d.ts +6 -0
  163. package/src/interfaces/with-deleted.interface.js +3 -0
  164. package/src/interfaces/with-deleted.interface.js.map +1 -0
  165. package/src/interfaces/with-resolve-info.interface.d.ts +7 -0
  166. package/src/interfaces/with-resolve-info.interface.js +3 -0
  167. package/src/interfaces/with-resolve-info.interface.js.map +1 -0
  168. package/src/module.d.ts +10 -0
  169. package/src/module.js +18 -0
  170. package/src/module.js.map +1 -0
  171. package/src/providers.d.ts +4 -0
  172. package/src/providers.js +24 -0
  173. package/src/providers.js.map +1 -0
  174. package/src/services/assembler-query.service.d.ts +63 -0
  175. package/src/services/assembler-query.service.js +132 -0
  176. package/src/services/assembler-query.service.js.map +1 -0
  177. package/src/services/index.d.ts +5 -0
  178. package/src/services/index.js +14 -0
  179. package/src/services/index.js.map +1 -0
  180. package/src/services/noop-query.service.d.ts +32 -0
  181. package/src/services/noop-query.service.js +76 -0
  182. package/src/services/noop-query.service.js.map +1 -0
  183. package/src/services/proxy-query.service.d.ts +59 -0
  184. package/src/services/proxy-query.service.js +82 -0
  185. package/src/services/proxy-query.service.js.map +1 -0
  186. package/src/services/query.service.d.ts +179 -0
  187. package/src/services/query.service.js +16 -0
  188. package/src/services/query.service.js.map +1 -0
  189. package/src/services/relation-query.service.d.ts +50 -0
  190. package/src/services/relation-query.service.js +103 -0
  191. package/src/services/relation-query.service.js.map +1 -0
package/README.md CHANGED
@@ -1,3 +1,22 @@
1
- # Temporary Holding Version
1
+ <p align="center">
2
+ <a href="https://tripss.github.io/nestjs-query" target="blank"><img src="https://tripss.github.io/nestjs-query/img/logo.svg" width="120" alt="Nestjs-query Logo" /></a>
3
+ </p>
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@ptc-org/nestjs-query-core.svg)](https://www.npmjs.org/package/@ptc-org/nestjs-query-core)
6
+ [![Test](https://github.com/tripss/nestjs-query/workflows/Test/badge.svg?branch=master)](https://github.com/tripss/nestjs-query/actions?query=workflow%3ATest+and+branch%3Amaster+)
7
+ [![Coverage Status](https://codecov.io/gh/TriPSs/nestjs-query/branch/master/graph/badge.svg?token=29EX71ID2P)](https://codecov.io/gh/TriPSs/nestjs-query)
8
+ [![Known Vulnerabilities](https://snyk.io/test/github/tripss/nestjs-query/badge.svg?targetFile=packages/core/package.json)](https://snyk.io/test/github/tripss/nestjs-query?targetFile=packages/core/package.json)
9
+
10
+ # `@ptc-org/nestjs-query-core`
11
+
12
+ Core package that contains interfaces for types used by [`@ptc-org/nestjs-query-graphql`](../query-graphql)
13
+ and [`@ptc-org/nestjs-query-typeorm`](../query-typeorm)
14
+
15
+ ## Installation
16
+
17
+ [Install Guide](https://tripss.github.io/nestjs-query/docs/introduction/install)
18
+
19
+ ## Docs
20
+
21
+ * [Nestjs-query Docs](https://tripss.github.io/nestjs-query/docs/introduction/getting-started)
2
22
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
package/package.json CHANGED
@@ -1,6 +1,43 @@
1
1
  {
2
2
  "name": "@trishchuk/nestjs-query-core",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "9.5.0",
4
+ "description": "Base query package",
5
+ "homepage": "https://github.com/x51xxx/nestjs-query#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/x51xxx/nestjs-query/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/x51xxx/nestjs-query.git"
12
+ },
13
+ "license": "MIT",
14
+ "author": "doug-martin <doug@dougamartin.com>",
15
+ "main": "src/index.js",
16
+ "types": "src/index.d.ts",
17
+ "directories": {
18
+ "lib": "src",
19
+ "test": "__tests__"
20
+ },
21
+ "files": [
22
+ "src/**"
23
+ ],
24
+ "dependencies": {
25
+ "lodash.merge": "^4.6.2",
26
+ "reflect-metadata": "^0.2.2",
27
+ "tslib": "^2.8.1"
28
+ },
29
+ "peerDependencies": {
30
+ "@nestjs/common": "^9.0.0 || ^10.0.0 || ^11.0.0",
31
+ "class-transformer": "^0.5"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "packageManager": "yarn@4.13.0",
37
+ "resolutions": {
38
+ "@apollo/gateway": "2.14.1",
39
+ "@apollo/server": "^5.5.1",
40
+ "@apollo/subgraph": "2.14.1"
41
+ },
42
+ "type": "commonjs"
43
+ }
@@ -0,0 +1,29 @@
1
+ import { Class, DeepPartial } from '../common';
2
+ import { AggregateQuery, AggregateResponse, Query } 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): Promise<DTO> | DTO;
20
+ abstract convertToEntity(dto: DTO): Promise<Entity> | 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): Promise<CE> | CE;
25
+ abstract convertToUpdateEntity(update: U): Promise<UE> | UE;
26
+ convertToDTOs(entities: Entity[]): Promise<DTO[]>;
27
+ convertToEntities(dtos: DTO[]): Promise<Entity[]>;
28
+ convertToCreateEntities(createDtos: C[]): Promise<CE[]>;
29
+ }
@@ -0,0 +1,39 @@
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 Promise.all(entities.map((e) => this.convertToDTO(e)));
30
+ }
31
+ convertToEntities(dtos) {
32
+ return Promise.all(dtos.map((dto) => this.convertToEntity(dto)));
33
+ }
34
+ convertToCreateEntities(createDtos) {
35
+ return Promise.all(createDtos.map((c) => this.convertToCreateEntity(c)));
36
+ }
37
+ }
38
+ exports.AbstractAssembler = AbstractAssembler;
39
+ //# 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,2CAA4D;AAE5D;;;;;;GAMG;AACH,MAAsB,iBAAiB;IAYrC;;;OAGG;IACH,YAAY,QAAqB,EAAE,WAA2B;QAC5D,MAAM,OAAO,GAAG,IAAA,+BAAmB,EAAC,IAAI,CAAC,WAA0D,CAAC,CAAA;QACpG,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAA;QAC7C,MAAM,UAAU,GAAG,WAAW,IAAI,OAAO,EAAE,WAAW,CAAA;QACtD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,+FAA+F;YAC/F,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,WAAW,CAAC,IAAI,mDAAmD,CACxH,CAAA;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,CAAC;IAgBM,aAAa,CAAC,QAAkB;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;IAEM,iBAAiB,CAAC,IAAW;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IAEM,uBAAuB,CAAC,UAAe;QAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC;CACF;AAvDD,8CAuDC"}
@@ -0,0 +1,66 @@
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): Promise<DTO> | DTO;
9
+ /**
10
+ * Convert a DTO to an entity.
11
+ * @param dto - The dto to convert.
12
+ */
13
+ convertToEntity(dto: DTO): Promise<Entity> | 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): Promise<CreateEntity> | CreateEntity;
34
+ /**
35
+ * Convert a update dto input to the equivalent update entity type
36
+ * @param createDTO
37
+ */
38
+ convertToUpdateEntity(createDTO: UpdateDTO): Promise<UpdateEntity> | 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[]): Promise<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[]): Promise<Entity[]>;
49
+ /**
50
+ * Convert an array of create DTOs to an array of create entities
51
+ * @param createDtos
52
+ */
53
+ convertToCreateEntities(createDtos: CreateDTO[]): Promise<CreateEntity[]>;
54
+ }
55
+ export interface AssemblerClasses<DTO, Entity> {
56
+ DTOClass: Class<DTO>;
57
+ EntityClass: Class<Entity>;
58
+ }
59
+ /**
60
+ * Class decorator for Assemblers to register them with nestjs-query
61
+ * @param DTOClass - the DTO class.
62
+ * @param EntityClass - The entity class.
63
+ */
64
+ 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) => Cls | void;
65
+ export declare function getAssemblers<DTO>(DTOClass: Class<DTO>): MetaValue<Map<Class<unknown>, Class<Assembler<DTO, unknown, unknown, unknown, unknown, unknown>>>>;
66
+ 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 type AssemblerDeserializer<T> = (obj: object) => T;
3
+ export declare function AssemblerDeserializer<T>(deserializer: AssemblerDeserializer<T>): <Cls extends Class<T>>(cls: Cls) => Cls | void;
4
+ export declare function getAssemblerDeserializer<DTO>(DTOClass: Class<DTO>): MetaValue<AssemblerDeserializer<DTO>>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssemblerDeserializer = AssemblerDeserializer;
4
+ exports.getAssemblerDeserializer = getAssemblerDeserializer;
5
+ const common_1 = require("../common");
6
+ const constants_1 = require("./constants");
7
+ const reflector = new common_1.ValueReflector(constants_1.ASSEMBLER_DESERIALIZER_KEY);
8
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
9
+ function AssemblerDeserializer(deserializer) {
10
+ return (cls) => {
11
+ if (reflector.isDefined(cls)) {
12
+ throw new Error(`Assembler Deserializer already registered for ${cls.name}`);
13
+ }
14
+ reflector.set(cls, deserializer);
15
+ return cls;
16
+ };
17
+ }
18
+ function getAssemblerDeserializer(DTOClass) {
19
+ return reflector.get(DTOClass, true);
20
+ }
21
+ //# 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":";;AAQA,sDAQC;AAED,4DAEC;AApBD,sCAA4D;AAC5D,2CAAwD;AAExD,MAAM,SAAS,GAAG,IAAI,uBAAc,CAAC,sCAA0B,CAAC,CAAA;AAIhE,0EAA0E;AAC1E,SAAgB,qBAAqB,CAAI,YAAsC;IAC7E,OAAO,CAAuB,GAAQ,EAAc,EAAE;QACpD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9E,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAM,QAAoB;IAChE,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC"}
@@ -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 extends DeepPartial<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,2CAAsD;AACtD,2DAAsD;AAEtD;;GAEG;AACH,MAAa,gBAAgB;IAC3B,MAAM,CAAC,YAAY,CACjB,QAAoB,EACpB,WAA0B;QAE1B,MAAM,gBAAgB,GAAG,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAA;QAChD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACxD,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,IAAI,cAAc,EAA0C,CAAA;YACrE,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAA;YACzC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,YAAY,WAAW,CAAC,CAAA;YAC7E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAkB,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACpE,wEAAwE;QACxE,OAAO,gBAAmE,CAAA;IAC5E,CAAC;CACF;AArBD,4CAqBC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Assembler = Assembler;
4
+ exports.getAssemblers = getAssemblers;
5
+ exports.getAssemblerClasses = getAssemblerClasses;
6
+ const common_1 = require("../common");
7
+ const constants_1 = require("./constants");
8
+ const assemblerReflector = new common_1.ValueReflector(constants_1.ASSEMBLER_CLASSES_KEY);
9
+ const reflector = new common_1.MapReflector(constants_1.ASSEMBLER_KEY);
10
+ /**
11
+ * Class decorator for Assemblers to register them with nestjs-query
12
+ * @param DTOClass - the DTO class.
13
+ * @param EntityClass - The entity class.
14
+ */
15
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
16
+ function Assembler(DTOClass, EntityClass) {
17
+ return (cls) => {
18
+ if (reflector.has(DTOClass, EntityClass)) {
19
+ throw new Error(`Assembler already registered for ${DTOClass.name} ${EntityClass.name}`);
20
+ }
21
+ assemblerReflector.set(cls, { DTOClass, EntityClass });
22
+ reflector.set(DTOClass, EntityClass, cls);
23
+ return cls;
24
+ };
25
+ }
26
+ function getAssemblers(DTOClass) {
27
+ return reflector.get(DTOClass);
28
+ }
29
+ function getAssemblerClasses(AssemblerClass) {
30
+ return assemblerReflector.get(AssemblerClass);
31
+ }
32
+ //# sourceMappingURL=assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../../../../packages/core/src/assemblers/assembler.ts"],"names":[],"mappings":";;AAuFA,8BAgBC;AAED,sCAIC;AAED,kDAIC;AAnHD,sCAAuF;AAEvF,2CAAkE;AAuElE,MAAM,kBAAkB,GAAG,IAAI,uBAAc,CAAC,iCAAqB,CAAC,CAAA;AACpE,MAAM,SAAS,GAAG,IAAI,qBAAY,CAAiB,yBAAa,CAAC,CAAA;AAOjE;;;;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,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1F,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAA;QACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA;QACzC,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,QAAoB;IAEpB,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC;AAED,SAAgB,mBAAmB,CACjC,cAA2D;IAE3D,OAAO,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Class, MetaValue } from '../common';
2
+ export type AssemblerSerializer<T> = (instance: T) => object;
3
+ export declare function AssemblerSerializer<T>(serializer: AssemblerSerializer<T>): <Cls extends Class<T>>(cls: Cls) => Cls | void;
4
+ export declare function getAssemblerSerializer<DTO>(DTOClass: Class<DTO>): MetaValue<AssemblerSerializer<DTO>>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssemblerSerializer = AssemblerSerializer;
4
+ exports.getAssemblerSerializer = getAssemblerSerializer;
5
+ const common_1 = require("../common");
6
+ const constants_1 = require("./constants");
7
+ const reflector = new common_1.ValueReflector(constants_1.ASSEMBLER_SERIALIZER_KEY);
8
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
9
+ function AssemblerSerializer(serializer) {
10
+ return (cls) => {
11
+ if (reflector.isDefined(cls)) {
12
+ throw new Error(`Assembler Serializer already registered for ${cls.name}`);
13
+ }
14
+ reflector.set(cls, serializer);
15
+ return cls;
16
+ };
17
+ }
18
+ function getAssemblerSerializer(DTOClass) {
19
+ return reflector.get(DTOClass, true);
20
+ }
21
+ //# 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":";;AAQA,kDAQC;AAED,wDAEC;AApBD,sCAA4D;AAC5D,2CAAsD;AAEtD,MAAM,SAAS,GAAG,IAAI,uBAAc,CAAC,oCAAwB,CAAC,CAAA;AAI9D,0EAA0E;AAC1E,SAAgB,mBAAmB,CAAI,UAAkC;IACvE,OAAO,CAAuB,GAAQ,EAAc,EAAE;QACpD,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAC9B,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAM,QAAoB;IAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Class, DeepPartial } from '../common';
2
+ import { AggregateQuery, AggregateResponse, Query } from '../interfaces';
3
+ import { AbstractAssembler } from './abstract.assembler';
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 DeepPartial<Entity>> extends AbstractAssembler<DTO, Entity, DeepPartial<DTO>, DeepPartial<Entity>, DeepPartial<DTO>, DeepPartial<Entity>> {
8
+ convertToDTO(entity: Entity): DTO | Promise<DTO>;
9
+ convertToEntity(dto: DTO): Entity | Promise<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> | Promise<DeepPartial<Entity>>;
14
+ convertToUpdateEntity(create: DeepPartial<DTO>): DeepPartial<Entity> | Promise<DeepPartial<Entity>>;
15
+ convert<T>(cls: Class<T>, obj: object): T;
16
+ isConstructor(x: any): boolean;
17
+ toPlain(entityOrDto: Entity | DTO): object;
18
+ }
@@ -0,0 +1,81 @@
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_deserializer_1 = require("./assembler.deserializer");
7
+ const assembler_serializer_1 = require("./assembler.serializer");
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/no-explicit-any
42
+ isConstructor(x) {
43
+ const handler = {
44
+ construct() {
45
+ return handler;
46
+ }
47
+ };
48
+ try {
49
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
50
+ return !!new new Proxy(x, handler)();
51
+ }
52
+ catch (e) {
53
+ return false;
54
+ }
55
+ }
56
+ // eslint-disable-next-line @typescript-eslint/ban-types
57
+ toPlain(entityOrDto) {
58
+ if (entityOrDto && entityOrDto instanceof this.EntityClass) {
59
+ const serializer = (0, assembler_serializer_1.getAssemblerSerializer)(this.EntityClass);
60
+ if (serializer) {
61
+ return serializer(entityOrDto);
62
+ }
63
+ }
64
+ else if (entityOrDto instanceof this.DTOClass) {
65
+ const serializer = (0, assembler_serializer_1.getAssemblerSerializer)(this.DTOClass);
66
+ if (serializer) {
67
+ return serializer(entityOrDto);
68
+ }
69
+ }
70
+ else if (entityOrDto && 'constructor' in entityOrDto) {
71
+ // eslint-disable-next-line @typescript-eslint/ban-types
72
+ const serializer = (0, assembler_serializer_1.getAssemblerSerializer)(entityOrDto.constructor);
73
+ if (serializer) {
74
+ return serializer(entityOrDto);
75
+ }
76
+ }
77
+ return entityOrDto;
78
+ }
79
+ }
80
+ exports.ClassTransformerAssembler = ClassTransformerAssembler;
81
+ //# 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,yDAAgD;AAIhD,6DAAwD;AACxD,qEAAmE;AACnE,iEAA+D;AAE/D;;GAEG;AACH,MAAsB,yBAAmE,SAAQ,sCAOhG;IACQ,YAAY,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEM,eAAe,CAAC,GAAQ;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEM,YAAY,CAAC,KAAiB;QACnC,OAAO,KAAiC,CAAA;IAC1C,CAAC;IAEM,qBAAqB,CAAC,SAA8B;QACzD,OAAO,SAA8C,CAAA;IACvD,CAAC;IAEM,wBAAwB,CAAC,SAAoC;QAClE,OAAO,SAA8C,CAAA;IACvD,CAAC;IAEM,qBAAqB,CAAC,MAAwB;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAEM,qBAAqB,CAAC,MAAwB;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,wDAAwD;IACjD,OAAO,CAAI,GAAa,EAAE,GAAW;QAC1C,MAAM,YAAY,GAAG,IAAA,iDAAwB,EAAC,GAAG,CAAC,CAAA;QAClD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,IAAA,gCAAY,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,8DAA8D;IACvD,aAAa,CAAC,CAAM;QACzB,MAAM,OAAO,GAAG;YACd,SAAS;gBACP,OAAO,OAAO,CAAA;YAChB,CAAC;SACF,CAAA;QAED,IAAI,CAAC;YACH,6DAA6D;YAC7D,OAAO,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAA;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,wDAAwD;IACjD,OAAO,CAAC,WAAyB;QACtC,IAAI,WAAW,IAAI,WAAW,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAA,6CAAsB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC3D,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAA,6CAAsB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,IAAI,aAAa,IAAK,WAAsB,EAAE,CAAC;YACnE,wDAAwD;YACxD,MAAM,UAAU,GAAG,IAAA,6CAAsB,EAAC,WAAW,CAAC,WAA6B,CAAC,CAAA;YAEpF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QACD,OAAO,WAAgC,CAAA;IACzC,CAAC;CACF;AAnFD,8DAmFC"}
@@ -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,CAAA;AACxC,QAAA,qBAAqB,GAAG,gCAAgC,CAAA;AACxD,QAAA,wBAAwB,GAAG,mCAAmC,CAAA;AAC9D,QAAA,0BAA0B,GAAG,qCAAqC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { Class, DeepPartial } 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 DeepPartial<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,+EAAyE;AAEzE;;GAEG;AACH,MAAa,gBAA0D,SAAQ,uDAAsC;IACnH,YAAY,QAAoB,EAAE,WAA0B;QAC1D,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC9B,CAAC;CACF;AAJD,4CAIC"}
@@ -0,0 +1,7 @@
1
+ export { AbstractAssembler } from './abstract.assembler';
2
+ export { Assembler, getAssemblerClasses } from './assembler';
3
+ export { AssemblerDeserializer } from './assembler.deserializer';
4
+ export { AssemblerFactory } from './assembler.factory';
5
+ export { AssemblerSerializer } from './assembler.serializer';
6
+ export { ClassTransformerAssembler } from './class-transformer.assembler';
7
+ export { DefaultAssembler } from './default.assembler';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultAssembler = exports.ClassTransformerAssembler = exports.AssemblerSerializer = exports.AssemblerFactory = exports.AssemblerDeserializer = exports.getAssemblerClasses = exports.Assembler = exports.AbstractAssembler = void 0;
4
+ var abstract_assembler_1 = require("./abstract.assembler");
5
+ Object.defineProperty(exports, "AbstractAssembler", { enumerable: true, get: function () { return abstract_assembler_1.AbstractAssembler; } });
6
+ var assembler_1 = require("./assembler");
7
+ Object.defineProperty(exports, "Assembler", { enumerable: true, get: function () { return assembler_1.Assembler; } });
8
+ Object.defineProperty(exports, "getAssemblerClasses", { enumerable: true, get: function () { return assembler_1.getAssemblerClasses; } });
9
+ var assembler_deserializer_1 = require("./assembler.deserializer");
10
+ Object.defineProperty(exports, "AssemblerDeserializer", { enumerable: true, get: function () { return assembler_deserializer_1.AssemblerDeserializer; } });
11
+ var assembler_factory_1 = require("./assembler.factory");
12
+ Object.defineProperty(exports, "AssemblerFactory", { enumerable: true, get: function () { return assembler_factory_1.AssemblerFactory; } });
13
+ var assembler_serializer_1 = require("./assembler.serializer");
14
+ Object.defineProperty(exports, "AssemblerSerializer", { enumerable: true, get: function () { return assembler_serializer_1.AssemblerSerializer; } });
15
+ var class_transformer_assembler_1 = require("./class-transformer.assembler");
16
+ Object.defineProperty(exports, "ClassTransformerAssembler", { enumerable: true, get: function () { return class_transformer_assembler_1.ClassTransformerAssembler; } });
17
+ var default_assembler_1 = require("./default.assembler");
18
+ Object.defineProperty(exports, "DefaultAssembler", { enumerable: true, get: function () { return default_assembler_1.DefaultAssembler; } });
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,2DAAwD;AAA/C,uHAAA,iBAAiB,OAAA;AAC1B,yCAA4D;AAAnD,sGAAA,SAAS,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AACvC,mEAAgE;AAAvD,+HAAA,qBAAqB,OAAA;AAC9B,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,+DAA4D;AAAnD,2HAAA,mBAAmB,OAAA;AAC5B,6EAAyE;AAAhE,wIAAA,yBAAyB,OAAA;AAClC,yDAAsD;AAA7C,qHAAA,gBAAgB,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,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPrototypeChain = getPrototypeChain;
4
+ function getPrototypeChain(Cls) {
5
+ const baseClass = Object.getPrototypeOf(Cls);
6
+ if (baseClass) {
7
+ return [Cls, ...getPrototypeChain(baseClass)];
8
+ }
9
+ return [Cls];
10
+ }
11
+ //# 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,8CAMC;AAND,SAAgB,iBAAiB,CAAC,GAAmB;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAmB,CAAA;IAC9D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,CAAC"}
@@ -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 './class.type';
2
+ export * from './class.utils';
3
+ export * from './deep-partial.type';
4
+ export * from './misc.utils';
5
+ export * from './reflect.utils';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./class.type"), exports);
5
+ tslib_1.__exportStar(require("./class.utils"), exports);
6
+ tslib_1.__exportStar(require("./deep-partial.type"), exports);
7
+ tslib_1.__exportStar(require("./misc.utils"), exports);
8
+ tslib_1.__exportStar(require("./reflect.utils"), exports);
9
+ //# sourceMappingURL=index.js.map