@lionweb/core 0.6.8 → 0.6.9-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/README.md +8 -0
- package/dist/deserializer.d.ts +15 -2
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +16 -4
- package/dist/deserializer.js.map +1 -1
- package/dist/m3/deserializer.d.ts +7 -0
- package/dist/m3/deserializer.d.ts.map +1 -1
- package/dist/m3/deserializer.js +9 -4
- package/dist/m3/deserializer.js.map +1 -1
- package/dist/m3/facade.js +1 -1
- package/dist/m3/facade.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,14 @@ The following is a list of links to potential starting points:
|
|
|
32
32
|
|
|
33
33
|
## Changelog
|
|
34
34
|
|
|
35
|
+
### 0.6.9 - not yet released
|
|
36
|
+
|
|
37
|
+
* Improve deserialization:
|
|
38
|
+
* Produce more meaningful messages for problems
|
|
39
|
+
* Configure how problems are reported through an instance of a `SimplisticHandler`, calling a new function `deserializeLanguagesWithHandler`.
|
|
40
|
+
The default value for the handler is `defaultSimplisticHandler` which just reports the problem to the JavaScript console (using `console.log`).
|
|
41
|
+
* Pass dependent languages also _as languages_ from languages deserializer to regular deserializer, not just as referable data (which is only useful for the built-ins)
|
|
42
|
+
|
|
35
43
|
### 0.6.8
|
|
36
44
|
|
|
37
45
|
* With respect to deserialization:
|
package/dist/deserializer.d.ts
CHANGED
|
@@ -5,6 +5,17 @@ import { Language, Property } from "./m3/types.js";
|
|
|
5
5
|
export interface PrimitiveTypeDeserializer {
|
|
6
6
|
deserializeValue(value: string | undefined, property: Property): unknown | undefined;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* A simplistic handler to which problems that arise during deserialization,
|
|
10
|
+
* are reported as plain text by calling the `reportProblem` function.
|
|
11
|
+
*/
|
|
12
|
+
export interface SimplisticHandler {
|
|
13
|
+
reportProblem: (message: string) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A default simplistic handler that just outputs everything of the console.
|
|
17
|
+
*/
|
|
18
|
+
export declare const defaultSimplisticHandler: SimplisticHandler;
|
|
8
19
|
/**
|
|
9
20
|
* @return a deserialization of a {@link SerializationChunk}
|
|
10
21
|
*
|
|
@@ -12,10 +23,12 @@ export interface PrimitiveTypeDeserializer {
|
|
|
12
23
|
* @param instantiationFacade - a {@link InstantiationFacade} that is used to instantiate nodes and set values on them
|
|
13
24
|
* @param languages - a {@link Language language} that the serialized model is expected to conform to
|
|
14
25
|
* @param dependentNodes - a collection of nodes from dependent models against which all references in the serialized model are supposed to resolve against
|
|
26
|
+
* @param primitiveTypeDeserializer - a deserializer for values of primitive types (by default a {@link DefaultPrimitiveTypeDeserializer})
|
|
27
|
+
* @param handler - a handler for reporting problems (by default a {@link defaultSimplisticHandler})
|
|
15
28
|
*/
|
|
16
|
-
export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: SerializationChunk, instantiationFacade: InstantiationFacade<NT>, languages: Language[], dependentNodes: Node[], primitiveTypeDeserializer?: PrimitiveTypeDeserializer) => NT[];
|
|
29
|
+
export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: SerializationChunk, instantiationFacade: InstantiationFacade<NT>, languages: Language[], dependentNodes: Node[], primitiveTypeDeserializer?: PrimitiveTypeDeserializer, handler?: SimplisticHandler) => NT[];
|
|
17
30
|
/**
|
|
18
31
|
* Alias for {@link deserializeSerializationChunk}.
|
|
19
32
|
*/
|
|
20
|
-
export declare const deserializeChunk: <NT extends Node>(serializationChunk: SerializationChunk, instantiationFacade: InstantiationFacade<NT>, languages: Language[], dependentNodes: Node[], primitiveTypeDeserializer?: PrimitiveTypeDeserializer) => NT[];
|
|
33
|
+
export declare const deserializeChunk: <NT extends Node>(serializationChunk: SerializationChunk, instantiationFacade: InstantiationFacade<NT>, languages: Language[], dependentNodes: Node[], primitiveTypeDeserializer?: PrimitiveTypeDeserializer, handler?: SimplisticHandler) => NT[];
|
|
21
34
|
//# sourceMappingURL=deserializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,IAAI,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAE/C,OAAO,EAAoC,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AAGxG,OAAO,EAAuC,QAAQ,EAAiB,QAAQ,EAAY,MAAM,eAAe,CAAA;AAKhH,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAED
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,IAAI,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAE/C,OAAO,EAAoC,kBAAkB,EAAiB,MAAM,oBAAoB,CAAA;AAGxG,OAAO,EAAuC,QAAQ,EAAiB,QAAQ,EAAY,MAAM,eAAe,CAAA;AAKhH,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAGD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAItC,CAAA;AAGD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,wCAClB,kBAAkB,2DAE3B,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,YAC3C,iBAAiB,SAoK7B,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,wCAjLL,kBAAkB,2DAE3B,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,YAC3C,iBAAiB,SA0K+B,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -5,6 +5,14 @@ import { DefaultPrimitiveTypeDeserializer } from "./m3/builtins.js";
|
|
|
5
5
|
import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
|
|
6
6
|
import { allFeaturesOf } from "./m3/functions.js";
|
|
7
7
|
import { byIdMap, groupBy } from "./utils/map-helpers.js";
|
|
8
|
+
/**
|
|
9
|
+
* A default simplistic handler that just outputs everything of the console.
|
|
10
|
+
*/
|
|
11
|
+
export const defaultSimplisticHandler = {
|
|
12
|
+
reportProblem: (message) => {
|
|
13
|
+
console.log(message);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
8
16
|
/**
|
|
9
17
|
* @return a deserialization of a {@link SerializationChunk}
|
|
10
18
|
*
|
|
@@ -12,12 +20,14 @@ import { byIdMap, groupBy } from "./utils/map-helpers.js";
|
|
|
12
20
|
* @param instantiationFacade - a {@link InstantiationFacade} that is used to instantiate nodes and set values on them
|
|
13
21
|
* @param languages - a {@link Language language} that the serialized model is expected to conform to
|
|
14
22
|
* @param dependentNodes - a collection of nodes from dependent models against which all references in the serialized model are supposed to resolve against
|
|
23
|
+
* @param primitiveTypeDeserializer - a deserializer for values of primitive types (by default a {@link DefaultPrimitiveTypeDeserializer})
|
|
24
|
+
* @param handler - a handler for reporting problems (by default a {@link defaultSimplisticHandler})
|
|
15
25
|
*/
|
|
16
26
|
export const deserializeSerializationChunk = (serializationChunk, instantiationFacade, languages,
|
|
17
27
|
// TODO facades <--> languages, so it's weird that it looks split up like this
|
|
18
28
|
dependentNodes,
|
|
19
29
|
// TODO (#13) see if you can turn this into [nodes: Node[], instantiationFacade: InstantiationFacade<Node>][] after all
|
|
20
|
-
primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer()) => {
|
|
30
|
+
primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer(), handler = defaultSimplisticHandler) => {
|
|
21
31
|
if (serializationChunk.serializationFormatVersion !== currentSerializationFormatVersion) {
|
|
22
32
|
throw new Error(`can't deserialize from serialization format other than version "${currentSerializationFormatVersion}"`);
|
|
23
33
|
}
|
|
@@ -45,7 +55,9 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer()) => {
|
|
|
45
55
|
try {
|
|
46
56
|
return instantiationFacade.nodeFor(parent, classifier, id, propertySettings);
|
|
47
57
|
}
|
|
48
|
-
catch (
|
|
58
|
+
catch (e) {
|
|
59
|
+
handler.reportProblem(`error occurred during instantiation of a node for classifier ${classifier.name} with meta-pointer (${classifier.language.key}, ${classifier.language.version}, ${classifier.key}); reason:`);
|
|
60
|
+
handler.reportProblem(e.toString());
|
|
49
61
|
return null;
|
|
50
62
|
}
|
|
51
63
|
};
|
|
@@ -55,7 +67,7 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer()) => {
|
|
|
55
67
|
const instantiate = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }, parent) => {
|
|
56
68
|
const classifier = symbolTable.entityMatching(classifierMetaPointer);
|
|
57
69
|
if (classifier === undefined || !(classifier instanceof Classifier)) {
|
|
58
|
-
|
|
70
|
+
handler.reportProblem(`can't deserialize node with id=${id}: can't find the classifier with key ${classifierMetaPointer.key} in language (${classifierMetaPointer.language}, ${classifierMetaPointer.version})`);
|
|
59
71
|
return null;
|
|
60
72
|
}
|
|
61
73
|
const allFeatures = allFeaturesOf(classifier);
|
|
@@ -139,7 +151,7 @@ primitiveTypeDeserializer = new DefaultPrimitiveTypeDeserializer()) => {
|
|
|
139
151
|
const target = deserializedNodeById[refId] ?? nodesOfDependentModelsById[refId];
|
|
140
152
|
if (target === undefined) {
|
|
141
153
|
const metaTypeMessage = "concept" in node ? ` and (meta-)type ${node.concept}` : "";
|
|
142
|
-
|
|
154
|
+
handler.reportProblem(`couldn't resolve the target with id=${refId} of a "${reference.name}" reference on the node with id=${node.id}${metaTypeMessage}`);
|
|
143
155
|
return unresolved;
|
|
144
156
|
}
|
|
145
157
|
return target;
|
package/dist/deserializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,iCAAiC,EAAqC,MAAM,oBAAoB,CAAA;AACxG,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAC,gCAAgC,EAAC,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAY,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,eAAe,CAAA;AAChH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { Language } from "./types.js";
|
|
2
2
|
import { SerializationChunk } from "../serialization.js";
|
|
3
|
+
import { SimplisticHandler } from "../deserializer.js";
|
|
3
4
|
/**
|
|
4
5
|
* Deserializes languages that have been serialized into the LionWeb serialization JSON format
|
|
5
6
|
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
6
7
|
*/
|
|
7
8
|
export declare const deserializeLanguages: (serializationChunk: SerializationChunk, ...dependentLanguages: Language[]) => Language[];
|
|
9
|
+
/**
|
|
10
|
+
* Deserializes languages that have been serialized into the LionWeb serialization JSON format
|
|
11
|
+
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
12
|
+
* This function takes a handler to be able to see what problems occurred.
|
|
13
|
+
*/
|
|
14
|
+
export declare const deserializeLanguagesWithHandler: (serializationChunk: SerializationChunk, handler: SimplisticHandler, ...dependentLanguages: Language[]) => Language[];
|
|
8
15
|
//# sourceMappingURL=deserializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAA0D,iBAAiB,EAAC,MAAM,oBAAoB,CAAA;AAI7G;;;GAGG;AACH,eAAO,MAAM,oBAAoB,uBAAwB,kBAAkB,yBAAyB,QAAQ,EAAE,KAAG,QAAQ,EACjB,CAAA;AAExG;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,uBACpB,kBAAkB,WAC7B,iBAAiB,yBACH,QAAQ,EAAE,KAClC,QAAQ,EAU0E,CAAA"}
|
package/dist/m3/deserializer.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { Language } from "./types.js";
|
|
2
2
|
import { lioncoreExtractionFacade, lioncoreInstantiationFacade } from "./facade.js";
|
|
3
3
|
import { nodesExtractorUsing } from "../facade.js";
|
|
4
|
-
import { deserializeSerializationChunk } from "../deserializer.js";
|
|
4
|
+
import { defaultSimplisticHandler, deserializeSerializationChunk } from "../deserializer.js";
|
|
5
5
|
import { lioncore } from "./lioncore.js";
|
|
6
|
-
import { lioncoreBuiltins } from "./builtins.js";
|
|
6
|
+
import { DefaultPrimitiveTypeDeserializer, lioncoreBuiltins } from "./builtins.js";
|
|
7
7
|
/**
|
|
8
8
|
* Deserializes languages that have been serialized into the LionWeb serialization JSON format
|
|
9
9
|
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
10
10
|
*/
|
|
11
|
-
export const deserializeLanguages = (serializationChunk, ...dependentLanguages) =>
|
|
11
|
+
export const deserializeLanguages = (serializationChunk, ...dependentLanguages) => deserializeLanguagesWithHandler(serializationChunk, defaultSimplisticHandler, ...dependentLanguages);
|
|
12
|
+
/**
|
|
13
|
+
* Deserializes languages that have been serialized into the LionWeb serialization JSON format
|
|
14
|
+
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
15
|
+
* This function takes a handler to be able to see what problems occurred.
|
|
16
|
+
*/
|
|
17
|
+
export const deserializeLanguagesWithHandler = (serializationChunk, handler, ...dependentLanguages) => deserializeSerializationChunk(serializationChunk, lioncoreInstantiationFacade, [lioncore, ...dependentLanguages], [lioncoreBuiltins, ...dependentLanguages].flatMap(nodesExtractorUsing(lioncoreExtractionFacade)), new DefaultPrimitiveTypeDeserializer(), handler)
|
|
12
18
|
.filter((rootNode) => rootNode instanceof Language)
|
|
13
19
|
.map((language) => language.dependingOn(...dependentLanguages));
|
|
14
|
-
// TODO pass a function that can resolve dependent metamodels, since they'd generally only known in the serialization
|
|
15
20
|
//# sourceMappingURL=deserializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAC,wBAAwB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAA;AACjF,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA;AAChD,OAAO,EAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAC,wBAAwB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAA;AACjF,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAA;AAChD,OAAO,EAAC,wBAAwB,EAAE,6BAA6B,EAAoB,MAAM,oBAAoB,CAAA;AAC7G,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,gCAAgC,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAA;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,kBAAsC,EAAE,GAAG,kBAA8B,EAAc,EAAE,CAC1H,+BAA+B,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,kBAAkB,CAAC,CAAA;AAExG;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,kBAAsC,EACtC,OAA0B,EAC1B,GAAG,kBAA8B,EACvB,EAAE,CACZ,6BAA6B,CACzB,kBAAkB,EAClB,2BAA2B,EAC3B,CAAC,QAAQ,EAAE,GAAG,kBAAkB,CAAC,EACjC,CAAC,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC,EAChG,IAAI,gCAAgC,EAAE,EACtC,OAAO,CACV;KACI,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,YAAY,QAAQ,CAAC;KAClD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAE,QAAqB,CAAC,WAAW,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAA"}
|
package/dist/m3/facade.js
CHANGED
|
@@ -39,7 +39,7 @@ export const lioncoreInstantiationFacade = ({
|
|
|
39
39
|
case metaConcepts.reference.key:
|
|
40
40
|
return new Reference(parent, propertySettings[inamed_name.key], propertySettings[ikeyed_key.key], id);
|
|
41
41
|
default:
|
|
42
|
-
throw new Error(`
|
|
42
|
+
throw new Error(`don't know a node of concept ${qualifiedNameOf(classifier)} with key ${classifier.key} that's not in LionCore M3`);
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
setFeatureValue: (node, feature, value) => {
|
package/dist/m3/facade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/m3/facade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/m3/facade.ts"],"names":[],"mappings":"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"}
|