@lionweb/class-core 0.7.1 → 0.7.2-beta.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/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Changelog
2
2
 
3
- ## 0.7.0
3
+ ## 0.7.2
4
+
5
+ * Implement a `propertyValueSerializerWith` function that produces a `PropertyValueSerializer` instance to serialize properties’ values with, properly dealing with enumerations as well.
6
+
7
+
8
+ ## 0.7.1
9
+
10
+ (The 0.7.0 release was deprecated because its `validation` package was faulty.)
4
11
 
5
12
  * Replace util functions with ones from `ts-utils`.
6
13
  * For the `IdMapping` class:
@@ -1,10 +1,13 @@
1
- import { IdOrUnresolved, Property, SingleRef } from "@lionweb/core";
1
+ import { IdOrUnresolved, SingleRef } from "@lionweb/core";
2
2
  import { INodeBase } from "../../base-types.js";
3
3
  /**
4
4
  * A function that serializes the given value of the given {@link Property property},
5
- * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function.
5
+ * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function,
6
+ * and the same treatment of enumeration values.
6
7
  */
7
- export declare const serializePropertyValue: <T>(value: T, property: Property) => string;
8
+ export declare const defaultPropertyValueSerializer: {
9
+ serializeValue: (value: unknown, property: import("@lionweb/core").Property) => string | null;
10
+ };
8
11
  /**
9
12
  * @return the ID of a given reference to a {@link INodeBase}, or {@link unresolved} if that reference was previously unresolved.
10
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"serializer-helpers.d.ts","sourceRoot":"","sources":["../../../src/deltas/serialization/serializer-helpers.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAkC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,eAAe,CAAA;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,QAAQ,KAAG,MACN,CAAA;AAGnE;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,CAAC,SAAS,CAAC,KAAG,cACb,CAAA"}
1
+ {"version":3,"file":"serializer-helpers.d.ts","sourceRoot":"","sources":["../../../src/deltas/serialization/serializer-helpers.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAkC,cAAc,EAAE,SAAS,EAAc,MAAM,eAAe,CAAA;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/C;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;CAA4F,CAAA;AAGvI;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,CAAC,SAAS,CAAC,KAAG,cACb,CAAA"}
@@ -15,11 +15,13 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
  import { builtinPropertyValueSerializer, unresolved } from "@lionweb/core";
18
+ import { propertyValueSerializerWith } from "../../serializer.js";
18
19
  /**
19
20
  * A function that serializes the given value of the given {@link Property property},
20
- * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function.
21
+ * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function,
22
+ * and the same treatment of enumeration values.
21
23
  */
22
- export const serializePropertyValue = (value, property) => builtinPropertyValueSerializer.serializeValue(value, property);
24
+ export const defaultPropertyValueSerializer = propertyValueSerializerWith({ primitiveValueSerializer: builtinPropertyValueSerializer });
23
25
  /**
24
26
  * @return the ID of a given reference to a {@link INodeBase}, or {@link unresolved} if that reference was previously unresolved.
25
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"serializer-helpers.js","sourceRoot":"","sources":["../../../src/deltas/serialization/serializer-helpers.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,8BAA8B,EAAuC,UAAU,EAAE,MAAM,eAAe,CAAA;AAG/G;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAI,KAAQ,EAAE,QAAkB,EAAU,EAAE,CAC9E,8BAA8B,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAE,CAAA;AAGnE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAyB,EAAkB,EAAE,CAChE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA"}
1
+ {"version":3,"file":"serializer-helpers.js","sourceRoot":"","sources":["../../../src/deltas/serialization/serializer-helpers.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,8BAA8B,EAA6B,UAAU,EAAE,MAAM,eAAe,CAAA;AAErG,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,2BAA2B,CAAC,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,CAAC,CAAA;AAGvI;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAyB,EAAkB,EAAE,CAChE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA"}
@@ -18,7 +18,7 @@
18
18
  // Modifying it by hand is useless at best, and sabotage at worst.
19
19
  import { metaPointerFor } from "@lionweb/core";
20
20
  import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedAndReplacedFromOtherParentDelta, AnnotationMovedAndReplacedInSameParentDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta, ChildAddedDelta, ChildDeletedDelta, ChildMovedAndReplacedFromOtherContainmentDelta, ChildMovedAndReplacedFromOtherContainmentInSameParentDelta, ChildMovedAndReplacedInSameContainmentDelta, ChildMovedFromOtherContainmentDelta, ChildMovedFromOtherContainmentInSameParentDelta, ChildMovedInSameContainmentDelta, ChildReplacedDelta, CompositeDelta, EntryMovedAndReplacedFromOtherReferenceDelta, EntryMovedAndReplacedFromOtherReferenceInSameParentDelta, EntryMovedAndReplacedInSameReferenceDelta, EntryMovedFromOtherReferenceDelta, EntryMovedFromOtherReferenceInSameParentDelta, EntryMovedInSameReferenceDelta, NoOpDelta, PartitionAddedDelta, PartitionDeletedDelta, PropertyAddedDelta, PropertyChangedDelta, PropertyDeletedDelta, ReferenceAddedDelta, ReferenceChangedDelta, ReferenceDeletedDelta } from "../types.g.js";
21
- import { idFrom, serializePropertyValue } from "./serializer-helpers.js";
21
+ import { idFrom, defaultPropertyValueSerializer } from "./serializer-helpers.js";
22
22
  import { serializeNodeBases } from "../../serializer.js";
23
23
  export const serializeDelta = (delta) => {
24
24
  if (delta instanceof PartitionAddedDelta) {
@@ -39,7 +39,7 @@ export const serializeDelta = (delta) => {
39
39
  kind: "PropertyAdded",
40
40
  node: delta.node.id,
41
41
  property: metaPointerFor(delta.property),
42
- value: serializePropertyValue(delta.value, delta.property)
42
+ value: defaultPropertyValueSerializer.serializeValue(delta.value, delta.property)
43
43
  };
44
44
  }
45
45
  if (delta instanceof PropertyDeletedDelta) {
@@ -47,7 +47,7 @@ export const serializeDelta = (delta) => {
47
47
  kind: "PropertyDeleted",
48
48
  node: delta.node.id,
49
49
  property: metaPointerFor(delta.property),
50
- oldValue: serializePropertyValue(delta.oldValue, delta.property)
50
+ oldValue: defaultPropertyValueSerializer.serializeValue(delta.oldValue, delta.property)
51
51
  };
52
52
  }
53
53
  if (delta instanceof PropertyChangedDelta) {
@@ -55,8 +55,8 @@ export const serializeDelta = (delta) => {
55
55
  kind: "PropertyChanged",
56
56
  node: delta.node.id,
57
57
  property: metaPointerFor(delta.property),
58
- oldValue: serializePropertyValue(delta.oldValue, delta.property),
59
- newValue: serializePropertyValue(delta.newValue, delta.property)
58
+ oldValue: defaultPropertyValueSerializer.serializeValue(delta.oldValue, delta.property),
59
+ newValue: defaultPropertyValueSerializer.serializeValue(delta.newValue, delta.property)
60
60
  };
61
61
  }
62
62
  if (delta instanceof ChildAddedDelta) {
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.g.js","sourceRoot":"","sources":["../../../src/deltas/serialization/serializer.g.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.g.js","sourceRoot":"","sources":["../../../src/deltas/serialization/serializer.g.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { deepDuplicateWith } from "./duplicator.js";
6
6
  export * from "./id-mapping.js";
7
7
  export { combinedFactoryFor } from "./factory.js";
8
8
  export * from "./LionCore_builtins.g.js";
9
- export { serializeNodeBases } from "./serializer.js";
9
+ export { propertyValueSerializerWith, serializeNodeBases } from "./serializer.js";
10
10
  export { asTreeTextWith } from "./textualizer.js";
11
11
  export * from "./value-managers/index.js";
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ export * from "./id-mapping.js";
23
23
  export { combinedFactoryFor } from "./factory.js";
24
24
  // skip linking.js: see comment there
25
25
  export * from "./LionCore_builtins.g.js";
26
- export { serializeNodeBases } from "./serializer.js";
26
+ export { propertyValueSerializerWith, serializeNodeBases } from "./serializer.js";
27
27
  export { asTreeTextWith } from "./textualizer.js";
28
28
  export * from "./value-managers/index.js";
29
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/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,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/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,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Feature, Reader } from "@lionweb/core";
1
+ import { Feature, Property, PropertyValueSerializer, Reader } from "@lionweb/core";
2
2
  import { INodeBase } from "./index.js";
3
3
  /**
4
4
  * @return the value of the given {@link Feature feature} (2nd argument) on the given node (of type {@link INodeBase}; 1st argument).
@@ -14,4 +14,20 @@ export declare const nodeBaseReader: Reader<INodeBase>;
14
14
  * @return a serialization of the given nodes (of type {@link INodeBase}) as a {@link LionWebJsonChunk}.
15
15
  */
16
16
  export declare const serializeNodeBases: (nodes: INodeBase[]) => import("@lionweb/json").LionWebJsonChunk;
17
+ /**
18
+ * Type def. to capture the configuration to pass to {@link propertyValueSerializerWith}.
19
+ */
20
+ type PropertyValueSerializerConfiguration = Partial<{
21
+ primitiveValueSerializer: PropertyValueSerializer;
22
+ reportIssue: (message: string) => void | never;
23
+ }>;
24
+ /**
25
+ * @return a {@link PropertyValueSerializer} that uses the given {@link PropertyValueSerializer `primitiveValueSerializer`} *solely* for serializing values of primitively-typed properties,
26
+ * and serializes {@link unresolved} and enumeration-typed properties the same way as {@link serializeNodeBases}.
27
+ * Unrecoverable issues are passed to the optional `reportIssue` argument, and
28
+ */
29
+ export declare const propertyValueSerializerWith: (configuration?: PropertyValueSerializerConfiguration) => {
30
+ serializeValue: (value: unknown, property: Property) => string | null;
31
+ };
32
+ export {};
17
33
  //# sourceMappingURL=serializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAKH,OAAO,EAGP,MAAM,EAET,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAyB,MAAM,YAAY,CAAA;AAG7D;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,EAAE,SAAS,OAAO,YAWhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,CAyB5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kEAAoE,CAAC"}
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAOH,OAAO,EAGP,QAAQ,EACR,uBAAuB,EACvB,MAAM,EAGT,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAyB,MAAM,YAAY,CAAA;AAG7D;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,EAAE,SAAS,OAAO,YAWhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,CAyB5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kEAAoE,CAAC;AAGpG;;GAEG;AACH,KAAK,oCAAoC,GAAG,OAAO,CAAC;IAChD,wBAAwB,EAAE,uBAAuB,CAAA;IACjD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,KAAK,CAAA;CACjD,CAAC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,gBAAgB,oCAAoC;4BAIhE,OAAO,YAAY,QAAQ;CAqB1D,CAAA"}
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { allSuperTypesOf, builtinClassifiers, builtinFeatures, Containment, nodeSerializer, Property, Reference } from "@lionweb/core";
17
+ import { allSuperTypesOf, builtinClassifiers, builtinFeatures, builtinPropertyValueSerializer, Containment, Enumeration, nodeSerializer, PrimitiveType, Property, Reference, unresolved } from "@lionweb/core";
18
18
  import { LionCore_builtinsBase } from "./index.js";
19
19
  /**
20
20
  * @return the value of the given {@link Feature feature} (2nd argument) on the given node (of type {@link INodeBase}; 1st argument).
@@ -67,4 +67,35 @@ export const nodeBaseReader = {
67
67
  * @return a serialization of the given nodes (of type {@link INodeBase}) as a {@link LionWebJsonChunk}.
68
68
  */
69
69
  export const serializeNodeBases = nodeSerializer(nodeBaseReader, { serializeEmptyFeatures: false });
70
+ /**
71
+ * @return a {@link PropertyValueSerializer} that uses the given {@link PropertyValueSerializer `primitiveValueSerializer`} *solely* for serializing values of primitively-typed properties,
72
+ * and serializes {@link unresolved} and enumeration-typed properties the same way as {@link serializeNodeBases}.
73
+ * Unrecoverable issues are passed to the optional `reportIssue` argument, and
74
+ */
75
+ export const propertyValueSerializerWith = (configuration) => {
76
+ const primitiveValueSerializer = configuration?.primitiveValueSerializer ?? builtinPropertyValueSerializer;
77
+ const reportIssue = configuration?.reportIssue ?? ((message) => { throw new Error(message); });
78
+ return {
79
+ serializeValue: (value, property) => {
80
+ const { type } = property;
81
+ if (type === unresolved) {
82
+ reportIssue(`can't serialize value of property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") having unresolved type: ${value}`);
83
+ return null;
84
+ }
85
+ if (type instanceof PrimitiveType) {
86
+ return primitiveValueSerializer.serializeValue(value, property);
87
+ }
88
+ if (type instanceof Enumeration) {
89
+ const literal = type.literals.find((literal) => literal.key === value);
90
+ if (literal === undefined) {
91
+ reportIssue(`value "${value}" is not the key of any of the literals of the enumeration "${type.name}" in language "${type.language.name}"`);
92
+ return null;
93
+ }
94
+ return literal.key;
95
+ }
96
+ reportIssue(`can't serialize value of property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") of type "${type.name}": ${value}`);
97
+ return null;
98
+ }
99
+ };
100
+ };
70
101
  //# sourceMappingURL=serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.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,EACH,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EAEX,cAAc,EACd,QAAQ,EAER,SAAS,EACZ,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAa,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAG7D;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAe,EAAE,OAAgB,EAAE,EAAE;IACjE,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7E,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC7C,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU;IACvC,eAAe;IACf,sBAAsB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE;QAC9C,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAE,CAAC;IAC7E,CAAC;IACD,cAAc,EAAE,CAAC,IAAe,EAAE,EAAE;QAChC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,8FAA8F;YAC9F,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,WAAW,EAA0B,CAAC;QAC3G,CAAC;QACD,IAAI,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAA0B,CAAC;QAC1H,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/class-core",
3
- "version": "0.7.1",
3
+ "version": "0.7.2-beta.0",
4
4
  "description": "Generic, language-aspecific base types for generated TypeScript APIs",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,9 +27,9 @@
27
27
  "release": "npm publish"
28
28
  },
29
29
  "dependencies": {
30
- "@lionweb/core": "0.7.1",
31
- "@lionweb/json": "0.7.1",
32
- "@lionweb/ts-utils": "0.7.1",
30
+ "@lionweb/core": "0.7.2-beta.0",
31
+ "@lionweb/json": "0.7.2-beta.0",
32
+ "@lionweb/ts-utils": "0.7.2-beta.0",
33
33
  "littoral-templates": "0.5.1",
34
34
  "mobx": "6.13.7"
35
35
  }
@@ -15,15 +15,16 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import { builtinPropertyValueSerializer, IdOrUnresolved, Property, SingleRef, unresolved } from "@lionweb/core"
18
+ import { builtinPropertyValueSerializer, IdOrUnresolved, SingleRef, unresolved } from "@lionweb/core"
19
19
  import { INodeBase } from "../../base-types.js"
20
+ import { propertyValueSerializerWith } from "../../serializer.js"
20
21
 
21
22
  /**
22
23
  * A function that serializes the given value of the given {@link Property property},
23
- * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function.
24
+ * using the same {@link builtinPropertyValueSerializer} instance as the {@link serializeNodeBases} function,
25
+ * and the same treatment of enumeration values.
24
26
  */
25
- export const serializePropertyValue = <T>(value: T, property: Property): string =>
26
- builtinPropertyValueSerializer.serializeValue(value, property)!
27
+ export const defaultPropertyValueSerializer = propertyValueSerializerWith({ primitiveValueSerializer: builtinPropertyValueSerializer })
27
28
 
28
29
 
29
30
  /**
@@ -89,7 +89,7 @@ import {
89
89
  ReferenceDeletedSerializedDelta,
90
90
  SerializedDelta
91
91
  } from "./types.g.js";
92
- import { idFrom, serializePropertyValue } from "./serializer-helpers.js";
92
+ import { idFrom, defaultPropertyValueSerializer } from "./serializer-helpers.js";
93
93
  import { serializeNodeBases } from "../../serializer.js";
94
94
 
95
95
 
@@ -114,7 +114,7 @@ export const serializeDelta = (delta: IDelta): SerializedDelta => {
114
114
  kind: "PropertyAdded",
115
115
  node: delta.node.id,
116
116
  property: metaPointerFor(delta.property),
117
- value: serializePropertyValue(delta.value, delta.property)
117
+ value: defaultPropertyValueSerializer.serializeValue(delta.value, delta.property)
118
118
  } as PropertyAddedSerializedDelta;
119
119
  }
120
120
 
@@ -123,7 +123,7 @@ export const serializeDelta = (delta: IDelta): SerializedDelta => {
123
123
  kind: "PropertyDeleted",
124
124
  node: delta.node.id,
125
125
  property: metaPointerFor(delta.property),
126
- oldValue: serializePropertyValue(delta.oldValue, delta.property)
126
+ oldValue: defaultPropertyValueSerializer.serializeValue(delta.oldValue, delta.property)
127
127
  } as PropertyDeletedSerializedDelta;
128
128
  }
129
129
 
@@ -132,8 +132,8 @@ export const serializeDelta = (delta: IDelta): SerializedDelta => {
132
132
  kind: "PropertyChanged",
133
133
  node: delta.node.id,
134
134
  property: metaPointerFor(delta.property),
135
- oldValue: serializePropertyValue(delta.oldValue, delta.property),
136
- newValue: serializePropertyValue(delta.newValue, delta.property)
135
+ oldValue: defaultPropertyValueSerializer.serializeValue(delta.oldValue, delta.property),
136
+ newValue: defaultPropertyValueSerializer.serializeValue(delta.newValue, delta.property)
137
137
  } as PropertyChangedSerializedDelta;
138
138
  }
139
139
 
package/src/index.ts CHANGED
@@ -24,7 +24,7 @@ export * from "./id-mapping.js";
24
24
  export { combinedFactoryFor } from "./factory.js";
25
25
  // skip linking.js: see comment there
26
26
  export * from "./LionCore_builtins.g.js";
27
- export {serializeNodeBases} from "./serializer.js";
27
+ export { propertyValueSerializerWith, serializeNodeBases } from "./serializer.js";
28
28
  export { asTreeTextWith } from "./textualizer.js";
29
29
  export * from "./value-managers/index.js";
30
30
 
package/src/serializer.ts CHANGED
@@ -19,12 +19,17 @@ import {
19
19
  allSuperTypesOf,
20
20
  builtinClassifiers,
21
21
  builtinFeatures,
22
+ builtinPropertyValueSerializer,
22
23
  Containment,
24
+ Enumeration,
23
25
  Feature,
24
26
  nodeSerializer,
27
+ PrimitiveType,
25
28
  Property,
29
+ PropertyValueSerializer,
26
30
  Reader,
27
- Reference
31
+ Reference,
32
+ unresolved
28
33
  } from "@lionweb/core"
29
34
 
30
35
  import { INodeBase, LionCore_builtinsBase } from "./index.js"
@@ -83,3 +88,44 @@ export const nodeBaseReader: Reader<INodeBase> = {
83
88
  */
84
89
  export const serializeNodeBases = nodeSerializer(nodeBaseReader, { serializeEmptyFeatures: false });
85
90
 
91
+
92
+ /**
93
+ * Type def. to capture the configuration to pass to {@link propertyValueSerializerWith}.
94
+ */
95
+ type PropertyValueSerializerConfiguration = Partial<{
96
+ primitiveValueSerializer: PropertyValueSerializer
97
+ reportIssue: (message: string) => void | never
98
+ }>
99
+
100
+ /**
101
+ * @return a {@link PropertyValueSerializer} that uses the given {@link PropertyValueSerializer `primitiveValueSerializer`} *solely* for serializing values of primitively-typed properties,
102
+ * and serializes {@link unresolved} and enumeration-typed properties the same way as {@link serializeNodeBases}.
103
+ * Unrecoverable issues are passed to the optional `reportIssue` argument, and
104
+ */
105
+ export const propertyValueSerializerWith = (configuration?: PropertyValueSerializerConfiguration) => {
106
+ const primitiveValueSerializer = configuration?.primitiveValueSerializer ?? builtinPropertyValueSerializer
107
+ const reportIssue = configuration?.reportIssue ?? ((message) => { throw new Error(message) })
108
+ return {
109
+ serializeValue: (value: unknown, property: Property) => {
110
+ const { type } = property
111
+ if (type === unresolved) {
112
+ reportIssue(`can't serialize value of property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") having unresolved type: ${value}`)
113
+ return null
114
+ }
115
+ if (type instanceof PrimitiveType) {
116
+ return primitiveValueSerializer.serializeValue(value, property)
117
+ }
118
+ if (type instanceof Enumeration) {
119
+ const literal = type.literals.find((literal) => literal.key === value)
120
+ if (literal === undefined) {
121
+ reportIssue(`value "${value}" is not the key of any of the literals of the enumeration "${type.name}" in language "${type.language.name}"`)
122
+ return null
123
+ }
124
+ return literal.key
125
+ }
126
+ reportIssue(`can't serialize value of property "${property.name}" (on classifier "${property.classifier.name}" in language "${property.classifier.language.name}") of type "${type.name}": ${value}`)
127
+ return null
128
+ }
129
+ }
130
+ }
131
+