@lionweb/class-core 0.7.0-beta.12 → 0.7.0-beta.14

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 (80) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +6 -6
  3. package/dist/LionCore_builtins.g.d.ts +2 -2
  4. package/dist/LionCore_builtins.g.d.ts.map +1 -1
  5. package/dist/LionCore_builtins.g.js +1 -1
  6. package/dist/LionCore_builtins.g.js.map +1 -1
  7. package/dist/base-types.d.ts +7 -11
  8. package/dist/base-types.d.ts.map +1 -1
  9. package/dist/base-types.js +3 -28
  10. package/dist/base-types.js.map +1 -1
  11. package/dist/convenience.d.ts +7 -7
  12. package/dist/convenience.d.ts.map +1 -1
  13. package/dist/convenience.js +7 -7
  14. package/dist/convenience.js.map +1 -1
  15. package/dist/deltas/appliers.d.ts +2 -2
  16. package/dist/deltas/appliers.d.ts.map +1 -1
  17. package/dist/deltas/appliers.js +5 -2
  18. package/dist/deltas/appliers.js.map +1 -1
  19. package/dist/deltas/compositor.d.ts +51 -0
  20. package/dist/deltas/compositor.d.ts.map +1 -0
  21. package/dist/deltas/compositor.js +95 -0
  22. package/dist/deltas/compositor.js.map +1 -0
  23. package/dist/deltas/index.d.ts +2 -1
  24. package/dist/deltas/index.d.ts.map +1 -1
  25. package/dist/deltas/index.js +2 -1
  26. package/dist/deltas/index.js.map +1 -1
  27. package/dist/deltas/inverters.d.ts.map +1 -1
  28. package/dist/deltas/inverters.js +33 -9
  29. package/dist/deltas/inverters.js.map +1 -1
  30. package/dist/deltas/receivers.d.ts +39 -0
  31. package/dist/deltas/receivers.d.ts.map +1 -0
  32. package/dist/deltas/receivers.js +60 -0
  33. package/dist/deltas/receivers.js.map +1 -0
  34. package/dist/deserializer.d.ts +5 -5
  35. package/dist/deserializer.d.ts.map +1 -1
  36. package/dist/deserializer.js +8 -19
  37. package/dist/deserializer.js.map +1 -1
  38. package/dist/factory.d.ts +10 -2
  39. package/dist/factory.d.ts.map +1 -1
  40. package/dist/factory.js +25 -16
  41. package/dist/factory.js.map +1 -1
  42. package/dist/id-mapping.d.ts +21 -3
  43. package/dist/id-mapping.d.ts.map +1 -1
  44. package/dist/id-mapping.js +37 -17
  45. package/dist/id-mapping.js.map +1 -1
  46. package/dist/textualizer.js +1 -1
  47. package/dist/textualizer.js.map +1 -1
  48. package/dist/value-managers/annotations.d.ts.map +1 -1
  49. package/dist/value-managers/annotations.js +1 -2
  50. package/dist/value-managers/annotations.js.map +1 -1
  51. package/dist/value-managers/base.d.ts +2 -2
  52. package/dist/value-managers/base.js +4 -4
  53. package/dist/value-managers/base.js.map +1 -1
  54. package/dist/value-managers/containments.d.ts +2 -2
  55. package/dist/value-managers/containments.d.ts.map +1 -1
  56. package/dist/value-managers/containments.js +89 -27
  57. package/dist/value-managers/containments.js.map +1 -1
  58. package/dist/value-managers/references.js +2 -2
  59. package/package.json +34 -34
  60. package/src/LionCore_builtins.g.ts +2 -2
  61. package/src/base-types.ts +6 -31
  62. package/src/convenience.ts +10 -10
  63. package/src/deltas/appliers.ts +5 -2
  64. package/src/deltas/compositor.ts +107 -0
  65. package/src/deltas/index.ts +3 -1
  66. package/src/deltas/inverters.ts +33 -9
  67. package/src/deltas/receivers.ts +92 -0
  68. package/src/deserializer.ts +9 -25
  69. package/src/factory.ts +31 -17
  70. package/src/id-mapping.ts +26 -5
  71. package/src/textualizer.ts +1 -1
  72. package/src/value-managers/annotations.ts +2 -2
  73. package/src/value-managers/base.ts +4 -4
  74. package/src/value-managers/containments.ts +87 -27
  75. package/src/value-managers/references.ts +2 -2
  76. package/dist/deltas/handlers.d.ts +0 -17
  77. package/dist/deltas/handlers.d.ts.map +0 -1
  78. package/dist/deltas/handlers.js +0 -43
  79. package/dist/deltas/handlers.js.map +0 -1
  80. package/src/deltas/handlers.ts +0 -64
@@ -0,0 +1,95 @@
1
+ // Copyright 2025 TRUMPF Laser SE and other contributors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License")
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
+ // SPDX-License-Identifier: Apache-2.0
17
+ import { CompositeDelta } from "../index.js";
18
+ /**
19
+ * A <em>delta compositor</em> is used to <em>aggregate</em> deltas as {@link CompositeDelta composite deltas}.
20
+ *
21
+ * Usage:
22
+ * ```typescript
23
+ * const compositor = new Compositor(downstreamReceiveDelta);
24
+ * compositor.openComposite();
25
+ * // ...
26
+ * compositor.upstreamReceiveDelta(<delta>);
27
+ * // ...
28
+ * compositor.closeComposite();
29
+ * ```
30
+ */
31
+ export class DeltaCompositor {
32
+ /**
33
+ * @param downstreamReceiveDelta the {@link DeltaReceiver} that deltas get passed to.
34
+ * @param maximumNestingDepth the maximum depth that composites can be nested.
35
+ * A maximum depth of e.g. 1 means that at most 1 composite can be open at any time.
36
+ */
37
+ constructor(downstreamReceiveDelta, maximumNestingDepth = Infinity) {
38
+ this.downstreamReceiveDelta = downstreamReceiveDelta;
39
+ this.maximumNestingDepth = maximumNestingDepth;
40
+ /**
41
+ * An array of arrays of {@link IDelta deltas}, comprising a “stack”.
42
+ *
43
+ * Invariants:
44
+ * - (I1) composite has been opened &hArr; `this.deltasInComposite !== undefined` / `Array.isArray(this.deltasInComposite)`
45
+ * - (I2) this.deltasStack is either undefined or an array containing at least one array
46
+ */
47
+ this.deltasStack = undefined;
48
+ /**
49
+ * Opens a composite, meaning that all deltas passed to the {@link upstreamReceiveDelta} are gathered into a composite delta
50
+ * that gets forwarded to the downstream delta receiver as soon as the composite is closed.
51
+ *
52
+ * Composites can be nested, to the maximum depth configured through this class’ constructor,
53
+ * beyond which an error gets thrown.
54
+ */
55
+ this.openComposite = () => {
56
+ if (this.deltasStack === undefined) {
57
+ this.deltasStack = []; // ==> (I1) + 1st half of (I2)
58
+ }
59
+ if (this.deltasStack.length >= this.maximumNestingDepth) {
60
+ throw new Error(`attempt occurred to start a nested composition exceeding the maximum nesting depth`);
61
+ }
62
+ this.deltasStack.push([]); // ==> 2nd half of (I2)
63
+ };
64
+ /**
65
+ * Closes the current composite, producing the deltas gathered for this composite into a composite delta.
66
+ * Composites can be nested, and deltas only get forwarded to the downstream delta receiver after the top-level composite has been closed.
67
+ */
68
+ this.closeComposite = () => {
69
+ if (this.deltasStack === undefined) {
70
+ throw new Error(`attempt occurred to finish a composite without one being started`);
71
+ }
72
+ const parts = this.deltasStack.pop(); // is an array because of (I2)
73
+ if (this.deltasStack.length === 0) { // last array popped from stack
74
+ this.deltasStack = undefined; // maintain (I2)
75
+ }
76
+ if (parts.length > 0) {
77
+ this.upstreamReceiveDelta(new CompositeDelta(parts));
78
+ }
79
+ };
80
+ if (maximumNestingDepth !== Infinity && (!Number.isInteger(maximumNestingDepth) || maximumNestingDepth < 0)) {
81
+ throw new Error(`maximum nesting depth must be a non-negative integer`);
82
+ }
83
+ this.upstreamReceiveDelta = (delta) => {
84
+ if (this.deltasStack === undefined) {
85
+ // pass on immediately:
86
+ this.downstreamReceiveDelta(delta);
87
+ }
88
+ else {
89
+ // store for later:
90
+ this.deltasStack[this.deltasStack.length - 1].push(delta); // (I2)
91
+ }
92
+ };
93
+ }
94
+ }
95
+ //# sourceMappingURL=compositor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositor.js","sourceRoot":"","sources":["../../src/deltas/compositor.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAA;AAGnE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAiBxB;;;;OAIG;IACH,YAA6B,sBAAqC,EAAmB,sBAA8B,QAAQ;QAA9F,2BAAsB,GAAtB,sBAAsB,CAAe;QAAmB,wBAAmB,GAAnB,mBAAmB,CAAmB;QAd3H;;;;;;WAMG;QACK,gBAAW,GAA2B,SAAS,CAAC;QAsBxD;;;;;;WAMG;QACH,kBAAa,GAAG,GAAS,EAAE;YACvB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAE,8BAA8B;YAC1D,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAA;YACzG,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAE,uBAAuB;QACvD,CAAC,CAAA;QAED;;;WAGG;QACH,mBAAc,GAAG,GAAS,EAAE;YACxB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACxF,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAG,CAAC,CAAE,8BAA8B;YACtE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAI,+BAA+B;gBACnE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAG,gBAAgB;YACpD,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,CAAC;QACL,CAAC,CAAA;QA/CG,IAAI,mBAAmB,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1G,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACjC,uBAAuB;gBACvB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,OAAO;YACvE,CAAC;QACL,CAAC,CAAC;IACN,CAAC;CAqCJ"}
@@ -1,7 +1,8 @@
1
1
  export * from "./appliers.js";
2
2
  export * from "./base.js";
3
- export * from "./handlers.js";
3
+ export * from "./compositor.js";
4
4
  export * from "./inverters.js";
5
+ export * from "./receivers.js";
5
6
  export * from "./types.g.js";
6
7
  export * from "./serialization/index.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deltas/index.ts"],"names":[],"mappings":"AAiBA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deltas/index.ts"],"names":[],"mappings":"AAiBA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
@@ -16,8 +16,9 @@
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
  export * from "./appliers.js";
18
18
  export * from "./base.js";
19
- export * from "./handlers.js";
19
+ export * from "./compositor.js";
20
20
  export * from "./inverters.js";
21
+ export * from "./receivers.js";
21
22
  export * from "./types.g.js";
22
23
  export * from "./serialization/index.js";
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deltas/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deltas/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inverters.d.ts","sourceRoot":"","sources":["../../src/deltas/inverters.ts"],"names":[],"mappings":"AAmDA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAmG3C,CAAA"}
1
+ {"version":3,"file":"inverters.d.ts","sourceRoot":"","sources":["../../src/deltas/inverters.ts"],"names":[],"mappings":"AAmDA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MA2H3C,CAAA"}
@@ -54,13 +54,22 @@ export const invertDelta = (delta) => {
54
54
  return new ChildMovedInSameContainmentDelta(delta.parent, delta.containment, delta.newIndex, delta.oldIndex, delta.movedChild);
55
55
  }
56
56
  if (delta instanceof ChildMovedAndReplacedFromOtherContainmentDelta) {
57
- // TODO implement
57
+ return new CompositeDelta([
58
+ new ChildMovedFromOtherContainmentDelta(delta.newParent, delta.newContainment, delta.newIndex, delta.oldParent, delta.oldContainment, delta.oldIndex, delta.movedChild),
59
+ new ChildAddedDelta(delta.newParent, delta.newContainment, delta.newIndex, delta.replacedChild)
60
+ ]);
58
61
  }
59
62
  if (delta instanceof ChildMovedAndReplacedFromOtherContainmentInSameParentDelta) {
60
- // TODO implement
63
+ return new CompositeDelta([
64
+ new ChildMovedFromOtherContainmentInSameParentDelta(delta.parent, delta.newContainment, delta.newIndex, delta.movedChild, delta.oldContainment, delta.oldIndex),
65
+ new ChildAddedDelta(delta.parent, delta.newContainment, delta.newIndex, delta.replacedChild)
66
+ ]);
61
67
  }
62
68
  if (delta instanceof ChildMovedAndReplacedInSameContainmentDelta) {
63
- // TODO implement
69
+ return new CompositeDelta([
70
+ new ChildMovedInSameContainmentDelta(delta.parent, delta.containment, delta.newIndex, delta.oldIndex, delta.movedChild),
71
+ new ChildAddedDelta(delta.parent, delta.containment, delta.newIndex, delta.replacedChild)
72
+ ]);
64
73
  }
65
74
  if (delta instanceof AnnotationAddedDelta) {
66
75
  return new AnnotationDeletedDelta(delta.parent, delta.index, delta.newAnnotation);
@@ -78,10 +87,16 @@ export const invertDelta = (delta) => {
78
87
  return new AnnotationMovedInSameParentDelta(delta.parent, delta.newIndex, delta.oldIndex, delta.movedAnnotation);
79
88
  }
80
89
  if (delta instanceof AnnotationMovedAndReplacedFromOtherParentDelta) {
81
- // TODO implement
90
+ return new CompositeDelta([
91
+ new AnnotationMovedFromOtherParentDelta(delta.newParent, delta.newIndex, delta.oldParent, delta.oldIndex, delta.movedAnnotation),
92
+ new AnnotationAddedDelta(delta.newParent, delta.newIndex, delta.replacedAnnotation)
93
+ ]);
82
94
  }
83
95
  if (delta instanceof AnnotationMovedAndReplacedInSameParentDelta) {
84
- // TODO implement
96
+ return new CompositeDelta([
97
+ new AnnotationMovedInSameParentDelta(delta.parent, delta.newIndex, delta.oldIndex, delta.movedAnnotation),
98
+ new AnnotationAddedDelta(delta.parent, delta.newIndex, delta.replacedAnnotation)
99
+ ]);
85
100
  }
86
101
  if (delta instanceof ReferenceAddedDelta) {
87
102
  return new ReferenceDeletedDelta(delta.parent, delta.reference, delta.index, delta.newTarget);
@@ -96,19 +111,28 @@ export const invertDelta = (delta) => {
96
111
  return new EntryMovedFromOtherReferenceDelta(delta.newParent, delta.newReference, delta.newIndex, delta.oldParent, delta.oldReference, delta.oldIndex, delta.movedTarget);
97
112
  }
98
113
  if (delta instanceof EntryMovedFromOtherReferenceInSameParentDelta) {
99
- // TODO implement
114
+ return new EntryMovedFromOtherReferenceInSameParentDelta(delta.parent, delta.newReference, delta.newIndex, delta.oldReference, delta.oldIndex, delta.movedTarget);
100
115
  }
101
116
  if (delta instanceof EntryMovedInSameReferenceDelta) {
102
117
  return new EntryMovedInSameReferenceDelta(delta.parent, delta.reference, delta.newIndex, delta.oldIndex, delta.movedTarget);
103
118
  }
104
119
  if (delta instanceof EntryMovedAndReplacedFromOtherReferenceDelta) {
105
- // TODO implement
120
+ return new CompositeDelta([
121
+ new EntryMovedFromOtherReferenceDelta(delta.newParent, delta.newReference, delta.newIndex, delta.oldParent, delta.oldReference, delta.oldIndex, delta.movedTarget),
122
+ new ReferenceAddedDelta(delta.newParent, delta.newReference, delta.newIndex, delta.replacedTarget)
123
+ ]);
106
124
  }
107
125
  if (delta instanceof EntryMovedAndReplacedFromOtherReferenceInSameParentDelta) {
108
- return new EntryMovedAndReplacedFromOtherReferenceInSameParentDelta(delta.parent, delta.newReference, delta.newIndex, delta.oldReference, delta.oldIndex, delta.replacedTarget, delta.movedTarget);
126
+ return new CompositeDelta([
127
+ new EntryMovedFromOtherReferenceInSameParentDelta(delta.parent, delta.newReference, delta.newIndex, delta.oldReference, delta.oldIndex, delta.movedTarget),
128
+ new ReferenceAddedDelta(delta.parent, delta.newReference, delta.newIndex, delta.replacedTarget)
129
+ ]);
109
130
  }
110
131
  if (delta instanceof EntryMovedAndReplacedInSameReferenceDelta) {
111
- // TODO implement
132
+ return new CompositeDelta([
133
+ new EntryMovedInSameReferenceDelta(delta.parent, delta.reference, delta.newIndex, delta.oldIndex, delta.movedTarget),
134
+ new ReferenceAddedDelta(delta.parent, delta.reference, delta.newIndex, delta.replacedTarget)
135
+ ]);
112
136
  }
113
137
  if (delta instanceof CompositeDelta) {
114
138
  return new CompositeDelta(delta.parts.map(invertDelta));
@@ -1 +1 @@
1
- {"version":3,"file":"inverters.js","sourceRoot":"","sources":["../../src/deltas/inverters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inverters.js","sourceRoot":"","sources":["../../src/deltas/inverters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { IDelta } from "./base.js";
2
+ /**
3
+ * A type for functions that receive deltas.
4
+ */
5
+ export type DeltaReceiver = (delta: IDelta) => void;
6
+ /**
7
+ * Legacy alias for {@link DeltaReceiver}.
8
+ */
9
+ export type DeltaHandler = (delta: IDelta) => void;
10
+ /**
11
+ * @return a tuple consisting of a {@link DeltaReceiver} implementation (as 1st member) that pushes any received delta unto the tuple's 2nd member: an array of {@link IDelta deltas}.
12
+ * @param printSerializations determines whether the deltas are serialized as JSON and printed to the JavaScript console.
13
+ */
14
+ export declare const collectingDeltaReceiver: (printSerializations?: boolean) => [DeltaReceiver, IDelta[]];
15
+ /**
16
+ * Legacy alias for {@link collectingDeltaReceiver}.
17
+ */
18
+ export declare const collectingDeltaHandler: (printSerializations?: boolean) => [DeltaReceiver, IDelta[]];
19
+ /**
20
+ * An interface for {@link DeltaReceiver delta receivers} that can be switched on and off — “latchingDeltaReceiverFrom”.
21
+ */
22
+ export interface LatchingDeltaReceiver extends DeltaReceiver {
23
+ latch(emitDeltas: boolean): void;
24
+ }
25
+ /**
26
+ * Legacy alias for {@link LatchingDeltaReceiver}.
27
+ */
28
+ export interface LatchingDeltaHandler extends LatchingDeltaReceiver {
29
+ }
30
+ /**
31
+ * @return a latching version of the given {@link DeltaReceiver delta receiver}.
32
+ */
33
+ export declare const latchingDeltaReceiverFrom: (receiveDelta: DeltaReceiver) => LatchingDeltaReceiver;
34
+ /**
35
+ * @return a {@link DeltaReceiver delta receiver} implementation that forwards received deltas to the given {@link DeltaReceiver delta receivers}.
36
+ * This is necessary e.g. for combining using the delta protocol with an undo mechanism.
37
+ */
38
+ export declare const deltaReceiverForwardingTo: (...deltaReceivers: DeltaReceiver[]) => DeltaReceiver;
39
+ //# sourceMappingURL=receivers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receivers.d.ts","sourceRoot":"","sources":["../../src/deltas/receivers.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,6BAA2B,KAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAS7F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,qCAdmC,CAAC,aAAa,EAAE,MAAM,EAAE,CAcjC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,KAAK,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;CAAG;AAEtE;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,cAAc,aAAa,KAAG,qBAcvE,CAAC;AAGF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,GAAG,gBAAgB,aAAa,EAAE,KAAG,aAG1E,CAAC"}
@@ -0,0 +1,60 @@
1
+ // Copyright 2025 TRUMPF Laser SE and other contributors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License")
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ //
15
+ // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
+ // SPDX-License-Identifier: Apache-2.0
17
+ import { asPrettyJsonString } from "@lionweb/ts-utils";
18
+ import { serializeDelta } from "./serialization/index.js";
19
+ /**
20
+ * @return a tuple consisting of a {@link DeltaReceiver} implementation (as 1st member) that pushes any received delta unto the tuple's 2nd member: an array of {@link IDelta deltas}.
21
+ * @param printSerializations determines whether the deltas are serialized as JSON and printed to the JavaScript console.
22
+ */
23
+ export const collectingDeltaReceiver = (printSerializations = false) => {
24
+ const deltas = [];
25
+ const receiveDelta = (delta) => {
26
+ deltas.push(delta);
27
+ if (printSerializations) {
28
+ console.log(asPrettyJsonString(serializeDelta(delta)));
29
+ }
30
+ };
31
+ return [receiveDelta, deltas];
32
+ };
33
+ /**
34
+ * Legacy alias for {@link collectingDeltaReceiver}.
35
+ */
36
+ export const collectingDeltaHandler = collectingDeltaReceiver;
37
+ ;
38
+ /**
39
+ * @return a latching version of the given {@link DeltaReceiver delta receiver}.
40
+ */
41
+ export const latchingDeltaReceiverFrom = (receiveDelta) => {
42
+ let emitDeltas = false;
43
+ return Object.assign((delta) => {
44
+ if (emitDeltas) {
45
+ receiveDelta(delta);
46
+ }
47
+ }, {
48
+ latch(emitDeltas_) {
49
+ emitDeltas = emitDeltas_;
50
+ },
51
+ });
52
+ };
53
+ /**
54
+ * @return a {@link DeltaReceiver delta receiver} implementation that forwards received deltas to the given {@link DeltaReceiver delta receivers}.
55
+ * This is necessary e.g. for combining using the delta protocol with an undo mechanism.
56
+ */
57
+ export const deltaReceiverForwardingTo = (...deltaReceivers) => (delta) => {
58
+ deltaReceivers.forEach((receiveDelta) => receiveDelta(delta));
59
+ };
60
+ //# sourceMappingURL=receivers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receivers.js","sourceRoot":"","sources":["../../src/deltas/receivers.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAYzD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,mBAAmB,GAAG,KAAK,EAA6B,EAAE;IAC9F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAkB,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,mBAAmB,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAYQ,CAAC;AAEvE;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,YAA2B,EAAyB,EAAE;IAC5F,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,OAAO,MAAM,CAAC,MAAM,CAChB,CAAC,KAAa,EAAE,EAAE;QACd,IAAI,UAAU,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,EACD;QACI,KAAK,CAAC,WAAoB;YACtB,UAAU,GAAG,WAAW,CAAC;QAC7B,CAAC;KACJ,CACJ,CAAC;AACN,CAAC,CAAC;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,cAA+B,EAAiB,EAAE,CAC3F,CAAC,KAAK,EAAE,EAAE;IACN,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { PropertyValueDeserializer, SimplisticHandler } from "@lionweb/core";
2
2
  import { LionWebJsonChunk } from "@lionweb/json";
3
- import { DeltaHandler, IdMapping, ILanguageBase, INodeBase } from "./index.js";
3
+ import { DeltaReceiver, IdMapping, ILanguageBase, INodeBase } from "./index.js";
4
4
  /**
5
5
  * A type for deserializer functions that are parametrized in their return type.
6
6
  */
@@ -16,13 +16,13 @@ export type RootsWithIdMapping = {
16
16
  /**
17
17
  * @return a {@link Deserializer} function for the given languages (given as {@link ILanguageBase}s) that returns a {@link RootsWithIdMapping}.
18
18
  * @param languageBases the {@link ILanguageBase}s for (at least) all the languages used in the {@link LionWebJsonChunk} to deserialize, minus LionCore M3 and built-ins.
19
- * @param handleDelta an optional {@link DeltaHandler} that will be injected in all {@link INodeBase nodes} created.
19
+ * @param receiveDelta an optional {@link DeltaReceiver} that will be injected in all {@link INodeBase nodes} created.
20
20
  */
21
- export declare const nodeBaseDeserializerWithIdMapping: (languageBases: ILanguageBase[], handleDelta?: DeltaHandler) => Deserializer<RootsWithIdMapping>;
21
+ export declare const nodeBaseDeserializerWithIdMapping: (languageBases: ILanguageBase[], receiveDelta?: DeltaReceiver) => Deserializer<RootsWithIdMapping>;
22
22
  /**
23
23
  * @return a {@link Deserializer} function for the languages (given as {@link ILanguageBase}s) that returns the roots (of type {@link INodeBase}) of the deserialized model.
24
24
  * @param languageBases the {@link ILanguageBase}s for (at least) all the languages used in the {@link LionWebJsonChunk} to deserialize, minus LionCore M3 and built-ins.
25
- * @param handleDelta an optional {@link DeltaHandler} that will be injected in all {@link INodeBase nodes} created.
25
+ * @param receiveDelta an optional {@link DeltaReceiver} that will be injected in all {@link INodeBase nodes} created.
26
26
  */
27
- export declare const nodeBaseDeserializer: (languageBases: ILanguageBase[], handleDelta?: DeltaHandler) => Deserializer<INodeBase[]>;
27
+ export declare const nodeBaseDeserializer: (languageBases: ILanguageBase[], receiveDelta?: DeltaReceiver) => Deserializer<INodeBase[]>;
28
28
  //# sourceMappingURL=deserializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAUH,yBAAyB,EAEzB,iBAAiB,EAEpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAa,gBAAgB,EAAmB,MAAM,eAAe,CAAA;AAG5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAI9E;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC1B,kBAAkB,EAAE,gBAAgB,EACpC,cAAc,CAAC,EAAE,SAAS,EAAE,EAC5B,yBAAyB,CAAC,EAAE,yBAAyB,EACrD,cAAc,CAAC,EAAE,iBAAiB,KACjC,CAAC,CAAC;AAkBP;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAG9E;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAAI,eAAe,aAAa,EAAE,EAAE,cAAc,YAAY,KAAG,YAAY,CAAC,kBAAkB,CA0I7I,CAAC;AAGF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,aAAa,EAAE,EAAE,cAAc,YAAY,KAAG,YAAY,CAAC,SAAS,EAAE,CASzH,CAAA"}
1
+ {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EASH,yBAAyB,EAEzB,iBAAiB,EAEpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAa,gBAAgB,EAAmB,MAAM,eAAe,CAAA;AAG5E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK/E;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC1B,kBAAkB,EAAE,gBAAgB,EACpC,cAAc,CAAC,EAAE,SAAS,EAAE,EAC5B,yBAAyB,CAAC,EAAE,yBAAyB,EACrD,cAAc,CAAC,EAAE,iBAAiB,KACjC,CAAC,CAAC;AAGP;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAG9E;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,KAAG,YAAY,CAAC,kBAAkB,CAyI/I,CAAC;AAGF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,KAAG,YAAY,CAAC,SAAS,EAAE,CAS3H,CAAA"}
@@ -17,26 +17,15 @@
17
17
  import { BuiltinPropertyValueDeserializer, Classifier, Containment, defaultSimplisticHandler, Enumeration, MemoisingSymbolTable, PrimitiveType, Property, Reference, unresolved } from "@lionweb/core";
18
18
  import { byIdMap, keepDefineds } from "@lionweb/ts-utils";
19
19
  import { IdMapping } from "./index.js";
20
- const languageBaseLookupFor = (languageBases) => (language) => {
21
- const languageBase = languageBases.find((languageBase) => languageBase.language === language);
22
- if (languageBase === undefined) {
23
- throw new Error(`language ${language.name} (with key=${language.key} and version=${language.version}) not known`);
24
- }
25
- return languageBase;
26
- };
27
- const factoryLookupFor = (languageBases, handleDelta) => {
28
- const lookup = languageBaseLookupFor(languageBases);
29
- return (language) => lookup(language).factory(handleDelta);
30
- };
20
+ import { combinedLanguageBaseLookupFor } from "./factory.js";
31
21
  /**
32
22
  * @return a {@link Deserializer} function for the given languages (given as {@link ILanguageBase}s) that returns a {@link RootsWithIdMapping}.
33
23
  * @param languageBases the {@link ILanguageBase}s for (at least) all the languages used in the {@link LionWebJsonChunk} to deserialize, minus LionCore M3 and built-ins.
34
- * @param handleDelta an optional {@link DeltaHandler} that will be injected in all {@link INodeBase nodes} created.
24
+ * @param receiveDelta an optional {@link DeltaReceiver} that will be injected in all {@link INodeBase nodes} created.
35
25
  */
36
- export const nodeBaseDeserializerWithIdMapping = (languageBases, handleDelta) => {
26
+ export const nodeBaseDeserializerWithIdMapping = (languageBases, receiveDelta) => {
37
27
  const symbolTable = new MemoisingSymbolTable(languageBases.map(({ language }) => language));
38
- const languageBaseFor = languageBaseLookupFor(languageBases);
39
- const factoryFor = factoryLookupFor(languageBases, handleDelta);
28
+ const languageBaseFor = combinedLanguageBaseLookupFor(languageBases);
40
29
  return (serializationChunk, dependentNodes = [], propertyValueDeserializer = new BuiltinPropertyValueDeserializer(), problemsHandler = defaultSimplisticHandler) => {
41
30
  const nodesToInstall = [];
42
31
  const createNode = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }) => {
@@ -46,7 +35,7 @@ export const nodeBaseDeserializerWithIdMapping = (languageBases, handleDelta) =>
46
35
  problemsHandler.reportProblem(`can't deserialize node with id=${id}: can't find the classifier with key ${classifierMetaPointer.key} in ${languageMessage} - skipping`);
47
36
  return undefined;
48
37
  }
49
- const node = factoryFor(classifier.language)(classifier, id);
38
+ const node = languageBaseFor(classifier.language).factory(receiveDelta)(classifier, id);
50
39
  properties.forEach(({ property: propertyMetaPointer, value }) => {
51
40
  const feature = symbolTable.featureMatching(classifierMetaPointer, propertyMetaPointer);
52
41
  if (feature === undefined) {
@@ -160,10 +149,10 @@ export const nodeBaseDeserializerWithIdMapping = (languageBases, handleDelta) =>
160
149
  /**
161
150
  * @return a {@link Deserializer} function for the languages (given as {@link ILanguageBase}s) that returns the roots (of type {@link INodeBase}) of the deserialized model.
162
151
  * @param languageBases the {@link ILanguageBase}s for (at least) all the languages used in the {@link LionWebJsonChunk} to deserialize, minus LionCore M3 and built-ins.
163
- * @param handleDelta an optional {@link DeltaHandler} that will be injected in all {@link INodeBase nodes} created.
152
+ * @param receiveDelta an optional {@link DeltaReceiver} that will be injected in all {@link INodeBase nodes} created.
164
153
  */
165
- export const nodeBaseDeserializer = (languageBases, handleDelta) => {
166
- const deserializerWithIdMapping = nodeBaseDeserializerWithIdMapping(languageBases, handleDelta);
154
+ export const nodeBaseDeserializer = (languageBases, receiveDelta) => {
155
+ const deserializerWithIdMapping = nodeBaseDeserializerWithIdMapping(languageBases, receiveDelta);
167
156
  return (serializationChunk, dependentNodes = [], propertyValueDeserializer = new BuiltinPropertyValueDeserializer(), problemsHandler = defaultSimplisticHandler) => deserializerWithIdMapping(serializationChunk, dependentNodes, propertyValueDeserializer, problemsHandler).roots;
168
157
  };
169
158
  //# sourceMappingURL=deserializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
package/dist/factory.d.ts CHANGED
@@ -1,7 +1,15 @@
1
+ import { Language } from "@lionweb/core";
1
2
  import { ILanguageBase, NodeBaseFactory } from "./base-types.js";
2
- import { DeltaHandler } from "./deltas/index.js";
3
+ import { DeltaReceiver } from "./deltas/index.js";
4
+ /**
5
+ * @return a function that looks up the {@link ILanguageBase language base} for the {@link Language language} passed to it,
6
+ * from among the given language bases.
7
+ * The returned function throws when the language wasn't among the languages the given bases were for.
8
+ * The lookup is hashmap-backed, so efficient.
9
+ */
10
+ export declare const combinedLanguageBaseLookupFor: (languageBases: ILanguageBase[]) => ((language: Language) => ILanguageBase);
3
11
  /**
4
12
  * @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
5
13
  */
6
- export declare const combinedFactoryFor: (languageBases: ILanguageBase[], handleDelta?: DeltaHandler) => NodeBaseFactory;
14
+ export declare const combinedFactoryFor: (languageBases: ILanguageBase[], receiveDelta?: DeltaReceiver) => NodeBaseFactory;
7
15
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,aAAa,EAAE,EAAE,cAAc,YAAY,KAAG,eAuB/F,CAAA"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,eAAe,aAAa,EAAE,KAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,aAAa,CAsBpH,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,KAAG,eAIjG,CAAA"}
package/dist/factory.js CHANGED
@@ -16,29 +16,38 @@
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
  import { lazyMapGet } from "@lionweb/ts-utils";
18
18
  /**
19
- * @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
19
+ * @return a function that looks up the {@link ILanguageBase language base} for the {@link Language language} passed to it,
20
+ * from among the given language bases.
21
+ * The returned function throws when the language wasn't among the languages the given bases were for.
22
+ * The lookup is hashmap-backed, so efficient.
20
23
  */
21
- export const combinedFactoryFor = (languageBases, handleDelta) => {
24
+ export const combinedLanguageBaseLookupFor = (languageBases) => {
22
25
  // create lookup map:
23
- const languageKey2version2factory = {};
26
+ const languageKey2version2base = {};
24
27
  languageBases.forEach((languageBase) => {
25
28
  const { key, version } = languageBase.language;
26
- const version2factory = lazyMapGet(languageKey2version2factory, key, () => ({}));
27
- lazyMapGet(version2factory, version, () => languageBase.factory(handleDelta));
28
- // (Note: don't destructure factory from languageBase, as that will unbind it as "this"!)
29
+ const version2base = lazyMapGet(languageKey2version2base, key, () => ({}));
30
+ lazyMapGet(version2base, version, () => languageBase);
29
31
  });
30
- return (classifier, id) => {
31
- const { key, version, name } = classifier.language;
32
- const version2factory = languageKey2version2factory[key];
33
- if (version2factory === undefined) {
34
- throw new Error(`language ${name} with key=${key} not known`);
32
+ return (language) => {
33
+ const { key, version, name } = language;
34
+ const version2base = languageKey2version2base[key];
35
+ if (version2base === undefined) {
36
+ throw new Error(`language ${name} with key=${key} not registered`);
35
37
  }
36
- const factory = version2factory[version];
37
- if (factory === undefined) {
38
- const candidateVersions = Object.keys(version2factory);
39
- throw new Error(`language ${name} with key=${key} and version=${version} not known${candidateVersions.length > 0 ? `- candidate version${candidateVersions.length > 1 ? `s` : ``}: ${candidateVersions.join(", ")}` : ``}`);
38
+ const base = version2base[version];
39
+ if (base === undefined) {
40
+ const candidateVersions = Object.keys(version2base);
41
+ throw new Error(`language ${name} with key=${key} and version=${version} not registered${candidateVersions.length > 0 ? `- candidate version${candidateVersions.length > 1 ? `s` : ``}: ${candidateVersions.join(", ")}` : ``}`);
40
42
  }
41
- return factory(classifier, id);
43
+ return base;
42
44
  };
43
45
  };
46
+ /**
47
+ * @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
48
+ */
49
+ export const combinedFactoryFor = (languageBases, receiveDelta) => {
50
+ const baseOf = combinedLanguageBaseLookupFor(languageBases);
51
+ return (classifier, id) => baseOf(classifier.language).factory(receiveDelta)(classifier, id);
52
+ };
44
53
  //# sourceMappingURL=factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA8B,EAAE,WAA0B,EAAmB,EAAE;IAC9G,qBAAqB;IACrB,MAAM,2BAA2B,GAA8D,EAAE,CAAA;IACjG,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACnC,MAAM,EAAC,GAAG,EAAE,OAAO,EAAC,GAAG,YAAY,CAAC,QAAQ,CAAA;QAC5C,MAAM,eAAe,GAAG,UAAU,CAAC,2BAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;QACzE,yFAAyF;IACjG,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE;QACtB,MAAM,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,UAAU,CAAC,QAAQ,CAAA;QAChD,MAAM,eAAe,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;QACxD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,YAAY,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACtD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,gBAAgB,OAAO,aAAa,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/N,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAK9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,aAA8B,EAA2C,EAAE;IACrH,qBAAqB;IACrB,MAAM,wBAAwB,GAA4D,EAAE,CAAA;IAC5F,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACnC,MAAM,EAAC,GAAG,EAAE,OAAO,EAAC,GAAG,YAAY,CAAC,QAAQ,CAAA;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,wBAAwB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1E,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,QAAQ,CAAA;QACrC,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,iBAAiB,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACnD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,gBAAgB,OAAO,kBAAkB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACpO,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;AACL,CAAC,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA8B,EAAE,YAA4B,EAAmB,EAAE;IAChH,MAAM,MAAM,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAA;IAC3D,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CACtB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AACzE,CAAC,CAAA"}
@@ -10,15 +10,33 @@ type NodesById = {
10
10
  * Instances are produced by the {@link nodeBaseDeserializerWithIdMapping} function.
11
11
  */
12
12
  export declare class IdMapping {
13
- nodesById: NodesById;
13
+ private nodesById;
14
14
  constructor(nodesById: NodesById);
15
- fromId(id: LionWebId): INodeBase;
15
+ /**
16
+ * @return the {@link INodeBase node} with the given {@link LionWebId `id`}, or
17
+ * @throws an Error if no node with the given ID was registered.
18
+ */
19
+ fromId: (id: LionWebId) => INodeBase;
20
+ /**
21
+ * @return the {@link INodeBase node} with the given {@link LionWebId `id`},
22
+ * or `undefined` if no node with the given ID was registered.
23
+ */
16
24
  tryFromId: (id: LionWebId) => (INodeBase | undefined);
25
+ /**
26
+ * @return the {@link INodeBase node} referenced from the given {@link LionWebId ID},
27
+ * or `unresolved` if `unresolved` was passed in or no node with the given ID was registered.
28
+ */
17
29
  fromRefId: (idOrUnresolved: IdOrUnresolved) => SingleRef<INodeBase>;
18
30
  /**
19
31
  * Updates this {@link IdMapping} with the given `node` *and all its descendants* (recursively).
20
32
  */
21
- updateWith(node: INodeBase): void;
33
+ updateWith: (node: INodeBase) => void;
34
+ /**
35
+ * Re-initializes this {@link IdMapping ID mapping} with the given nodes-by-ID.
36
+ * This completely removes all registrations of nodes,
37
+ * and should only be used by components which are in complete control of the nodes being passed to this method.
38
+ */
39
+ reinitializeWith: (nodesById: NodesById) => void;
22
40
  }
23
41
  export {};
24
42
  //# sourceMappingURL=id-mapping.d.ts.map