@pristine-ts/data-mapping-common 0.0.283

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 (213) hide show
  1. package/LICENSE +201 -0
  2. package/dist/lib/cjs/builders/auto-data-mapping.builder.js +137 -0
  3. package/dist/lib/cjs/builders/auto-data-mapping.builder.js.map +1 -0
  4. package/dist/lib/cjs/builders/builders.js +19 -0
  5. package/dist/lib/cjs/builders/builders.js.map +1 -0
  6. package/dist/lib/cjs/builders/data-mapping.builder.js +178 -0
  7. package/dist/lib/cjs/builders/data-mapping.builder.js.map +1 -0
  8. package/dist/lib/cjs/data-mapping-common.js +26 -0
  9. package/dist/lib/cjs/data-mapping-common.js.map +1 -0
  10. package/dist/lib/cjs/decorators/decorators.js +18 -0
  11. package/dist/lib/cjs/decorators/decorators.js.map +1 -0
  12. package/dist/lib/cjs/decorators/type.decorator.js +20 -0
  13. package/dist/lib/cjs/decorators/type.decorator.js.map +1 -0
  14. package/dist/lib/cjs/enums/data-mapping-node-type.enum.js +11 -0
  15. package/dist/lib/cjs/enums/data-mapping-node-type.enum.js.map +1 -0
  16. package/dist/lib/cjs/enums/enums.js +19 -0
  17. package/dist/lib/cjs/enums/enums.js.map +1 -0
  18. package/dist/lib/cjs/enums/metadata.enum.js +8 -0
  19. package/dist/lib/cjs/enums/metadata.enum.js.map +1 -0
  20. package/dist/lib/cjs/errors/array-data-mapping-node-invalid-source-property-type.error.js +17 -0
  21. package/dist/lib/cjs/errors/array-data-mapping-node-invalid-source-property-type.error.js.map +1 -0
  22. package/dist/lib/cjs/errors/data-after-mapping-interceptor-already-added.error.js +17 -0
  23. package/dist/lib/cjs/errors/data-after-mapping-interceptor-already-added.error.js.map +1 -0
  24. package/dist/lib/cjs/errors/data-before-mapping-interceptor-already-added.error.js +17 -0
  25. package/dist/lib/cjs/errors/data-before-mapping-interceptor-already-added.error.js.map +1 -0
  26. package/dist/lib/cjs/errors/data-mapping-interceptor-not-found.error.js +17 -0
  27. package/dist/lib/cjs/errors/data-mapping-interceptor-not-found.error.js.map +1 -0
  28. package/dist/lib/cjs/errors/data-mapping-source-property-not-found.error.js +17 -0
  29. package/dist/lib/cjs/errors/data-mapping-source-property-not-found.error.js.map +1 -0
  30. package/dist/lib/cjs/errors/data-normalizer-already-added.error.js +17 -0
  31. package/dist/lib/cjs/errors/data-normalizer-already-added.error.js.map +1 -0
  32. package/dist/lib/cjs/errors/errors.js +25 -0
  33. package/dist/lib/cjs/errors/errors.js.map +1 -0
  34. package/dist/lib/cjs/errors/normalizer-invalid-source-type.error.js +17 -0
  35. package/dist/lib/cjs/errors/normalizer-invalid-source-type.error.js.map +1 -0
  36. package/dist/lib/cjs/errors/undefined-source-property.error.js +17 -0
  37. package/dist/lib/cjs/errors/undefined-source-property.error.js.map +1 -0
  38. package/dist/lib/cjs/interfaces/data-mapping-interceptor.interface.js +3 -0
  39. package/dist/lib/cjs/interfaces/data-mapping-interceptor.interface.js.map +1 -0
  40. package/dist/lib/cjs/interfaces/data-normalizer.interface.js +3 -0
  41. package/dist/lib/cjs/interfaces/data-normalizer.interface.js.map +1 -0
  42. package/dist/lib/cjs/interfaces/interfaces.js +19 -0
  43. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -0
  44. package/dist/lib/cjs/mappers/data.mapper.js +103 -0
  45. package/dist/lib/cjs/mappers/data.mapper.js.map +1 -0
  46. package/dist/lib/cjs/mappers/mappers.js +18 -0
  47. package/dist/lib/cjs/mappers/mappers.js.map +1 -0
  48. package/dist/lib/cjs/nodes/base-data-mapping.node.js +24 -0
  49. package/dist/lib/cjs/nodes/base-data-mapping.node.js.map +1 -0
  50. package/dist/lib/cjs/nodes/data-mapping.leaf.js +184 -0
  51. package/dist/lib/cjs/nodes/data-mapping.leaf.js.map +1 -0
  52. package/dist/lib/cjs/nodes/data-mapping.node.js +217 -0
  53. package/dist/lib/cjs/nodes/data-mapping.node.js.map +1 -0
  54. package/dist/lib/cjs/nodes/nodes.js +20 -0
  55. package/dist/lib/cjs/nodes/nodes.js.map +1 -0
  56. package/dist/lib/cjs/normalizer-options/base-normalizer.options.js +12 -0
  57. package/dist/lib/cjs/normalizer-options/base-normalizer.options.js.map +1 -0
  58. package/dist/lib/cjs/normalizer-options/date-normalizer.options.js +21 -0
  59. package/dist/lib/cjs/normalizer-options/date-normalizer.options.js.map +1 -0
  60. package/dist/lib/cjs/normalizer-options/lowercase-normalizer.options.js +11 -0
  61. package/dist/lib/cjs/normalizer-options/lowercase-normalizer.options.js.map +1 -0
  62. package/dist/lib/cjs/normalizer-options/normalizer-options.js +22 -0
  63. package/dist/lib/cjs/normalizer-options/normalizer-options.js.map +1 -0
  64. package/dist/lib/cjs/normalizer-options/number-normalizer.options.js +16 -0
  65. package/dist/lib/cjs/normalizer-options/number-normalizer.options.js.map +1 -0
  66. package/dist/lib/cjs/normalizer-options/string-normalizer.options.js +17 -0
  67. package/dist/lib/cjs/normalizer-options/string-normalizer.options.js.map +1 -0
  68. package/dist/lib/cjs/normalizers/date.normalizer.js +62 -0
  69. package/dist/lib/cjs/normalizers/date.normalizer.js.map +1 -0
  70. package/dist/lib/cjs/normalizers/lowercase.normalizer.js +20 -0
  71. package/dist/lib/cjs/normalizers/lowercase.normalizer.js.map +1 -0
  72. package/dist/lib/cjs/normalizers/normalizers.js +21 -0
  73. package/dist/lib/cjs/normalizers/normalizers.js.map +1 -0
  74. package/dist/lib/cjs/normalizers/number.normalizer.js +30 -0
  75. package/dist/lib/cjs/normalizers/number.normalizer.js.map +1 -0
  76. package/dist/lib/cjs/normalizers/string.normalizer.js +52 -0
  77. package/dist/lib/cjs/normalizers/string.normalizer.js.map +1 -0
  78. package/dist/lib/cjs/options/auto-data-mapping-builder.options.js +11 -0
  79. package/dist/lib/cjs/options/auto-data-mapping-builder.options.js.map +1 -0
  80. package/dist/lib/cjs/types/data-mapping-interceptor-unique-key.type.js +3 -0
  81. package/dist/lib/cjs/types/data-mapping-interceptor-unique-key.type.js.map +1 -0
  82. package/dist/lib/cjs/types/data-normalizer-unique-key.type.js +3 -0
  83. package/dist/lib/cjs/types/data-normalizer-unique-key.type.js.map +1 -0
  84. package/dist/lib/cjs/types/types.js +19 -0
  85. package/dist/lib/cjs/types/types.js.map +1 -0
  86. package/dist/lib/esm/builders/auto-data-mapping.builder.js +133 -0
  87. package/dist/lib/esm/builders/auto-data-mapping.builder.js.map +1 -0
  88. package/dist/lib/esm/builders/builders.js +3 -0
  89. package/dist/lib/esm/builders/builders.js.map +1 -0
  90. package/dist/lib/esm/builders/data-mapping.builder.js +174 -0
  91. package/dist/lib/esm/builders/data-mapping.builder.js.map +1 -0
  92. package/dist/lib/esm/data-mapping-common.js +10 -0
  93. package/dist/lib/esm/data-mapping-common.js.map +1 -0
  94. package/dist/lib/esm/decorators/decorators.js +2 -0
  95. package/dist/lib/esm/decorators/decorators.js.map +1 -0
  96. package/dist/lib/esm/decorators/type.decorator.js +16 -0
  97. package/dist/lib/esm/decorators/type.decorator.js.map +1 -0
  98. package/dist/lib/esm/enums/data-mapping-node-type.enum.js +8 -0
  99. package/dist/lib/esm/enums/data-mapping-node-type.enum.js.map +1 -0
  100. package/dist/lib/esm/enums/enums.js +3 -0
  101. package/dist/lib/esm/enums/enums.js.map +1 -0
  102. package/dist/lib/esm/enums/metadata.enum.js +5 -0
  103. package/dist/lib/esm/enums/metadata.enum.js.map +1 -0
  104. package/dist/lib/esm/errors/array-data-mapping-node-invalid-source-property-type.error.js +13 -0
  105. package/dist/lib/esm/errors/array-data-mapping-node-invalid-source-property-type.error.js.map +1 -0
  106. package/dist/lib/esm/errors/data-after-mapping-interceptor-already-added.error.js +13 -0
  107. package/dist/lib/esm/errors/data-after-mapping-interceptor-already-added.error.js.map +1 -0
  108. package/dist/lib/esm/errors/data-before-mapping-interceptor-already-added.error.js +13 -0
  109. package/dist/lib/esm/errors/data-before-mapping-interceptor-already-added.error.js.map +1 -0
  110. package/dist/lib/esm/errors/data-mapping-interceptor-not-found.error.js +13 -0
  111. package/dist/lib/esm/errors/data-mapping-interceptor-not-found.error.js.map +1 -0
  112. package/dist/lib/esm/errors/data-mapping-source-property-not-found.error.js +13 -0
  113. package/dist/lib/esm/errors/data-mapping-source-property-not-found.error.js.map +1 -0
  114. package/dist/lib/esm/errors/data-normalizer-already-added.error.js +13 -0
  115. package/dist/lib/esm/errors/data-normalizer-already-added.error.js.map +1 -0
  116. package/dist/lib/esm/errors/errors.js +9 -0
  117. package/dist/lib/esm/errors/errors.js.map +1 -0
  118. package/dist/lib/esm/errors/normalizer-invalid-source-type.error.js +13 -0
  119. package/dist/lib/esm/errors/normalizer-invalid-source-type.error.js.map +1 -0
  120. package/dist/lib/esm/errors/undefined-source-property.error.js +13 -0
  121. package/dist/lib/esm/errors/undefined-source-property.error.js.map +1 -0
  122. package/dist/lib/esm/interfaces/data-mapping-interceptor.interface.js +2 -0
  123. package/dist/lib/esm/interfaces/data-mapping-interceptor.interface.js.map +1 -0
  124. package/dist/lib/esm/interfaces/data-normalizer.interface.js +2 -0
  125. package/dist/lib/esm/interfaces/data-normalizer.interface.js.map +1 -0
  126. package/dist/lib/esm/interfaces/interfaces.js +3 -0
  127. package/dist/lib/esm/interfaces/interfaces.js.map +1 -0
  128. package/dist/lib/esm/mappers/data.mapper.js +99 -0
  129. package/dist/lib/esm/mappers/data.mapper.js.map +1 -0
  130. package/dist/lib/esm/mappers/mappers.js +2 -0
  131. package/dist/lib/esm/mappers/mappers.js.map +1 -0
  132. package/dist/lib/esm/nodes/base-data-mapping.node.js +20 -0
  133. package/dist/lib/esm/nodes/base-data-mapping.node.js.map +1 -0
  134. package/dist/lib/esm/nodes/data-mapping.leaf.js +180 -0
  135. package/dist/lib/esm/nodes/data-mapping.leaf.js.map +1 -0
  136. package/dist/lib/esm/nodes/data-mapping.node.js +213 -0
  137. package/dist/lib/esm/nodes/data-mapping.node.js.map +1 -0
  138. package/dist/lib/esm/nodes/nodes.js +4 -0
  139. package/dist/lib/esm/nodes/nodes.js.map +1 -0
  140. package/dist/lib/esm/normalizer-options/base-normalizer.options.js +8 -0
  141. package/dist/lib/esm/normalizer-options/base-normalizer.options.js.map +1 -0
  142. package/dist/lib/esm/normalizer-options/date-normalizer.options.js +17 -0
  143. package/dist/lib/esm/normalizer-options/date-normalizer.options.js.map +1 -0
  144. package/dist/lib/esm/normalizer-options/lowercase-normalizer.options.js +7 -0
  145. package/dist/lib/esm/normalizer-options/lowercase-normalizer.options.js.map +1 -0
  146. package/dist/lib/esm/normalizer-options/normalizer-options.js +6 -0
  147. package/dist/lib/esm/normalizer-options/normalizer-options.js.map +1 -0
  148. package/dist/lib/esm/normalizer-options/number-normalizer.options.js +12 -0
  149. package/dist/lib/esm/normalizer-options/number-normalizer.options.js.map +1 -0
  150. package/dist/lib/esm/normalizer-options/string-normalizer.options.js +13 -0
  151. package/dist/lib/esm/normalizer-options/string-normalizer.options.js.map +1 -0
  152. package/dist/lib/esm/normalizers/date.normalizer.js +58 -0
  153. package/dist/lib/esm/normalizers/date.normalizer.js.map +1 -0
  154. package/dist/lib/esm/normalizers/lowercase.normalizer.js +16 -0
  155. package/dist/lib/esm/normalizers/lowercase.normalizer.js.map +1 -0
  156. package/dist/lib/esm/normalizers/normalizers.js +5 -0
  157. package/dist/lib/esm/normalizers/normalizers.js.map +1 -0
  158. package/dist/lib/esm/normalizers/number.normalizer.js +26 -0
  159. package/dist/lib/esm/normalizers/number.normalizer.js.map +1 -0
  160. package/dist/lib/esm/normalizers/string.normalizer.js +48 -0
  161. package/dist/lib/esm/normalizers/string.normalizer.js.map +1 -0
  162. package/dist/lib/esm/options/auto-data-mapping-builder.options.js +7 -0
  163. package/dist/lib/esm/options/auto-data-mapping-builder.options.js.map +1 -0
  164. package/dist/lib/esm/types/data-mapping-interceptor-unique-key.type.js +2 -0
  165. package/dist/lib/esm/types/data-mapping-interceptor-unique-key.type.js.map +1 -0
  166. package/dist/lib/esm/types/data-normalizer-unique-key.type.js +2 -0
  167. package/dist/lib/esm/types/data-normalizer-unique-key.type.js.map +1 -0
  168. package/dist/lib/esm/types/types.js +3 -0
  169. package/dist/lib/esm/types/types.js.map +1 -0
  170. package/dist/types/builders/auto-data-mapping.builder.d.ts +25 -0
  171. package/dist/types/builders/builders.d.ts +2 -0
  172. package/dist/types/builders/data-mapping.builder.d.ts +110 -0
  173. package/dist/types/data-mapping-common.d.ts +9 -0
  174. package/dist/types/decorators/decorators.d.ts +1 -0
  175. package/dist/types/decorators/type.decorator.d.ts +2 -0
  176. package/dist/types/enums/data-mapping-node-type.enum.d.ts +6 -0
  177. package/dist/types/enums/enums.d.ts +2 -0
  178. package/dist/types/enums/metadata.enum.d.ts +3 -0
  179. package/dist/types/errors/array-data-mapping-node-invalid-source-property-type.error.d.ts +6 -0
  180. package/dist/types/errors/data-after-mapping-interceptor-already-added.error.d.ts +7 -0
  181. package/dist/types/errors/data-before-mapping-interceptor-already-added.error.d.ts +7 -0
  182. package/dist/types/errors/data-mapping-interceptor-not-found.error.d.ts +7 -0
  183. package/dist/types/errors/data-mapping-source-property-not-found.error.d.ts +6 -0
  184. package/dist/types/errors/data-normalizer-already-added.error.d.ts +6 -0
  185. package/dist/types/errors/errors.d.ts +8 -0
  186. package/dist/types/errors/normalizer-invalid-source-type.error.d.ts +6 -0
  187. package/dist/types/errors/undefined-source-property.error.d.ts +8 -0
  188. package/dist/types/interfaces/data-mapping-interceptor.interface.d.ts +19 -0
  189. package/dist/types/interfaces/data-normalizer.interface.d.ts +15 -0
  190. package/dist/types/interfaces/interfaces.d.ts +2 -0
  191. package/dist/types/mappers/data.mapper.d.ts +38 -0
  192. package/dist/types/mappers/mappers.d.ts +1 -0
  193. package/dist/types/nodes/base-data-mapping.node.d.ts +15 -0
  194. package/dist/types/nodes/data-mapping.leaf.d.ts +92 -0
  195. package/dist/types/nodes/data-mapping.node.d.ts +104 -0
  196. package/dist/types/nodes/nodes.d.ts +3 -0
  197. package/dist/types/normalizer-options/base-normalizer.options.d.ts +4 -0
  198. package/dist/types/normalizer-options/date-normalizer.options.d.ts +12 -0
  199. package/dist/types/normalizer-options/lowercase-normalizer.options.d.ts +4 -0
  200. package/dist/types/normalizer-options/normalizer-options.d.ts +5 -0
  201. package/dist/types/normalizer-options/number-normalizer.options.d.ts +8 -0
  202. package/dist/types/normalizer-options/string-normalizer.options.d.ts +12 -0
  203. package/dist/types/normalizers/date.normalizer.d.ts +6 -0
  204. package/dist/types/normalizers/lowercase.normalizer.d.ts +7 -0
  205. package/dist/types/normalizers/normalizers.d.ts +4 -0
  206. package/dist/types/normalizers/number.normalizer.d.ts +6 -0
  207. package/dist/types/normalizers/string.normalizer.d.ts +6 -0
  208. package/dist/types/options/auto-data-mapping-builder.options.d.ts +11 -0
  209. package/dist/types/types/data-mapping-interceptor-unique-key.type.d.ts +1 -0
  210. package/dist/types/types/data-normalizer-unique-key.type.d.ts +1 -0
  211. package/dist/types/types/types.d.ts +2 -0
  212. package/package.json +67 -0
  213. package/readme.md +1 -0
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data-normalizer-unique-key.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-normalizer-unique-key.type.js","sourceRoot":"","sources":["../../../../src/types/data-normalizer-unique-key.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./data-normalizer-unique-key.type"), exports);
18
+ __exportStar(require("./data-mapping-interceptor-unique-key.type"), exports);
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD;AAClD,6EAA2D"}
@@ -0,0 +1,133 @@
1
+ import { DataMappingBuilder } from "./data-mapping.builder";
2
+ import { DataMappingNode } from "../nodes/data-mapping.node";
3
+ import { ClassMetadata, PropertyMetadata, TypeEnum, TypeUtils } from "@pristine-ts/metadata";
4
+ import { DataMappingLeaf } from "../nodes/data-mapping.leaf";
5
+ import { NumberNormalizer } from "../normalizers/number.normalizer";
6
+ import { StringNormalizer } from "../normalizers/string.normalizer";
7
+ import { DateNormalizer } from "../normalizers/date.normalizer";
8
+ import { DataMappingNodeTypeEnum } from "../enums/data-mapping-node-type.enum";
9
+ import { AutoDataMappingBuilderOptions } from "../options/auto-data-mapping-builder.options";
10
+ import { MetadataEnum } from "../enums/metadata.enum";
11
+ export class AutoDataMappingBuilder {
12
+ /**
13
+ * This method receives a source object and a destinationType that corresponds to the type of the class
14
+ * that the source should be mapped to. It then creates a DataMappingBuilder object that contains the schema
15
+ * needed to map the source to the destinationType.
16
+ * @param source
17
+ * @param destinationType
18
+ * @param options
19
+ */
20
+ build(source, destinationType, options) {
21
+ const dataMappingBuilder = new DataMappingBuilder();
22
+ this.internalBuild(source, destinationType, dataMappingBuilder, dataMappingBuilder, new AutoDataMappingBuilderOptions(options));
23
+ return dataMappingBuilder;
24
+ }
25
+ /**
26
+ * This method is the internal method that is called recursively to build the schema.
27
+ *
28
+ * @param source
29
+ * @param destinationType
30
+ * @param root
31
+ * @param parent
32
+ * @param options
33
+ * @private
34
+ */
35
+ internalBuild(source, destinationType, root, parent, options) {
36
+ if (!source) {
37
+ return;
38
+ }
39
+ // Get the metadata of destinationType and iterate over its properties.
40
+ const classInformation = ClassMetadata.getInformation(destinationType);
41
+ classInformation.properties.forEach(propertyKey => {
42
+ var _a, _b, _c, _d;
43
+ // Retrieve the metadata for the property
44
+ const propertyInformation = PropertyMetadata.getInformation(destinationType.prototype, propertyKey);
45
+ let typeObject = propertyInformation.typeObject;
46
+ // Check if we have a `@typeFactory` decorator, it means that there's a callback that must be executed
47
+ // for this property to retrieve the actual DestinationType object. If there's one, execute it.
48
+ const typeFactoryCallback = PropertyMetadata.getMetadata(destinationType.prototype, propertyKey, MetadataEnum.TypeFactory);
49
+ if (typeFactoryCallback) {
50
+ typeObject = typeFactoryCallback(source, propertyKey).constructor;
51
+ }
52
+ // If the property references an object, this means that we need to recursively call this method to build the schema.
53
+ if (propertyInformation.typeEnum === TypeEnum.Object) {
54
+ const dataMappingNode = new DataMappingNode(root, parent);
55
+ dataMappingNode
56
+ .setSourceProperty(propertyKey)
57
+ .setDestinationProperty(propertyKey)
58
+ .setDestinationType(typeObject)
59
+ .setIsOptional((_a = propertyInformation.isNullable) !== null && _a !== void 0 ? _a : options.isOptionalDefaultValue)
60
+ .end();
61
+ return this.internalBuild(source[propertyKey], typeObject, root, dataMappingNode, options);
62
+ }
63
+ else if (propertyInformation.typeEnum === TypeEnum.Array) { // If the property references an array, we need to iterate over each element and recursively call this method to build the schema.
64
+ let nestedType = DataMappingNodeTypeEnum.ScalarArray;
65
+ if (!source.hasOwnProperty(propertyKey) || Array.isArray(source[propertyKey]) === false || source[propertyKey].length === 0) {
66
+ return;
67
+ }
68
+ // Use the first element in the array to determine the type of content stored in the array. Here, we assume that all the elements in the array are of the same type.
69
+ const nestedElementType = TypeUtils.getTypeOfValue(source[propertyKey][0]);
70
+ switch (nestedElementType) {
71
+ case TypeEnum.Object:
72
+ nestedType = DataMappingNodeTypeEnum.ObjectArray;
73
+ break;
74
+ }
75
+ // If the array is an array of scalars, then it will be a LeafNode of type ScalarArray with no children.
76
+ if (nestedType === DataMappingNodeTypeEnum.ScalarArray) {
77
+ const dataMappingLeaf = parent.addArrayOfScalar();
78
+ const normalizers = [];
79
+ // todo: Allow for options to be specified per attribute. We should probably add a decorator to can customize the normalizer.
80
+ switch (nestedElementType) {
81
+ case TypeEnum.Number:
82
+ normalizers.push(NumberNormalizer.name);
83
+ break;
84
+ case TypeEnum.String:
85
+ normalizers.push(StringNormalizer.name);
86
+ break;
87
+ case TypeEnum.Date:
88
+ normalizers.push(DateNormalizer.name);
89
+ break;
90
+ }
91
+ normalizers.forEach(normalizer => dataMappingLeaf.addNormalizer(normalizer));
92
+ dataMappingLeaf.setSourceProperty(propertyKey)
93
+ .setDestinationProperty(propertyKey)
94
+ .setIsOptional((_b = propertyInformation.isNullable) !== null && _b !== void 0 ? _b : options.isOptionalDefaultValue)
95
+ .end();
96
+ return;
97
+ }
98
+ // Else, it's an array of objects and we must iterate over the first element to get all the properties and
99
+ // build the tree.
100
+ const dataMappingNode = parent.addArrayOfObjects();
101
+ dataMappingNode
102
+ .setSourceProperty(propertyKey)
103
+ .setDestinationProperty(propertyKey)
104
+ .setDestinationType(propertyInformation.arrayMemberObject)
105
+ .setIsOptional((_c = propertyInformation.isNullable) !== null && _c !== void 0 ? _c : options.isOptionalDefaultValue)
106
+ .end();
107
+ // We assume all the objects are similar so we use only the first one to build the schema
108
+ return this.internalBuild(source[propertyKey][0], propertyInformation.arrayMemberObject, root, dataMappingNode, options);
109
+ }
110
+ const normalizers = [];
111
+ // todo: Allow for options to be specified per attribute. We should probably add a decorator to can customize the normalizer.
112
+ switch (propertyInformation.typeEnum) {
113
+ case TypeEnum.Number:
114
+ normalizers.push(NumberNormalizer.name);
115
+ break;
116
+ case TypeEnum.String:
117
+ normalizers.push(StringNormalizer.name);
118
+ break;
119
+ case TypeEnum.Date:
120
+ normalizers.push(DateNormalizer.name);
121
+ break;
122
+ }
123
+ const dataMappingLeaf = new DataMappingLeaf(root, parent);
124
+ normalizers.forEach(normalizer => dataMappingLeaf.addNormalizer(normalizer));
125
+ dataMappingLeaf
126
+ .setSourceProperty(propertyKey)
127
+ .setDestinationProperty(propertyKey)
128
+ .setIsOptional((_d = propertyInformation.isNullable) !== null && _d !== void 0 ? _d : options.isOptionalDefaultValue)
129
+ .end();
130
+ });
131
+ }
132
+ }
133
+ //# sourceMappingURL=auto-data-mapping.builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-data-mapping.builder.js","sourceRoot":"","sources":["../../../../src/builders/auto-data-mapping.builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./auto-data-mapping.builder";
2
+ export * from "./data-mapping.builder";
3
+ //# sourceMappingURL=builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../../src/builders/builders.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,174 @@
1
+ import { DataMappingNode } from "../nodes/data-mapping.node";
2
+ import { DataNormalizerAlreadyAdded } from "../errors/data-normalizer-already-added.error";
3
+ import { DataBeforeMappingInterceptorAlreadyAddedError } from "../errors/data-before-mapping-interceptor-already-added.error";
4
+ import { DataAfterMappingInterceptorAlreadyAddedError } from "../errors/data-after-mapping-interceptor-already-added.error";
5
+ import { DataMappingLeaf } from "../nodes/data-mapping.leaf";
6
+ import { BaseDataMappingNode } from "../nodes/base-data-mapping.node";
7
+ import { DataMappingNodeTypeEnum } from "../enums/data-mapping-node-type.enum";
8
+ export class DataMappingBuilder extends BaseDataMappingNode {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.normalizers = [];
12
+ this.beforeMappingInterceptors = [];
13
+ this.afterMappingInterceptors = [];
14
+ }
15
+ /**
16
+ * This method adds a normalizer to the root that will be applied on each node (unless they explicitly exclude to do
17
+ * so).
18
+ *
19
+ * @param normalizerUniqueKey
20
+ * @param options
21
+ */
22
+ addNormalizer(normalizerUniqueKey, options) {
23
+ if (this.hasNormalizer(normalizerUniqueKey)) {
24
+ throw new DataNormalizerAlreadyAdded("The data normalizer '" + normalizerUniqueKey + "' has already been added to this builder.", normalizerUniqueKey, options);
25
+ }
26
+ this.normalizers.push({
27
+ key: normalizerUniqueKey,
28
+ options,
29
+ });
30
+ return this;
31
+ }
32
+ /**
33
+ * This method returns whether there's a normalizer for the specified key or not.
34
+ *
35
+ * @param normalizerUniqueKey
36
+ */
37
+ hasNormalizer(normalizerUniqueKey) {
38
+ return this.normalizers.find(element => element.key === normalizerUniqueKey) !== undefined;
39
+ }
40
+ /**
41
+ * This method adds an interceptor that will be executed **before** the object is mapped.
42
+ *
43
+ * @param key
44
+ * @param options
45
+ */
46
+ addBeforeMappingInterceptor(key, options) {
47
+ if (this.hasBeforeMappingInterceptor(key)) {
48
+ throw new DataBeforeMappingInterceptorAlreadyAddedError("The before row transform interceptor has already been added to this Tree.", key, options);
49
+ }
50
+ this.beforeMappingInterceptors.push({
51
+ key,
52
+ options,
53
+ });
54
+ return this;
55
+ }
56
+ /**
57
+ * This method returns whether a **before** interceptor already exists.
58
+ * @param key
59
+ */
60
+ hasBeforeMappingInterceptor(key) {
61
+ return this.beforeMappingInterceptors.find(element => element.key === key) !== undefined;
62
+ }
63
+ /**
64
+ * This method adds an interceptor that will be executed **after** the object is mapped.
65
+ *
66
+ * @param key
67
+ * @param options
68
+ */
69
+ addAfterMappingInterceptor(key, options) {
70
+ if (this.hasAfterMappingInterceptor(key)) {
71
+ throw new DataAfterMappingInterceptorAlreadyAddedError("The after row transform interceptor has already been added to this Tree.", key, options);
72
+ }
73
+ this.afterMappingInterceptors.push({
74
+ key,
75
+ options,
76
+ });
77
+ return this;
78
+ }
79
+ /**
80
+ * This method returns whether a **after** interceptor already exists.
81
+ * @param key
82
+ */
83
+ hasAfterMappingInterceptor(key) {
84
+ return this.afterMappingInterceptors.find(element => element.key === key) !== undefined;
85
+ }
86
+ /**
87
+ * This property creates a new DataMappingLeaf and returns it. It doesn't add it yet. To do so, the `end()` method
88
+ * must be called.
89
+ */
90
+ add() {
91
+ return new DataMappingLeaf(this, this);
92
+ }
93
+ /**
94
+ * This method adds a nesting level. This should be used when the property contains an object and you want to map
95
+ * this object into another object.
96
+ */
97
+ addNestingLevel() {
98
+ return new DataMappingNode(this, this);
99
+ }
100
+ /**
101
+ * This method adds an array of Scalar allowing you to apply the normalizer on each scalar in the array. The
102
+ * `sourceProperty` and `destinationProperty` correspond to the name of the property that is an array. But, the
103
+ * values in the array will be normalized using the normalizer.
104
+ *
105
+ */
106
+ addArrayOfScalar() {
107
+ return new DataMappingLeaf(this, this, DataMappingNodeTypeEnum.ScalarArray);
108
+ }
109
+ /**
110
+ * This method adds an array of objects allowing to define a node for each property in the object. Each object in
111
+ * the array will be treated as being the same.
112
+ */
113
+ addArrayOfObjects() {
114
+ return new DataMappingNode(this, this, DataMappingNodeTypeEnum.ObjectArray);
115
+ }
116
+ /**
117
+ * This method is called at the end just to make it nice since all the nodes will have one, it's nice
118
+ * that the builder has one too.
119
+ */
120
+ end() {
121
+ return this;
122
+ }
123
+ /**
124
+ * This method imports a schema.
125
+ *
126
+ * @param schema
127
+ */
128
+ import(schema) {
129
+ this.normalizers = schema.normalizers;
130
+ this.beforeMappingInterceptors = schema.beforeMappingInterceptors;
131
+ this.afterMappingInterceptors = schema.afterMappingInterceptors;
132
+ const nodes = schema.nodes;
133
+ for (const key in nodes) {
134
+ if (nodes.hasOwnProperty(key) === false) {
135
+ continue;
136
+ }
137
+ const nodeInfo = nodes[key];
138
+ const type = nodeInfo["_type"];
139
+ switch (type) {
140
+ case DataMappingNodeTypeEnum.ScalarArray:
141
+ case DataMappingNodeTypeEnum.Leaf:
142
+ const leaf = new DataMappingLeaf(this, this, type);
143
+ leaf.import(nodeInfo);
144
+ this.nodes[leaf.sourceProperty] = leaf;
145
+ continue;
146
+ case DataMappingNodeTypeEnum.Node:
147
+ case DataMappingNodeTypeEnum.ObjectArray:
148
+ const node = new DataMappingNode(this, this, type);
149
+ node.import(nodeInfo);
150
+ this.nodes[node.sourceProperty] = node;
151
+ continue;
152
+ }
153
+ }
154
+ }
155
+ /**
156
+ * This method exports this node.
157
+ */
158
+ export() {
159
+ const nodes = this.nodes;
160
+ for (const key in nodes) {
161
+ if (nodes.hasOwnProperty(key) === false) {
162
+ continue;
163
+ }
164
+ nodes[key] = nodes[key].export();
165
+ }
166
+ return {
167
+ "nodes": nodes,
168
+ "normalizers": this.normalizers,
169
+ "beforeMappingInterceptors": this.beforeMappingInterceptors,
170
+ "afterMappingInterceptors": this.afterMappingInterceptors,
171
+ };
172
+ }
173
+ }
174
+ //# sourceMappingURL=data-mapping.builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping.builder.js","sourceRoot":"","sources":["../../../../src/builders/data-mapping.builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from "./builders/builders";
2
+ export * from "./enums/enums";
3
+ export * from "./errors/errors";
4
+ export * from "./interfaces/interfaces";
5
+ export * from "./mappers/mappers";
6
+ export * from "./nodes/nodes";
7
+ export * from "./normalizer-options/normalizer-options";
8
+ export * from "./normalizers/normalizers";
9
+ export * from "./types/types";
10
+ //# sourceMappingURL=data-mapping-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping-common.js","sourceRoot":"","sources":["../../../src/data-mapping-common.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./type.decorator";
2
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/decorators/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { PropertyMetadata } from "@pristine-ts/metadata";
2
+ import { MetadataEnum } from "../enums/metadata.enum";
3
+ export const type = (callback) => {
4
+ return (
5
+ /**
6
+ * The class on which the decorator is used.
7
+ */
8
+ target,
9
+ /**
10
+ * The property on which the decorator is used.
11
+ */
12
+ propertyKey) => {
13
+ PropertyMetadata.defineMetadata(target, propertyKey, MetadataEnum.TypeFactory, callback);
14
+ };
15
+ };
16
+ //# sourceMappingURL=type.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/type.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAIpD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,QAA6B,EAAE,EAAE;IAClD,OAAO;IACH;;OAEG;IACH,MAAW;IAEX;;OAEG;IACH,WAA4B,EAC9B,EAAE;QACA,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ export var DataMappingNodeTypeEnum;
2
+ (function (DataMappingNodeTypeEnum) {
3
+ DataMappingNodeTypeEnum["ScalarArray"] = "DATA_MAPPING_NODE_SCALAR_ARRAY";
4
+ DataMappingNodeTypeEnum["ObjectArray"] = "DATA_MAPPING_NODE_OBJECT_ARRAY";
5
+ DataMappingNodeTypeEnum["Node"] = "DATA_MAPPING_NODE";
6
+ DataMappingNodeTypeEnum["Leaf"] = "DATA_MAPPING_LEAF";
7
+ })(DataMappingNodeTypeEnum || (DataMappingNodeTypeEnum = {}));
8
+ //# sourceMappingURL=data-mapping-node-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping-node-type.enum.js","sourceRoot":"","sources":["../../../../src/enums/data-mapping-node-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IAC/B,yEAA8C,CAAA;IAC9C,yEAA8C,CAAA;IAC9C,qDAA0B,CAAA;IAC1B,qDAA0B,CAAA;AAC9B,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC"}
@@ -0,0 +1,3 @@
1
+ export * from "./data-mapping-node-type.enum";
2
+ export * from "./metadata.enum";
3
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export var MetadataEnum;
2
+ (function (MetadataEnum) {
3
+ MetadataEnum["TypeFactory"] = "type:factory";
4
+ })(MetadataEnum || (MetadataEnum = {}));
5
+ //# sourceMappingURL=metadata.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.enum.js","sourceRoot":"","sources":["../../../../src/enums/metadata.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAEX;AAFD,WAAY,YAAY;IACpB,4CAA4B,CAAA;AAChC,CAAC,EAFW,YAAY,KAAZ,YAAY,QAEvB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when a node is of type array but the `source[sourceProperty]` doesn't actually contain an array.
3
+ */
4
+ export class ArrayDataMappingNodeInvalidSourcePropertyTypeError extends Error {
5
+ constructor(message, sourceProperty) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, ArrayDataMappingNodeInvalidSourcePropertyTypeError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=array-data-mapping-node-invalid-source-property-type.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-data-mapping-node-invalid-source-property-type.error.js","sourceRoot":"","sources":["../../../../src/errors/array-data-mapping-node-invalid-source-property-type.error.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,kDAAmD,SAAQ,KAAK;IAEzE,YAAmB,OAAe,EAAE,cAAsB;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QAGf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kDAAkD,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when the before row interceptor is added more than once to the builder.
3
+ */
4
+ export class DataAfterMappingInterceptorAlreadyAddedError extends Error {
5
+ constructor(message, uniqueKey, options) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, DataAfterMappingInterceptorAlreadyAddedError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data-after-mapping-interceptor-already-added.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-after-mapping-interceptor-already-added.error.js","sourceRoot":"","sources":["../../../../src/errors/data-after-mapping-interceptor-already-added.error.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,4CAA6C,SAAQ,KAAK;IAEnE,YAAmB,OAAe,EAAE,SAA8C,EAAE,OAAa;QAC7F,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,4CAA4C,CAAC,SAAS,CAAC,CAAC;IACxF,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when the after row interceptor is added more than once to the builder.
3
+ */
4
+ export class DataBeforeMappingInterceptorAlreadyAddedError extends Error {
5
+ constructor(message, uniqueKey, options) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, DataBeforeMappingInterceptorAlreadyAddedError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data-before-mapping-interceptor-already-added.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-before-mapping-interceptor-already-added.error.js","sourceRoot":"","sources":["../../../../src/errors/data-before-mapping-interceptor-already-added.error.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,6CAA8C,SAAQ,KAAK;IAEpE,YAAmB,OAAe,EAAE,SAA8C,EAAE,OAAa;QAC7F,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,6CAA6C,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown if the Data Transformer Class is not found in the list of available interceptors. It might be missing a tag.
3
+ */
4
+ export class DataMappingInterceptorNotFoundError extends Error {
5
+ constructor(message, uniqueKey, options) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, DataMappingInterceptorNotFoundError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data-mapping-interceptor-not-found.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping-interceptor-not-found.error.js","sourceRoot":"","sources":["../../../../src/errors/data-mapping-interceptor-not-found.error.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,KAAK;IAE1D,YAAmB,OAAe,EAAE,SAA8C,EAAE,OAAa;QAC7F,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mCAAmC,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when a property isn't optional and should be found in the source object.
3
+ */
4
+ export class DataMappingSourcePropertyNotFoundError extends Error {
5
+ constructor(message, sourceProperty) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, DataMappingSourcePropertyNotFoundError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data-mapping-source-property-not-found.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping-source-property-not-found.error.js","sourceRoot":"","sources":["../../../../src/errors/data-mapping-source-property-not-found.error.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,sCAAuC,SAAQ,KAAK;IAE7D,YAAmB,OAAe,EAAE,cAAsB;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QAGf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sCAAsC,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when a normalizer is added more than once.
3
+ */
4
+ export class DataNormalizerAlreadyAdded extends Error {
5
+ constructor(message, normalizerUniqueKey, options) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, DataNormalizerAlreadyAdded.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data-normalizer-already-added.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-normalizer-already-added.error.js","sourceRoot":"","sources":["../../../../src/errors/data-normalizer-already-added.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAEjD,YAAmB,OAAe,EAAE,mBAA2B,EAAE,OAAa;QAC1E,KAAK,CAAC,OAAO,CAAC,CAAC;QAGf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ export * from "./array-data-mapping-node-invalid-source-property-type.error";
2
+ export * from "./data-after-mapping-interceptor-already-added.error";
3
+ export * from "./data-before-mapping-interceptor-already-added.error";
4
+ export * from "./data-normalizer-already-added.error";
5
+ export * from "./data-mapping-interceptor-not-found.error";
6
+ export * from "./data-mapping-source-property-not-found.error";
7
+ export * from "./normalizer-invalid-source-type.error";
8
+ export * from "./undefined-source-property.error";
9
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,8DAA8D,CAAC;AAC7E,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when an invalid source type is passed to the source type while the normalizer expects another type.
3
+ */
4
+ export class NormalizerInvalidSourceTypeError extends Error {
5
+ constructor(message, normalizerUniqueKey, options, source, sourceType) {
6
+ super(message);
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, NormalizerInvalidSourceTypeError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=normalizer-invalid-source-type.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizer-invalid-source-type.error.js","sourceRoot":"","sources":["../../../../src/errors/normalizer-invalid-source-type.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAEvD,YAAmB,OAAe,EAAE,mBAA2B,EAAE,OAAY,EAAE,MAAW,EAAE,UAAe;QACvG,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAgC,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;CACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This Error is thrown when you are trying to add a Node which has an undefined sourceProperty value.
3
+ */
4
+ export class UndefinedSourcePropertyError extends Error {
5
+ constructor(node) {
6
+ super("The `sourceProperty` property of the Node cannot be undefined to be added as a Node to its parent.");
7
+ // Set the prototype explicitly.
8
+ // As specified in the documentation in TypeScript
9
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
10
+ Object.setPrototypeOf(this, UndefinedSourcePropertyError.prototype);
11
+ }
12
+ }
13
+ //# sourceMappingURL=undefined-source-property.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undefined-source-property.error.js","sourceRoot":"","sources":["../../../../src/errors/undefined-source-property.error.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAEnD,YAAmB,IAAuC;QACtD,KAAK,CAAC,oGAAoG,CAAC,CAAC;QAE5G,gCAAgC;QAChC,kDAAkD;QAClD,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACxE,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data-mapping-interceptor.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping-interceptor.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/data-mapping-interceptor.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data-normalizer.interface.js.map