@pristine-ts/data-mapping-common 2.0.10 → 2.0.12

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 (54) hide show
  1. package/dist/lib/cjs/builders/data-mapping.builder.js +8 -35
  2. package/dist/lib/cjs/builders/data-mapping.builder.js.map +1 -1
  3. package/dist/lib/cjs/data-mapping-common.js +1 -0
  4. package/dist/lib/cjs/data-mapping-common.js.map +1 -1
  5. package/dist/lib/cjs/interfaces/fluent-array-of-objects-options.interface.js +3 -0
  6. package/dist/lib/cjs/interfaces/fluent-array-of-objects-options.interface.js.map +1 -0
  7. package/dist/lib/cjs/interfaces/fluent-leaf-options.interface.js +3 -0
  8. package/dist/lib/cjs/interfaces/fluent-leaf-options.interface.js.map +1 -0
  9. package/dist/lib/cjs/interfaces/fluent-nested-options.interface.js +3 -0
  10. package/dist/lib/cjs/interfaces/fluent-nested-options.interface.js.map +1 -0
  11. package/dist/lib/cjs/interfaces/interfaces.js +3 -0
  12. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
  13. package/dist/lib/cjs/nodes/base-data-mapping.node.js +94 -4
  14. package/dist/lib/cjs/nodes/base-data-mapping.node.js.map +1 -1
  15. package/dist/lib/cjs/nodes/data-mapping.node.js +12 -40
  16. package/dist/lib/cjs/nodes/data-mapping.node.js.map +1 -1
  17. package/dist/lib/cjs/serializers/data-mapping.serializer.js +81 -0
  18. package/dist/lib/cjs/serializers/data-mapping.serializer.js.map +1 -0
  19. package/dist/lib/cjs/serializers/serializers.js +18 -0
  20. package/dist/lib/cjs/serializers/serializers.js.map +1 -0
  21. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  22. package/dist/lib/esm/builders/data-mapping.builder.js +8 -35
  23. package/dist/lib/esm/builders/data-mapping.builder.js.map +1 -1
  24. package/dist/lib/esm/data-mapping-common.js +1 -0
  25. package/dist/lib/esm/data-mapping-common.js.map +1 -1
  26. package/dist/lib/esm/interfaces/fluent-array-of-objects-options.interface.js +2 -0
  27. package/dist/lib/esm/interfaces/fluent-array-of-objects-options.interface.js.map +1 -0
  28. package/dist/lib/esm/interfaces/fluent-leaf-options.interface.js +2 -0
  29. package/dist/lib/esm/interfaces/fluent-leaf-options.interface.js.map +1 -0
  30. package/dist/lib/esm/interfaces/fluent-nested-options.interface.js +2 -0
  31. package/dist/lib/esm/interfaces/fluent-nested-options.interface.js.map +1 -0
  32. package/dist/lib/esm/interfaces/interfaces.js +3 -0
  33. package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
  34. package/dist/lib/esm/nodes/base-data-mapping.node.js +94 -4
  35. package/dist/lib/esm/nodes/base-data-mapping.node.js.map +1 -1
  36. package/dist/lib/esm/nodes/data-mapping.node.js +12 -40
  37. package/dist/lib/esm/nodes/data-mapping.node.js.map +1 -1
  38. package/dist/lib/esm/serializers/data-mapping.serializer.js +77 -0
  39. package/dist/lib/esm/serializers/data-mapping.serializer.js.map +1 -0
  40. package/dist/lib/esm/serializers/serializers.js +2 -0
  41. package/dist/lib/esm/serializers/serializers.js.map +1 -0
  42. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
  43. package/dist/types/builders/data-mapping.builder.d.ts +5 -5
  44. package/dist/types/data-mapping-common.d.ts +1 -0
  45. package/dist/types/interfaces/fluent-array-of-objects-options.interface.d.ts +21 -0
  46. package/dist/types/interfaces/fluent-leaf-options.interface.d.ts +27 -0
  47. package/dist/types/interfaces/fluent-nested-options.interface.d.ts +19 -0
  48. package/dist/types/interfaces/interfaces.d.ts +3 -0
  49. package/dist/types/nodes/base-data-mapping.node.d.ts +39 -4
  50. package/dist/types/nodes/data-mapping.node.d.ts +9 -9
  51. package/dist/types/serializers/data-mapping.serializer.d.ts +46 -0
  52. package/dist/types/serializers/serializers.d.ts +1 -0
  53. package/package.json +3 -3
  54. package/readme.md +43 -1
@@ -8,6 +8,7 @@ const data_after_mapping_interceptor_already_added_error_1 = require("../errors/
8
8
  const data_mapping_leaf_1 = require("../nodes/data-mapping.leaf");
9
9
  const base_data_mapping_node_1 = require("../nodes/base-data-mapping.node");
10
10
  const data_mapping_node_type_enum_1 = require("../enums/data-mapping-node-type.enum");
11
+ const data_mapping_serializer_1 = require("../serializers/data-mapping.serializer");
11
12
  class DataMappingBuilder extends base_data_mapping_node_1.BaseDataMappingNode {
12
13
  constructor() {
13
14
  super(...arguments);
@@ -124,51 +125,23 @@ class DataMappingBuilder extends base_data_mapping_node_1.BaseDataMappingNode {
124
125
  return this;
125
126
  }
126
127
  /**
127
- * This method imports a schema.
128
- *
129
- * @param schema
128
+ * Rehydrate this builder from a previously-exported schema. Replaces every field this
129
+ * class owns; child nodes are rebuilt via `DataMappingSerializer.importChildren`, which is
130
+ * the same helper `DataMappingNode.import` uses (so the two stay consistent).
130
131
  */
131
132
  import(schema) {
132
133
  this.normalizers = schema.normalizers;
133
134
  this.beforeMappingInterceptors = schema.beforeMappingInterceptors;
134
135
  this.afterMappingInterceptors = schema.afterMappingInterceptors;
135
- const nodes = schema.nodes;
136
- for (const key in nodes) {
137
- if (nodes.hasOwnProperty(key) === false) {
138
- continue;
139
- }
140
- const nodeInfo = nodes[key];
141
- const type = nodeInfo["_type"];
142
- switch (type) {
143
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.ScalarArray:
144
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Leaf:
145
- const leaf = new data_mapping_leaf_1.DataMappingLeaf(this, this, type);
146
- leaf.import(nodeInfo);
147
- this.nodes[leaf.sourceProperty] = leaf;
148
- continue;
149
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Node:
150
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.ObjectArray:
151
- const node = new data_mapping_node_1.DataMappingNode(this, this, type);
152
- node.import(nodeInfo);
153
- this.nodes[node.sourceProperty] = node;
154
- ;
155
- }
156
- }
136
+ this.nodes = data_mapping_serializer_1.DataMappingSerializer.importChildren(this, this, schema.nodes);
157
137
  }
158
138
  /**
159
- * This method exports the schema as a plain object. The export does not mutate the live tree —
160
- * the builder remains usable for mapping after this call returns.
139
+ * Export the schema as a plain object. The export does not mutate the live tree — the
140
+ * builder remains usable for mapping after this call returns.
161
141
  */
162
142
  export() {
163
- const exportedNodes = {};
164
- for (const key in this.nodes) {
165
- if (this.nodes.hasOwnProperty(key) === false) {
166
- continue;
167
- }
168
- exportedNodes[key] = this.nodes[key].export();
169
- }
170
143
  return {
171
- "nodes": exportedNodes,
144
+ "nodes": data_mapping_serializer_1.DataMappingSerializer.exportChildren(this.nodes),
172
145
  "normalizers": this.normalizers,
173
146
  "beforeMappingInterceptors": this.beforeMappingInterceptors,
174
147
  "afterMappingInterceptors": this.afterMappingInterceptors,
@@ -1 +1 @@
1
- {"version":3,"file":"data-mapping.builder.js","sourceRoot":"","sources":["../../../../src/builders/data-mapping.builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-mapping.builder.js","sourceRoot":"","sources":["../../../../src/builders/data-mapping.builder.ts"],"names":[],"mappings":";;;AAAA,kEAA2D;AAE3D,uGAAyF;AAEzF,uIAA4H;AAC5H,qIAA0H;AAC1H,kEAA2D;AAC3D,4EAAoE;AACpE,sFAA6E;AAC7E,oFAA6E;AAE7E,MAAa,kBAAmB,SAAQ,4CAAmB;IAA3D;;QACS,gBAAW,GAAqD,EAAE,CAAC;QACnE,8BAAyB,GAAiE,EAAE,CAAC;QAC7F,6BAAwB,GAAiE,EAAE,CAAC;IAsJrG,CAAC;IApJC;;;;;;OAMG;IACI,aAAa,CAAC,mBAA4C,EAAE,OAAa;QAC9E,IAAI,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,gEAA0B,CAAC,uBAAuB,GAAG,mBAAmB,GAAG,2CAA2C,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAClK,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,GAAG,EAAE,mBAAmB;YACxB,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,mBAA4C;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,mBAAmB,CAAC,KAAK,SAAS,CAAC;IAC7F,CAAC;IAED;;;;;OAKG;IACI,2BAA2B,CAAC,GAAwC,EAAE,OAAa;QACxF,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,mGAA6C,CAAC,2EAA2E,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACpJ,CAAC;QAED,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAClC,GAAG;YACH,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,2BAA2B,CAAC,GAAwC;QACzE,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,SAAS,CAAC;IAC3F,CAAC;IAED;;;;;OAKG;IACI,0BAA0B,CAAC,GAAwC,EAAE,OAAa;QACvF,IAAI,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iGAA4C,CAAC,0EAA0E,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAClJ,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACjC,GAAG;YACH,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,0BAA0B,CAAC,GAAwC;QACxE,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,SAAS,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACI,GAAG;QACR,OAAO,IAAI,mCAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,eAAe;QACpB,OAAO,IAAI,mCAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACI,gBAAgB;QACrB,OAAO,IAAI,mCAAe,CAAC,IAAI,EAAE,IAAI,EAAE,qDAAuB,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,OAAO,IAAI,mCAAe,CAAC,IAAI,EAAE,IAAI,EAAE,qDAAuB,CAAC,WAAW,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACI,GAAG;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAW;QACvB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAClE,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,+CAAqB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO;YACL,OAAO,EAAE,+CAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YACzD,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,2BAA2B,EAAE,IAAI,CAAC,yBAAyB;YAC3D,0BAA0B,EAAE,IAAI,CAAC,wBAAwB;SAC1D,CAAA;IACH,CAAC;CACF;AAzJD,gDAyJC"}
@@ -25,5 +25,6 @@ __exportStar(require("./normalizer-options/normalizer-options"), exports);
25
25
  __exportStar(require("./normalizers/normalizers"), exports);
26
26
  __exportStar(require("./options/options"), exports);
27
27
  __exportStar(require("./reporters/reporters"), exports);
28
+ __exportStar(require("./serializers/serializers"), exports);
28
29
  __exportStar(require("./types/types"), exports);
29
30
  //# sourceMappingURL=data-mapping-common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-mapping-common.js","sourceRoot":"","sources":["../../../src/data-mapping-common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,0DAAuC;AACvC,gDAA8B;AAC9B,kDAAgC;AAChC,0DAAwC;AACxC,oDAAkC;AAClC,gDAA8B;AAC9B,0EAAwD;AACxD,4DAA0C;AAC1C,oDAAkC;AAClC,wDAAsC;AACtC,gDAA8B"}
1
+ {"version":3,"file":"data-mapping-common.js","sourceRoot":"","sources":["../../../src/data-mapping-common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,0DAAuC;AACvC,gDAA8B;AAC9B,kDAAgC;AAChC,0DAAwC;AACxC,oDAAkC;AAClC,gDAA8B;AAC9B,0EAAwD;AACxD,4DAA0C;AAC1C,oDAAkC;AAClC,wDAAsC;AACtC,4DAA0C;AAC1C,gDAA8B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=fluent-array-of-objects-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent-array-of-objects-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/fluent-array-of-objects-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=fluent-leaf-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent-leaf-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/fluent-leaf-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=fluent-nested-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent-nested-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/fluent-nested-options.interface.ts"],"names":[],"mappings":""}
@@ -16,4 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./data-normalizer.interface"), exports);
18
18
  __exportStar(require("./data-mapping-interceptor.interface"), exports);
19
+ __exportStar(require("./fluent-array-of-objects-options.interface"), exports);
20
+ __exportStar(require("./fluent-leaf-options.interface"), exports);
21
+ __exportStar(require("./fluent-nested-options.interface"), exports);
19
22
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,uEAAqD"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,uEAAqD;AACrD,8EAA4D;AAC5D,kEAAgD;AAChD,oEAAkD"}
@@ -7,12 +7,80 @@ class BaseDataMappingNode {
7
7
  constructor() {
8
8
  this.nodes = {};
9
9
  }
10
+ // ── Fluent / sugar API ────────────────────────────────────────────────────────────────
11
+ //
12
+ // Sugar layer over the low-level chain. Each call returns `this` so calls compose without
13
+ // explicit `.end()`. Nested structures take a build callback that scopes the inner config
14
+ // — the framework handles the `.end()` for you.
10
15
  /**
11
- * This method is called by the node itself to tell its parent that it has been build and is ready to be added.
12
- * We use this mechanism to force the `end()` method on the leaf to be called so we can do some validations before
13
- * adding it to the tree.
16
+ * Add a leaf mapping. `field(src)` is shorthand for `field(src, src)` (no rename).
14
17
  *
15
- * @param node
18
+ * Equivalent to `.add().setSourceProperty(src).setDestinationProperty(dst).end()`, plus
19
+ * applying normalizer / optional / excludeNormalizers options.
20
+ */
21
+ field(source, destination, options) {
22
+ const leaf = this.add()
23
+ .setSourceProperty(source)
24
+ .setDestinationProperty(destination !== null && destination !== void 0 ? destination : source);
25
+ BaseDataMappingNode.applyLeafOptions(leaf, options);
26
+ leaf.end();
27
+ return this;
28
+ }
29
+ /**
30
+ * Add a nested object mapping. The build callback receives the new node and configures its
31
+ * children — no explicit `.end()` needed; this method calls it for you when the callback
32
+ * returns.
33
+ */
34
+ nested(source, destination, build, options) {
35
+ const node = this.addNestingLevel()
36
+ .setSourceProperty(source)
37
+ .setDestinationProperty(destination);
38
+ if ((options === null || options === void 0 ? void 0 : options.isOptional) !== undefined) {
39
+ node.setIsOptional(options.isOptional);
40
+ }
41
+ if ((options === null || options === void 0 ? void 0 : options.destinationType) !== undefined) {
42
+ node.setDestinationType(options.destinationType);
43
+ }
44
+ build(node);
45
+ node.end();
46
+ return this;
47
+ }
48
+ /**
49
+ * Add an array-of-objects mapping. The build callback configures the per-element schema —
50
+ * every element in the source array is mapped through it. `destinationType` can be a class
51
+ * (uniform array) or a factory callback (polymorphic array).
52
+ */
53
+ arrayOfObjects(source, destination, build, options) {
54
+ const node = this.addArrayOfObjects()
55
+ .setSourceProperty(source)
56
+ .setDestinationProperty(destination);
57
+ if ((options === null || options === void 0 ? void 0 : options.isOptional) !== undefined) {
58
+ node.setIsOptional(options.isOptional);
59
+ }
60
+ if ((options === null || options === void 0 ? void 0 : options.destinationType) !== undefined) {
61
+ node.setDestinationType(options.destinationType);
62
+ }
63
+ build(node);
64
+ node.end();
65
+ return this;
66
+ }
67
+ /**
68
+ * Add an array-of-scalars mapping. Normalizers in `options` apply to every element of the
69
+ * array, not to the array itself. `arrayOfScalars(src)` is shorthand for same-name source
70
+ * and destination.
71
+ */
72
+ arrayOfScalars(source, destination, options) {
73
+ const leaf = this.addArrayOfScalar()
74
+ .setSourceProperty(source)
75
+ .setDestinationProperty(destination !== null && destination !== void 0 ? destination : source);
76
+ BaseDataMappingNode.applyLeafOptions(leaf, options);
77
+ leaf.end();
78
+ return this;
79
+ }
80
+ /**
81
+ * Called by the node itself to tell its parent that it has been built and is ready to be
82
+ * added. We use this mechanism to force the `end()` method on the leaf to be called so we
83
+ * can do some validations before adding it to the tree.
16
84
  */
17
85
  addNode(node) {
18
86
  if (node.sourceProperty === undefined) {
@@ -23,6 +91,28 @@ class BaseDataMappingNode {
23
91
  }
24
92
  this.nodes[node.sourceProperty] = node;
25
93
  }
94
+ /**
95
+ * Shared between `field()` and `arrayOfScalars()` — both take the same options shape.
96
+ * Static helper so it can be called against either a freshly-built leaf or any leaf type.
97
+ */
98
+ static applyLeafOptions(leaf, options) {
99
+ var _a, _b;
100
+ if (options === undefined) {
101
+ return;
102
+ }
103
+ if (options.isOptional !== undefined) {
104
+ leaf.setIsOptional(options.isOptional);
105
+ }
106
+ (_a = options.excludeNormalizers) === null || _a === void 0 ? void 0 : _a.forEach(key => leaf.excludeNormalizer(key));
107
+ (_b = options.normalizers) === null || _b === void 0 ? void 0 : _b.forEach(entry => {
108
+ if (typeof entry === "string") {
109
+ leaf.addNormalizer(entry);
110
+ }
111
+ else {
112
+ leaf.addNormalizer(entry.key, entry.options);
113
+ }
114
+ });
115
+ }
26
116
  }
27
117
  exports.BaseDataMappingNode = BaseDataMappingNode;
28
118
  //# sourceMappingURL=base-data-mapping.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-data-mapping.node.js","sourceRoot":"","sources":["../../../../src/nodes/base-data-mapping.node.ts"],"names":[],"mappings":";;;AAEA,+FAAuF;AACvF,yGAAiG;AAEjG,MAAsB,mBAAmB;IAAzC;QACS,UAAK,GAAsE,EAAE,CAAC;IAsBvF,CAAC;IApBC;;;;;;OAMG;IACI,OAAO,CAAC,IAAuC;QACpD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,8DAA4B,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,wEAAiC,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACzC,CAAC;CAGF;AAvBD,kDAuBC"}
1
+ {"version":3,"file":"base-data-mapping.node.js","sourceRoot":"","sources":["../../../../src/nodes/base-data-mapping.node.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ const base_data_mapping_node_1 = require("./base-data-mapping.node");
16
16
  const data_mapping_source_property_not_found_error_1 = require("../errors/data-mapping-source-property-not-found.error");
17
17
  const array_data_mapping_node_invalid_source_property_type_error_1 = require("../errors/array-data-mapping-node-invalid-source-property-type.error");
18
18
  const class_transformer_1 = require("class-transformer");
19
+ const data_mapping_serializer_1 = require("../serializers/data-mapping.serializer");
19
20
  class DataMappingNode extends base_data_mapping_node_1.BaseDataMappingNode {
20
21
  constructor(root, parent, type = data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Node) {
21
22
  super();
@@ -246,61 +247,32 @@ class DataMappingNode extends base_data_mapping_node_1.BaseDataMappingNode {
246
247
  });
247
248
  }
248
249
  /**
249
- * This method imports a schema.
250
- *
251
- * @param schema
250
+ * Rehydrate this node from a previously-exported sub-schema. Children are rebuilt via
251
+ * `DataMappingSerializer.importChildren`, the same helper `DataMappingBuilder.import` uses
252
+ * (so the two stay consistent).
252
253
  */
253
254
  import(schema) {
254
255
  this.sourceProperty = schema.sourceProperty;
255
256
  this.destinationProperty = schema.destinationProperty;
256
257
  this.isOptional = schema.isOptional;
257
- this.nodes = {};
258
- const nodes = schema.nodes;
259
- for (const key in nodes) {
260
- if (nodes.hasOwnProperty(key) === false) {
261
- continue;
262
- }
263
- const nodeInfo = nodes[key];
264
- const type = nodeInfo["_type"];
265
- switch (type) {
266
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.ScalarArray:
267
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Leaf:
268
- const leaf = new data_mapping_leaf_1.DataMappingLeaf(this.root, this, type);
269
- leaf.import(nodeInfo);
270
- this.nodes[leaf.sourceProperty] = leaf;
271
- continue;
272
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Node:
273
- case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.ObjectArray:
274
- const node = new DataMappingNode(this.root, this, type);
275
- node.import(nodeInfo);
276
- this.nodes[node.sourceProperty] = node;
277
- ;
278
- }
279
- }
258
+ this.nodes = data_mapping_serializer_1.DataMappingSerializer.importChildren(this.root, this, schema.nodes);
280
259
  }
281
260
  /**
282
- * This method exports this node. The exported representation is a plain object it does not mutate
283
- * the live tree, so the same builder can continue to be used for mapping after `export()` is called.
261
+ * Export this node as a plain object. Does not mutate the live treethe builder remains
262
+ * usable for mapping after this call returns.
284
263
  *
285
- * `destinationType` is intentionally not serialized: class constructors aren't transferable, and
286
- * factory callbacks (`ArrayMemberTypeFactoryCallbackType`) hold closures. To rehydrate a schema with
287
- * the same destination instantiation behavior, decorate the destination class with class-transformer's
288
- * `@Type()` and pass the destination class to `DataMapper.map()`.
264
+ * `destinationType` is intentionally not serialized: class constructors aren't transferable,
265
+ * and factory callbacks (`ArrayMemberTypeFactoryCallbackType`) hold closures. To rehydrate a
266
+ * schema with the same destination instantiation behavior, decorate the destination class
267
+ * with class-transformer's `@Type()` and pass the destination class to `DataMapper.map()`.
289
268
  */
290
269
  export() {
291
- const exportedNodes = {};
292
- for (const key in this.nodes) {
293
- if (this.nodes.hasOwnProperty(key) === false) {
294
- continue;
295
- }
296
- exportedNodes[key] = this.nodes[key].export();
297
- }
298
270
  return {
299
271
  "_type": this.type,
300
272
  "sourceProperty": this.sourceProperty,
301
273
  "destinationProperty": this.destinationProperty,
302
274
  "isOptional": this.isOptional,
303
- "nodes": exportedNodes,
275
+ "nodes": data_mapping_serializer_1.DataMappingSerializer.exportChildren(this.nodes),
304
276
  };
305
277
  }
306
278
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-mapping.node.js","sourceRoot":"","sources":["../../../../src/nodes/data-mapping.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-mapping.node.js","sourceRoot":"","sources":["../../../../src/nodes/data-mapping.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataMappingSerializer = void 0;
4
+ const data_mapping_node_type_enum_1 = require("../enums/data-mapping-node-type.enum");
5
+ const data_mapping_node_1 = require("../nodes/data-mapping.node");
6
+ const data_mapping_leaf_1 = require("../nodes/data-mapping.leaf");
7
+ /**
8
+ * Pure helpers for serializing / deserializing the children-map shared between
9
+ * `DataMappingBuilder` and `DataMappingNode`.
10
+ *
11
+ * Both classes hold the same `{ [sourceProperty]: DataMappingNode | DataMappingLeaf }` shape
12
+ * and both need to walk it the same way during `import()` / `export()`. Keeping that walk in
13
+ * one place avoids the two implementations drifting apart (which they already had — see the
14
+ * old destination-property-leak bug).
15
+ *
16
+ * Stateless class-as-namespace per the project convention (no constructor dependencies, no
17
+ * instance state, so static methods make the call site read straight: `DataMappingSerializer.
18
+ * importChildren(...)`).
19
+ *
20
+ * Note on imports: this module is in a small cycle with `data-mapping.node.ts` — the
21
+ * serializer references Node and Leaf so it can instantiate them, and Node references the
22
+ * serializer so its `import()` / `export()` can delegate. The cycle resolves cleanly because
23
+ * the references are used only inside method bodies (not at module top level), so by the
24
+ * time anything runs both modules are fully evaluated.
25
+ */
26
+ class DataMappingSerializer {
27
+ /**
28
+ * Rebuild a populated children map from the `nodes` field of a serialized schema.
29
+ *
30
+ * Dispatches on the `_type` discriminator: ScalarArray + Leaf hydrate as `DataMappingLeaf`,
31
+ * Node + ObjectArray hydrate as `DataMappingNode`. The created child's own `import()` is
32
+ * called to fill in its fields and (for nodes) recurse into its own children.
33
+ */
34
+ static importChildren(root, parent, schemaNodes) {
35
+ const result = {};
36
+ if (schemaNodes === undefined || schemaNodes === null) {
37
+ return result;
38
+ }
39
+ for (const key in schemaNodes) {
40
+ if (schemaNodes.hasOwnProperty(key) === false) {
41
+ continue;
42
+ }
43
+ const nodeInfo = schemaNodes[key];
44
+ const type = nodeInfo["_type"];
45
+ switch (type) {
46
+ case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.ScalarArray:
47
+ case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Leaf: {
48
+ const leaf = new data_mapping_leaf_1.DataMappingLeaf(root, parent, type);
49
+ leaf.import(nodeInfo);
50
+ result[leaf.sourceProperty] = leaf;
51
+ break;
52
+ }
53
+ case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.Node:
54
+ case data_mapping_node_type_enum_1.DataMappingNodeTypeEnum.ObjectArray: {
55
+ const node = new data_mapping_node_1.DataMappingNode(root, parent, type);
56
+ node.import(nodeInfo);
57
+ result[node.sourceProperty] = node;
58
+ break;
59
+ }
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ /**
65
+ * Serialize a children map back into a plain `nodes` object suitable for embedding in a
66
+ * schema export. Returns a fresh object — does not mutate the input, so callers can safely
67
+ * continue to use the live tree after exporting.
68
+ */
69
+ static exportChildren(nodes) {
70
+ const result = {};
71
+ for (const key in nodes) {
72
+ if (nodes.hasOwnProperty(key) === false) {
73
+ continue;
74
+ }
75
+ result[key] = nodes[key].export();
76
+ }
77
+ return result;
78
+ }
79
+ }
80
+ exports.DataMappingSerializer = DataMappingSerializer;
81
+ //# sourceMappingURL=data-mapping.serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-mapping.serializer.js","sourceRoot":"","sources":["../../../../src/serializers/data-mapping.serializer.ts"],"names":[],"mappings":";;;AAAA,sFAA6E;AAC7E,kEAA2D;AAC3D,kEAA2D;AAG3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,qBAAqB;IAChC;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAC1B,IAAwB,EACxB,MAA4C,EAC5C,WAA+C;QAE/C,MAAM,MAAM,GAAoE,EAAE,CAAC;QAEnF,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,IAAI,GAA4B,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExD,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,qDAAuB,CAAC,WAAW,CAAC;gBACzC,KAAK,qDAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClC,MAAM,IAAI,GAAG,IAAI,mCAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;oBACnC,MAAM;gBACR,CAAC;gBAED,KAAK,qDAAuB,CAAC,IAAI,CAAC;gBAClC,KAAK,qDAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;oBACzC,MAAM,IAAI,GAAG,IAAI,mCAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;oBACnC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAC1B,KAAsE;QAEtE,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AArED,sDAqEC"}
@@ -0,0 +1,18 @@
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-mapping.serializer"), exports);
18
+ //# sourceMappingURL=serializers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../../../src/serializers/serializers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}