react-deepwatch 1.6.2 → 1.7.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.
package/Util.ts CHANGED
@@ -197,6 +197,18 @@ function diagnosis_jsonPath(key: unknown) {
197
197
  return `.${key}`;
198
198
  }
199
199
 
200
+ type VisitReplaceOptions = {
201
+ /**
202
+ * whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with trackPath when an error was thrown
203
+ */
204
+ trackPath?: boolean | "onError",
205
+
206
+ /**
207
+ * Keep the order of sets and maps when replacing elements. Default: false
208
+ */
209
+ keepOrder?: boolean
210
+ }
211
+
200
212
  /**
201
213
  * Usage:
202
214
  * <pre><code>
@@ -207,9 +219,8 @@ function diagnosis_jsonPath(key: unknown) {
207
219
  *
208
220
  * @param value
209
221
  * @param visitor
210
- * @param trackPath whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with the concetxt when an error was thrown
211
222
  */
212
- export function visitReplace<O>(value: O, visitor: (value: unknown, visitChilds: (value: unknown, context: VisitReplaceContext) => unknown, context: VisitReplaceContext) => unknown , trackPath: boolean | "onError" = false): O {
223
+ export function visitReplace<O extends object>(value: O, visitor: (value: unknown, visitChilds: (value: unknown, context: VisitReplaceContext) => unknown, context: VisitReplaceContext) => unknown , options: VisitReplaceOptions= {}): O {
213
224
  const visisitedObjects = new Set<object>()
214
225
 
215
226
  function visitChilds(value: unknown, context: VisitReplaceContext) {
@@ -218,34 +229,99 @@ export function visitReplace<O>(value: O, visitor: (value: unknown, visitChilds:
218
229
  }
219
230
  else if(typeof value === "object") {
220
231
  const obj = value as object;
221
- if(visisitedObjects.has(obj)) {
232
+ if (visisitedObjects.has(obj)) {
222
233
  return value; // don't iterate again
223
234
  }
224
235
  visisitedObjects.add(obj);
225
236
 
226
- for (let k in obj) {
227
- const keyInParent = k as keyof object;
228
- const childValue = obj[keyInParent];
229
- let newValue = visitor(childValue, visitChilds, {...context, parentObject: value, key: keyInParent, diagnosis_path: (context.diagnosis_path !== undefined?`${context.diagnosis_path!}${diagnosis_jsonPath(keyInParent)}`:undefined)});
230
- if(newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
231
- // @ts-ignore
232
- obj[keyInParent] = newValue;
237
+ if (value instanceof Set) {
238
+ let set = obj as Set<unknown>;
239
+ if (options.keepOrder) {
240
+ throw new Error("Keep order not yet implemented");
241
+ }
242
+ for (const childValue of [...set.values()]) {
243
+ let newValue = visitor(childValue, visitChilds, {
244
+ ...context,
245
+ parentObject: value,
246
+ key: childValue,
247
+ diagnosis_path: (context.diagnosis_path !== undefined ? context.diagnosis_path! : undefined)
248
+ });
249
+
250
+ if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
251
+ // Replace:
252
+ set.delete(childValue); set.add(newValue);
253
+ }
254
+ }
255
+
256
+ }
257
+ else if (value instanceof Map) {
258
+ let map = obj as Map<unknown, unknown>;
259
+ if (options.keepOrder) {
260
+ throw new Error("Keep order not yet implemented");
261
+ }
262
+
263
+ // Keys:
264
+ for (const key of [...map.keys()]) {
265
+ let newKey = visitor(key, visitChilds, {
266
+ ...context,
267
+ parentObject: value,
268
+ key: key,
269
+ diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path!}${diagnosis_jsonPath(key)}` : undefined)
270
+ });
271
+
272
+ if (newKey !== key) { // Only if key really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
273
+ // Replace key:
274
+ let value = map.get(key);
275
+ map.delete(key);
276
+ map.set(newKey, value);
277
+ }
278
+ }
279
+
280
+ // Values:
281
+ for (const [key, childValue] of [...map.entries()]) {
282
+ let newValue = visitor(childValue, visitChilds, {
283
+ ...context,
284
+ parentObject: value,
285
+ key: key,
286
+ diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path!}${diagnosis_jsonPath(key)}` : undefined)
287
+ });
288
+
289
+ if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
290
+ map.set(key, newValue);
291
+ }
292
+ }
293
+
294
+ }
295
+ else {
296
+ for (let k in obj) {
297
+ const keyInParent = k as keyof object;
298
+ const childValue = obj[keyInParent];
299
+ let newValue = visitor(childValue, visitChilds, {
300
+ ...context,
301
+ parentObject: value,
302
+ key: keyInParent,
303
+ diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path!}${diagnosis_jsonPath(keyInParent)}` : undefined)
304
+ });
305
+ if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
306
+ // @ts-ignore
307
+ obj[keyInParent] = newValue;
308
+ }
233
309
  }
234
310
  }
235
311
  }
236
312
  return value;
237
313
  }
238
314
 
239
- if(trackPath === "onError") {
315
+ if(options.trackPath === "onError") {
240
316
  try {
241
317
  return visitor(value, visitChilds, {}) as O; // Fast try without context
242
318
  }
243
319
  catch (e) {
244
- return visitReplace(value, visitor, true); // Try again with context
320
+ return visitReplace(value, visitor, {...options, trackPath: true}); // Try again with context
245
321
  }
246
322
  }
247
323
 
248
- return visitor(value, visitChilds,{diagnosis_path: trackPath?"":undefined}) as O;
324
+ return visitor(value, visitChilds,{diagnosis_path: options.trackPath?"":undefined}) as O;
249
325
  }
250
326
 
251
327
  /**
@@ -65,6 +65,16 @@ type VisitReplaceContext = {
65
65
  parentObject?: object;
66
66
  key?: unknown;
67
67
  };
68
+ type VisitReplaceOptions = {
69
+ /**
70
+ * whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with trackPath when an error was thrown
71
+ */
72
+ trackPath?: boolean | "onError";
73
+ /**
74
+ * Keep the order of sets and maps when replacing elements. Default: false
75
+ */
76
+ keepOrder?: boolean;
77
+ };
68
78
  /**
69
79
  * Usage:
70
80
  * <pre><code>
@@ -75,9 +85,8 @@ type VisitReplaceContext = {
75
85
  *
76
86
  * @param value
77
87
  * @param visitor
78
- * @param trackPath whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with the concetxt when an error was thrown
79
88
  */
80
- export declare function visitReplace<O>(value: O, visitor: (value: unknown, visitChilds: (value: unknown, context: VisitReplaceContext) => unknown, context: VisitReplaceContext) => unknown, trackPath?: boolean | "onError"): O;
89
+ export declare function visitReplace<O extends object>(value: O, visitor: (value: unknown, visitChilds: (value: unknown, context: VisitReplaceContext) => unknown, context: VisitReplaceContext) => unknown, options?: VisitReplaceOptions): O;
81
90
  /**
82
91
  * Just do something the runtime can't optimize away
83
92
  * @param value
@@ -1 +1 @@
1
- {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
@@ -176,9 +176,8 @@ function diagnosis_jsonPath(key) {
176
176
  *
177
177
  * @param value
178
178
  * @param visitor
179
- * @param trackPath whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with the concetxt when an error was thrown
180
179
  */
181
- export function visitReplace(value, visitor, trackPath = false) {
180
+ export function visitReplace(value, visitor, options = {}) {
182
181
  const visisitedObjects = new Set();
183
182
  function visitChilds(value, context) {
184
183
  if (value === null) {
@@ -190,27 +189,66 @@ export function visitReplace(value, visitor, trackPath = false) {
190
189
  return value; // don't iterate again
191
190
  }
192
191
  visisitedObjects.add(obj);
193
- for (let k in obj) {
194
- const keyInParent = k;
195
- const childValue = obj[keyInParent];
196
- let newValue = visitor(childValue, visitChilds, Object.assign(Object.assign({}, context), { parentObject: value, key: keyInParent, diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path}${diagnosis_jsonPath(keyInParent)}` : undefined) }));
197
- if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
198
- // @ts-ignore
199
- obj[keyInParent] = newValue;
192
+ if (value instanceof Set) {
193
+ let set = obj;
194
+ if (options.keepOrder) {
195
+ throw new Error("Keep order not yet implemented");
196
+ }
197
+ for (const childValue of [...set.values()]) {
198
+ let newValue = visitor(childValue, visitChilds, Object.assign(Object.assign({}, context), { parentObject: value, key: childValue, diagnosis_path: (context.diagnosis_path !== undefined ? context.diagnosis_path : undefined) }));
199
+ if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
200
+ // Replace:
201
+ set.delete(childValue);
202
+ set.add(newValue);
203
+ }
204
+ }
205
+ }
206
+ else if (value instanceof Map) {
207
+ let map = obj;
208
+ if (options.keepOrder) {
209
+ throw new Error("Keep order not yet implemented");
210
+ }
211
+ // Keys:
212
+ for (const key of [...map.keys()]) {
213
+ let newKey = visitor(key, visitChilds, Object.assign(Object.assign({}, context), { parentObject: value, key: key, diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path}${diagnosis_jsonPath(key)}` : undefined) }));
214
+ if (newKey !== key) { // Only if key really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
215
+ // Replace key:
216
+ let value = map.get(key);
217
+ map.delete(key);
218
+ map.set(newKey, value);
219
+ }
220
+ }
221
+ // Values:
222
+ for (const [key, childValue] of [...map.entries()]) {
223
+ let newValue = visitor(childValue, visitChilds, Object.assign(Object.assign({}, context), { parentObject: value, key: key, diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path}${diagnosis_jsonPath(key)}` : undefined) }));
224
+ if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
225
+ map.set(key, newValue);
226
+ }
227
+ }
228
+ }
229
+ else {
230
+ for (let k in obj) {
231
+ const keyInParent = k;
232
+ const childValue = obj[keyInParent];
233
+ let newValue = visitor(childValue, visitChilds, Object.assign(Object.assign({}, context), { parentObject: value, key: keyInParent, diagnosis_path: (context.diagnosis_path !== undefined ? `${context.diagnosis_path}${diagnosis_jsonPath(keyInParent)}` : undefined) }));
234
+ if (newValue !== childValue) { // Only if childValue really has changed. We don't want to interfer with setting a readonly property and trigger a proxy
235
+ // @ts-ignore
236
+ obj[keyInParent] = newValue;
237
+ }
200
238
  }
201
239
  }
202
240
  }
203
241
  return value;
204
242
  }
205
- if (trackPath === "onError") {
243
+ if (options.trackPath === "onError") {
206
244
  try {
207
245
  return visitor(value, visitChilds, {}); // Fast try without context
208
246
  }
209
247
  catch (e) {
210
- return visitReplace(value, visitor, true); // Try again with context
248
+ return visitReplace(value, visitor, Object.assign(Object.assign({}, options), { trackPath: true })); // Try again with context
211
249
  }
212
250
  }
213
- return visitor(value, visitChilds, { diagnosis_path: trackPath ? "" : undefined });
251
+ return visitor(value, visitChilds, { diagnosis_path: options.trackPath ? "" : undefined });
214
252
  }
215
253
  /**
216
254
  * Just do something the runtime can't optimize away
@@ -1 +1 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,10 @@ export type PreserveOptions = {
19
19
  */
20
20
  ignoresKeys?: boolean;
21
21
  /**
22
- * Threats an object that was preserved and reoccurs on a completely differnt place (not the same parent) as the same = re-uses that instance.
22
+ * Threats an object that was preserved and reoccurs on a completely different place (not the same parent) as the same = re-uses that instance.
23
23
  * <p>Default: false</p>
24
24
  * <p>Disabled by default because too much magic / behaviour flipping depending indirectly related data.</p>
25
+ * @deprecated Those are preserved (as logically expected) there will be an error on conflicts
25
26
  */
26
27
  preserveCircular?: boolean;
27
28
  /**
@@ -34,11 +35,14 @@ declare class PreserveCall {
34
35
  /**
35
36
  * preserved/old -> new (obsolete) object
36
37
  */
37
- mergedToNew: Map<object, object>;
38
+ preservedToNew: Map<object, object>;
38
39
  /**
39
40
  * new (obsolete) object -> preserved/old object
40
41
  */
41
- newToPreserved: Map<object, object>;
42
+ newToPreserved: Map<object, {
43
+ preserved: object;
44
+ diag_newPath: string;
45
+ }>;
42
46
  possiblyObsoleteObjects: Set<object>;
43
47
  usedObjects: WeakSet<object>;
44
48
  /**
@@ -55,14 +59,14 @@ export declare function preserve_inner<T>(oldValue: T, newValue: T, call: Preser
55
59
  export declare function diagnisis_shortenValue(evil_value: any): string;
56
60
  /**
57
61
  *
58
- * Scans root deeply for Arrays and for each found array, it call normalizeList, which squeezes the items with the same id/key into one object instance.
62
+ * Scans root deeply for Arrays and for each found array, it calls normalizeList, which makes identical items with the same id/key one (shared) object instance.
59
63
  * @see normalizeList
60
64
  * @param root
61
65
  * @param options
62
66
  */
63
67
  export declare function normalizeLists<T extends object>(root: T, options?: PreserveOptions): T;
64
68
  /**
65
- * Squeezes the items with the same id/key into one object instance.
69
+ * Makes identical items with the same id/key one (shared) object instance
66
70
  * @param list
67
71
  * @param options
68
72
  * @param diagnosis_path internal
@@ -1 +1 @@
1
- {"version":3,"file":"preserve.d.ts","sourceRoot":"","sources":["../../preserve.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,cAAM,YAAY;IACd,OAAO,EAAE,eAAe,CAAC;IACzB;;OAEG;IACH,WAAW,sBAA4B;IAEvC;;OAEG;IACH,cAAc,sBAA4B;IAE1C,uBAAuB,cAAqB;IAE5C,WAAW,kBAAyB;IAEpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO;IAMvB,SAAS,CAAC,EAAE,iBAAiB,CAAA;gBAEjB,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,iBAAiB;CAItE;AA8FD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CAEtF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAqBjH;AAGD,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,CAyEzG;AAiFD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,GAAI,MAAM,CAqE/D;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,KAOtF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAoBrH"}
1
+ {"version":3,"file":"preserve.d.ts","sourceRoot":"","sources":["../../preserve.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,cAAM,YAAY;IACd,OAAO,EAAE,eAAe,CAAC;IACzB;;OAEG;IACH,cAAc,sBAA4B;IAE1C;;OAEG;IACH,cAAc;mBAA+B,MAAM;sBAAgB,MAAM;OAAK;IAE9E,uBAAuB,cAAqB;IAE5C,WAAW,kBAAyB;IAEpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO;IAMvB,SAAS,CAAC,EAAE,iBAAiB,CAAA;gBAEjB,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,iBAAiB;CAItE;AA8FD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,CAAC,CAEtF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,CAAC,CA+BjH;AAGD,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,CAmFzG;AAkFD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,GAAI,MAAM,CAqE/D;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,KAOtF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAoBrH"}
@@ -1,4 +1,4 @@
1
- import { visitReplace } from "./Util";
1
+ import { isObject, visitReplace } from "./Util";
2
2
  import _ from "underscore";
3
3
  import { invalidateObject, deleteProperty } from "proxy-facades";
4
4
  const normalizeListsHint = `Hint: When this is fetched server data and having duplicate items in a list is intentional, you can pre-process it with the normalizeLists function first. See: import {normalizeLists, normalizeList} from "react-deepwatch"`;
@@ -16,7 +16,7 @@ class PreserveCall {
16
16
  /**
17
17
  * preserved/old -> new (obsolete) object
18
18
  */
19
- this.mergedToNew = new Map();
19
+ this.preservedToNew = new Map();
20
20
  /**
21
21
  * new (obsolete) object -> preserved/old object
22
22
  */
@@ -32,15 +32,15 @@ class PreserveCall {
32
32
  */
33
33
  class ObjRegistry {
34
34
  constructor(preserveOptions) {
35
- this.objectsById = new Map();
36
- this.objectsByKey = new Map();
35
+ this.diag_objectsById = new Map();
36
+ this.diag_objectsByKey = new Map();
37
37
  this.objectsByIdAndKey = new Map();
38
38
  this.preserveOptions = preserveOptions;
39
39
  }
40
40
  getIdAndKey(obj, diagnosis_path) {
41
41
  const diagnosis_getErrorDiag = () => `Trying to reidentify the object ${diagnisis_shortenValue(obj)} during a 'preserve' operation. Path: ${diagnosis_path}`;
42
42
  const result = {};
43
- for (const mode of [{ propName: "id", map: this.objectsById, diag_other: this.objectsByKey }, { propName: "key", map: this.objectsByKey, diag_other: this.objectsById }]) {
43
+ for (const mode of [{ propName: "id", map: this.diag_objectsById, diag_other: this.diag_objectsByKey }, { propName: "key", map: this.diag_objectsByKey, diag_other: this.diag_objectsById }]) {
44
44
  const throwInconsistent = (map) => { throw new PreserveError(`Objects must be consistent in either having an id or a key or both set, but found: ${diagnisis_shortenValue(obj)} and ${diagnisis_shortenValue(map.values().next().value)}. Path: ${diagnosis_path}`); };
45
45
  //@ts-ignore
46
46
  const value = obj[mode.propName];
@@ -78,10 +78,10 @@ class ObjRegistry {
78
78
  // Add to maps:
79
79
  this.objectsByIdAndKey.set(idAndKeyString, value);
80
80
  if (idAndKey.id !== undefined) {
81
- this.objectsById.set(idAndKey.id, value);
81
+ this.diag_objectsById.set(idAndKey.id, value);
82
82
  }
83
83
  if (idAndKey.key !== undefined) {
84
- this.objectsByKey.set(idAndKey.key, value);
84
+ this.diag_objectsByKey.set(idAndKey.key, value);
85
85
  }
86
86
  }
87
87
  get(value, diagnosis_path) {
@@ -104,6 +104,15 @@ export function preserve(oldValue, newValue, options = {}) {
104
104
  export function _preserve(oldValue, newValue, options, diagnosis) {
105
105
  let call = new PreserveCall(options, diagnosis);
106
106
  let result = preserve_inner(oldValue, newValue, call, "<root>");
107
+ if (isObject(result)) {
108
+ // Find all new objects in the result that were preserved in some other place and set them to that preserved instance:
109
+ result = visitReplace(result, (value, visitChilds, context) => {
110
+ if (isObject(value) && call.newToPreserved.has(value)) {
111
+ value = call.newToPreserved.get(value).preserved;
112
+ }
113
+ return visitChilds(value, context); // Should be necessary but not really thought about it much
114
+ });
115
+ }
107
116
  // Invalidate obsolete objects
108
117
  if (options.destroyObsolete !== false && call.possiblyObsoleteObjects.size > 0) {
109
118
  const obsoleteCause = (diagnosis === null || diagnosis === void 0 ? void 0 : diagnosis.callStack) || new Error("Preserve was called");
@@ -127,29 +136,39 @@ export function preserve_inner(oldValue, newValue, call, diagnosis_path) {
127
136
  if (newValue === null || typeof newValue !== "object") {
128
137
  return newValue;
129
138
  }
130
- if (call.options.preserveCircular) {
131
- const preserved = call.newToPreserved.get(newValue);
132
- if (preserved !== undefined) {
133
- return preserved;
134
- }
135
- }
136
139
  if (!mergeable(oldValue, newValue)) {
140
+ if (call.newToPreserved.has(newValue)) {
141
+ return call.newToPreserved.get(newValue).preserved;
142
+ }
137
143
  return newValue;
138
144
  }
139
145
  // Narrow types:
140
146
  if (oldValue === null || typeof oldValue !== "object" || newValue === null || typeof newValue !== "object") {
147
+ if (call.newToPreserved.has(newValue)) {
148
+ return call.newToPreserved.get(newValue).preserved;
149
+ }
141
150
  return newValue;
142
151
  }
143
- if (call.mergedToNew.has(oldValue)) { // Already merged or currently merging?
152
+ if (call.preservedToNew.has(oldValue)) { // Already merged or currently merging?
144
153
  // Safety check:
145
- if (call.mergedToNew.get(oldValue) !== newValue) {
146
- throw new PreserveError(`Cannot replace object ${diagnisis_shortenValue(oldValue)} into ${diagnisis_shortenValue(newValue)} in: ${diagnosis_path}. It has already been replaced by another object: ${diagnisis_shortenValue(call.mergedToNew.get(oldValue))}. Please make your objects have a proper id or key and are not used in multiple places where these can be mistaken.\n${normalizeListsHint}`);
154
+ if (call.preservedToNew.get(oldValue) !== newValue) {
155
+ throw new PreserveError(`Cannot replace object ${diagnisis_shortenValue(oldValue)} into ${diagnisis_shortenValue(newValue)} in: ${diagnosis_path}. It has already been replaced by another object: ${diagnisis_shortenValue(call.preservedToNew.get(oldValue))}. Please make sure, your objects have a proper id or key and are not used in multiple places where these can be mistaken.\n${normalizeListsHint}`);
147
156
  }
148
157
  return oldValue;
149
158
  }
150
159
  // *** Merge: ****
151
- call.mergedToNew.set(oldValue, newValue);
152
- call.newToPreserved.set(newValue, oldValue);
160
+ // Conflict check:
161
+ if (call.newToPreserved.has(newValue)) {
162
+ const otherPreserved = call.newToPreserved.get(newValue);
163
+ if (otherPreserved.preserved === oldValue) { // new -> old was exactly already preserved through other place?
164
+ return oldValue;
165
+ }
166
+ else {
167
+ throw new PreserveError(`Conflict: The same object instance (used in 2 places) is about to be preserved to different objects. This is not meaningful, that an instance in the new data structure represents 2 different instances in the old structure.\nPlace a: ${otherPreserved.diag_newPath}; old/preserved object: ${diagnisis_shortenValue(otherPreserved.preserved)}\nPlace b: ${diagnosis_path}; old/preserved object: ${diagnisis_shortenValue(oldValue)}`);
168
+ }
169
+ }
170
+ call.preservedToNew.set(oldValue, newValue);
171
+ call.newToPreserved.set(newValue, { preserved: oldValue, diag_newPath: diagnosis_path });
153
172
  if (Array.isArray(oldValue)) {
154
173
  return preserve_array(oldValue, newValue, call, diagnosis_path);
155
174
  }
@@ -177,7 +196,7 @@ export function preserve_inner(oldValue, newValue, call, diagnosis_path) {
177
196
  }
178
197
  return oldValue;
179
198
  };
180
- const result = inner();
199
+ const result = inner(); // "as T" because i don't get why inner is "T | object"
181
200
  if (result !== newValue) { // old was preserved
182
201
  if (newValue !== null && typeof newValue === "object") {
183
202
  call.possiblyObsoleteObjects.add(newValue);
@@ -223,15 +242,15 @@ function preserve_set(oldSet, newSet, call, diagnosis_path) {
223
242
  function preserve_map(oldMap, newMap, call, diagnosis_path) {
224
243
  // Register old ids/keys:
225
244
  const oldKeysRegistry = new ObjRegistry(call.options);
226
- const oldValuesRegistry = new ObjRegistry(call.options);
227
- for (const [key, value] of oldMap.entries()) {
245
+ for (const key of oldMap.keys()) {
228
246
  oldKeysRegistry.register(key, `${diagnosis_path}[${diagnisis_shortenValue(key)}]`);
229
- oldValuesRegistry.register(value, `${diagnosis_path}[${diagnisis_shortenValue(key)}]`);
230
247
  }
248
+ const oldMapCopy = new Map(oldMap.entries());
231
249
  oldMap.clear();
232
250
  for (let newKey of newMap.keys()) {
233
251
  let newValue = newMap.get(newKey);
234
- oldMap.set(oldKeysRegistry.getPreserved(newKey, call, diagnosis_path), oldValuesRegistry.getPreserved(newValue, call, `${diagnosis_path}[${diagnisis_shortenValue(newKey)}]`));
252
+ const preservedKey = oldKeysRegistry.getPreserved(newKey, call, diagnosis_path);
253
+ oldMap.set(preservedKey, preserve_inner(oldMapCopy.get(preservedKey), newValue, call, `${diagnosis_path}[${diagnisis_shortenValue(newKey)}]`));
235
254
  }
236
255
  return oldMap;
237
256
  }
@@ -332,7 +351,7 @@ function mergeable(oldValue, newValue) {
332
351
  }
333
352
  /**
334
353
  *
335
- * Scans root deeply for Arrays and for each found array, it call normalizeList, which squeezes the items with the same id/key into one object instance.
354
+ * Scans root deeply for Arrays and for each found array, it calls normalizeList, which makes identical items with the same id/key one (shared) object instance.
336
355
  * @see normalizeList
337
356
  * @param root
338
357
  * @param options
@@ -343,10 +362,10 @@ export function normalizeLists(root, options = {}) {
343
362
  normalizeList(value, options, context.diagnosis_path);
344
363
  }
345
364
  return visitChilds(value, context);
346
- }, "onError");
365
+ }, { trackPath: "onError" });
347
366
  }
348
367
  /**
349
- * Squeezes the items with the same id/key into one object instance.
368
+ * Makes identical items with the same id/key one (shared) object instance
350
369
  * @param list
351
370
  * @param options
352
371
  * @param diagnosis_path internal
@@ -1 +1 @@
1
- {"version":3,"file":"preserve.js","sourceRoot":"","sources":["../../preserve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preserve.js","sourceRoot":"","sources":["../../preserve.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,16 @@ type VisitReplaceContext = {
65
65
  parentObject?: object;
66
66
  key?: unknown;
67
67
  };
68
+ type VisitReplaceOptions = {
69
+ /**
70
+ * whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with trackPath when an error was thrown
71
+ */
72
+ trackPath?: boolean | "onError";
73
+ /**
74
+ * Keep the order of sets and maps when replacing elements. Default: false
75
+ */
76
+ keepOrder?: boolean;
77
+ };
68
78
  /**
69
79
  * Usage:
70
80
  * <pre><code>
@@ -75,9 +85,8 @@ type VisitReplaceContext = {
75
85
  *
76
86
  * @param value
77
87
  * @param visitor
78
- * @param trackPath whether to pass on the context object. This hurts performance because the path is concatted every time, so use it only when needed. Setting this to "onError" re-executes the visitprelace with the concetxt when an error was thrown
79
88
  */
80
- export declare function visitReplace<O>(value: O, visitor: (value: unknown, visitChilds: (value: unknown, context: VisitReplaceContext) => unknown, context: VisitReplaceContext) => unknown, trackPath?: boolean | "onError"): O;
89
+ export declare function visitReplace<O extends object>(value: O, visitor: (value: unknown, visitChilds: (value: unknown, context: VisitReplaceContext) => unknown, context: VisitReplaceContext) => unknown, options?: VisitReplaceOptions): O;
81
90
  /**
82
91
  * Just do something the runtime can't optimize away
83
92
  * @param value