@lionweb/core 0.7.0-beta.22 → 0.7.0-beta.24
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 +3 -0
- package/dist/deserializer.d.ts +2 -3
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +2 -2
- package/dist/deserializer.js.map +1 -1
- package/dist/m3/builtins.d.ts +16 -0
- package/dist/m3/builtins.d.ts.map +1 -1
- package/dist/m3/builtins.js +22 -0
- package/dist/m3/builtins.js.map +1 -1
- package/dist/m3/deserializer.js +2 -2
- package/dist/m3/deserializer.js.map +1 -1
- package/dist/references.d.ts +6 -1
- package/dist/references.d.ts.map +1 -1
- package/dist/references.js +5 -1
- package/dist/references.js.map +1 -1
- package/dist/serializer.js +2 -2
- package/dist/serializer.js.map +1 -1
- package/package.json +3 -3
- package/src/deserializer.ts +6 -2
- package/src/m3/builtins.ts +26 -0
- package/src/m3/deserializer.ts +2 -2
- package/src/references.ts +9 -1
- package/src/serializer.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -34,6 +34,9 @@
|
|
|
34
34
|
* Expose feature resolution, through the `featureResolversFor` function (and associated types), which performs proper checking.
|
|
35
35
|
This avoids undebuggable `undefined` dereferencing at runtime in `deltaDeserializer` and `eventToDeltaTranslator` functions.
|
|
36
36
|
* Package `src/` again (— i.e., don't ignore for NPM packaging.)
|
|
37
|
+
* Add `serializedRef` function that serializes a single reference target.
|
|
38
|
+
* Introduce singleton instances `builtinPropertyValue{Deserializer|Serializer}` of `BuiltinPropertyValue{Deserializer|Serializer}` which are properly sealed, and use them wherever possible
|
|
39
|
+
— also in other packages, without explicit mention in their changelogs.
|
|
37
40
|
|
|
38
41
|
|
|
39
42
|
## 0.6.12
|
package/dist/deserializer.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { LionWebJsonChunk } from "@lionweb/json";
|
|
2
2
|
import { Writer } from "./writing.js";
|
|
3
3
|
import { SimplisticHandler } from "./handler.js";
|
|
4
|
-
import { BuiltinPropertyValueDeserializer } from "./m3/builtins.js";
|
|
5
4
|
import { Language, Property } from "./m3/types.js";
|
|
6
5
|
import { Node } from "./types.js";
|
|
7
6
|
/**
|
|
@@ -25,9 +24,9 @@ export interface PrimitiveTypeDeserializer extends PropertyValueDeserializer {
|
|
|
25
24
|
* @param propertyValueDeserializer - a deserializer for values of properties (by default a {@link BuiltinPropertyValueDeserializer})
|
|
26
25
|
* @param problemHandler - a handler for reporting problems (by default a {@link defaultSimplisticHandler})
|
|
27
26
|
*/
|
|
28
|
-
export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?:
|
|
27
|
+
export declare const deserializeSerializationChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?: PropertyValueDeserializer, problemHandler?: SimplisticHandler) => NT[];
|
|
29
28
|
/**
|
|
30
29
|
* Alias for {@link deserializeSerializationChunk}.
|
|
31
30
|
*/
|
|
32
|
-
export declare const deserializeChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?:
|
|
31
|
+
export declare const deserializeChunk: <NT extends Node>(serializationChunk: LionWebJsonChunk, writer: Writer<NT>, languages: Language[], dependentNodes: Node[], propertyValueDeserializer?: PropertyValueDeserializer, problemHandler?: SimplisticHandler) => NT[];
|
|
33
32
|
//# sourceMappingURL=deserializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAGnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAGnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAO1E,OAAO,EAAwC,QAAQ,EAAiB,QAAQ,EAAa,MAAM,eAAe,CAAA;AAElH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;CAAG;AAE/E;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GAAI,EAAE,SAAS,IAAI,EACzD,oBAAoB,gBAAgB,EACpC,QAAQ,MAAM,CAAC,EAAE,CAAC,EAClB,WAAW,QAAQ,EAAE,EAErB,gBAAgB,IAAI,EAAE,EAEtB,4BAA2B,yBAA4D,EACvF,iBAAgB,iBAA4C,KAC7D,EAAE,EA2KJ,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAzLiB,EAAE,SAAS,IAAI,sBACrC,gBAAgB,UAC5B,MAAM,CAAC,EAAE,CAAC,aACP,QAAQ,EAAE,kBAEL,IAAI,EAAE,8BAEK,yBAAyB,mBACpC,iBAAiB,KAClC,EAAE,EAgLwD,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { currentSerializationFormatVersion } from "@lionweb/json";
|
|
2
2
|
import { byIdMap, groupBy, keepDefineds } from "@lionweb/ts-utils";
|
|
3
3
|
import { defaultSimplisticHandler } from "./handler.js";
|
|
4
|
-
import {
|
|
4
|
+
import { builtinPropertyValueDeserializer } from "./m3/builtins.js";
|
|
5
5
|
import { MemoisingSymbolTable } from "./m3/symbol-table.js";
|
|
6
6
|
import { Classifier, Containment, Enumeration, PrimitiveType, Property, Reference } from "./m3/types.js";
|
|
7
7
|
import { unresolved } from "./references.js";
|
|
@@ -19,7 +19,7 @@ export const deserializeSerializationChunk = (serializationChunk, writer, langua
|
|
|
19
19
|
// TODO facades <--> languages, so it's weird that it looks split up like this
|
|
20
20
|
dependentNodes,
|
|
21
21
|
// TODO (#13) see if you can turn this into [nodes: Node[], writer: Writer<Node>][] after all
|
|
22
|
-
propertyValueDeserializer =
|
|
22
|
+
propertyValueDeserializer = builtinPropertyValueDeserializer, problemHandler = defaultSimplisticHandler) => {
|
|
23
23
|
if (serializationChunk.serializationFormatVersion !== currentSerializationFormatVersion) {
|
|
24
24
|
problemHandler.reportProblem(`can't deserialize from serialization format other than version "${currentSerializationFormatVersion}" - assuming that version`);
|
|
25
25
|
}
|
package/dist/deserializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EAKpC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,wBAAwB,EAAqB,MAAM,cAAc,CAAA;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/builtins.d.ts
CHANGED
|
@@ -41,22 +41,38 @@ declare const builtinFeatures: {
|
|
|
41
41
|
declare const shouldBeIdentical: (left: DataType, right: DataType) => boolean;
|
|
42
42
|
declare abstract class DataTypeRegister<T> {
|
|
43
43
|
private map;
|
|
44
|
+
private _sealed;
|
|
45
|
+
sealed(): this;
|
|
44
46
|
register(dataType: DataType, t: T): void;
|
|
45
47
|
protected byType(targetDataType: DataType): T | undefined;
|
|
46
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* An implementation of {@link PropertyValueDeserializer} that knows how to deserialize serialized values of all the built-in primitive types.
|
|
51
|
+
*/
|
|
47
52
|
export declare class BuiltinPropertyValueDeserializer extends DataTypeRegister<(value: string) => unknown> implements PropertyValueDeserializer {
|
|
48
53
|
constructor();
|
|
49
54
|
deserializeValue(value: string | undefined, property: Property): unknown | undefined;
|
|
50
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Singleton instance of {@link BuiltinPropertyValueDeserializer}.
|
|
58
|
+
*/
|
|
59
|
+
export declare const builtinPropertyValueDeserializer: BuiltinPropertyValueDeserializer;
|
|
51
60
|
/**
|
|
52
61
|
* Misspelled alias of {@link BuiltinPropertyValueDeserializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
53
62
|
*/
|
|
54
63
|
export declare class DefaultPrimitiveTypeDeserializer extends BuiltinPropertyValueDeserializer {
|
|
55
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* An implementation of {@link PropertyValueSerializer} that knows how to serialize values of all the built-in primitive types.
|
|
67
|
+
*/
|
|
56
68
|
export declare class BuiltinPropertyValueSerializer extends DataTypeRegister<(value: unknown) => string> implements PropertyValueSerializer {
|
|
57
69
|
constructor();
|
|
58
70
|
serializeValue(value: unknown | undefined, property: Property): string | null;
|
|
59
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Singleton instance of {@link BuiltinPropertyValueSerializer}.
|
|
74
|
+
*/
|
|
75
|
+
export declare const builtinPropertyValueSerializer: BuiltinPropertyValueSerializer;
|
|
60
76
|
/**
|
|
61
77
|
* Misspelled alias of {@link BuiltinPropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
62
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAuB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAczF;;GAEG;AACH,QAAA,MAAM,gBAAgB,+BAAmB,CAAA;AASzC,QAAA,MAAM,oBAAoB,GAAI,YAAY,UAAU,YAKhB,CAAA;AAMpC,QAAA,MAAM,iBAAiB;;;;;IAKnB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEN,CAAA;AAED,QAAA,MAAM,kBAAkB;;;CAGvB,CAAA;AAED,QAAA,MAAM,eAAe;;CAEpB,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,GAAI,MAAM,QAAQ,EAAE,OAAO,QAAQ,KAAG,OACiD,CAAA;AAE9G,uBAAe,gBAAgB,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAyB;
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAuB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAczF;;GAEG;AACH,QAAA,MAAM,gBAAgB,+BAAmB,CAAA;AASzC,QAAA,MAAM,oBAAoB,GAAI,YAAY,UAAU,YAKhB,CAAA;AAMpC,QAAA,MAAM,iBAAiB;;;;;IAKnB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEN,CAAA;AAED,QAAA,MAAM,kBAAkB;;;CAGvB,CAAA;AAED,QAAA,MAAM,eAAe;;CAEpB,CAAA;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,GAAI,MAAM,QAAQ,EAAE,OAAO,QAAQ,KAAG,OACiD,CAAA;AAE9G,uBAAe,gBAAgB,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAyB;IAEpC,OAAO,CAAC,OAAO,CAAQ;IAEvB,MAAM;IAKC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAOxC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,CAAC,GAAG,SAAS;CAQ5D;AAED;;GAEG;AACH,qBAAa,gCACT,SAAQ,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CACnD,YAAW,yBAAyB;;IAUpC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;CAkBvF;AAED;;GAEG;AACH,eAAO,MAAM,gCAAgC,kCAAkD,CAAA;AAE/F;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,gCAAgC;CAAG;AAGzF;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,gBAAgB,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAE,YAAW,uBAAuB;;IAS/H,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;CAkBhF;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,gCAAgD,CAAA;AAE3F;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,8BAA8B;CAAG;AAErF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAA"}
|
package/dist/m3/builtins.js
CHANGED
|
@@ -59,8 +59,16 @@ const shouldBeIdentical = (left, right) => left.key === right.key && left.langua
|
|
|
59
59
|
class DataTypeRegister {
|
|
60
60
|
constructor() {
|
|
61
61
|
this.map = new Map();
|
|
62
|
+
this._sealed = false;
|
|
63
|
+
}
|
|
64
|
+
sealed() {
|
|
65
|
+
this._sealed = true;
|
|
66
|
+
return this;
|
|
62
67
|
}
|
|
63
68
|
register(dataType, t) {
|
|
69
|
+
if (this._sealed) {
|
|
70
|
+
throw new Error(`can't register a data type with a register that has been sealed`);
|
|
71
|
+
}
|
|
64
72
|
this.map.set(dataType, t);
|
|
65
73
|
}
|
|
66
74
|
byType(targetDataType) {
|
|
@@ -72,6 +80,9 @@ class DataTypeRegister {
|
|
|
72
80
|
return undefined;
|
|
73
81
|
}
|
|
74
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* An implementation of {@link PropertyValueDeserializer} that knows how to deserialize serialized values of all the built-in primitive types.
|
|
85
|
+
*/
|
|
75
86
|
export class BuiltinPropertyValueDeserializer extends DataTypeRegister {
|
|
76
87
|
constructor() {
|
|
77
88
|
super();
|
|
@@ -100,11 +111,18 @@ export class BuiltinPropertyValueDeserializer extends DataTypeRegister {
|
|
|
100
111
|
}
|
|
101
112
|
}
|
|
102
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Singleton instance of {@link BuiltinPropertyValueDeserializer}.
|
|
116
|
+
*/
|
|
117
|
+
export const builtinPropertyValueDeserializer = new BuiltinPropertyValueDeserializer().sealed();
|
|
103
118
|
/**
|
|
104
119
|
* Misspelled alias of {@link BuiltinPropertyValueDeserializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
105
120
|
*/
|
|
106
121
|
export class DefaultPrimitiveTypeDeserializer extends BuiltinPropertyValueDeserializer {
|
|
107
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* An implementation of {@link PropertyValueSerializer} that knows how to serialize values of all the built-in primitive types.
|
|
125
|
+
*/
|
|
108
126
|
export class BuiltinPropertyValueSerializer extends DataTypeRegister {
|
|
109
127
|
constructor() {
|
|
110
128
|
super();
|
|
@@ -133,6 +151,10 @@ export class BuiltinPropertyValueSerializer extends DataTypeRegister {
|
|
|
133
151
|
}
|
|
134
152
|
}
|
|
135
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Singleton instance of {@link BuiltinPropertyValueSerializer}.
|
|
156
|
+
*/
|
|
157
|
+
export const builtinPropertyValueSerializer = new BuiltinPropertyValueSerializer().sealed();
|
|
136
158
|
/**
|
|
137
159
|
* Misspelled alias of {@link BuiltinPropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
138
160
|
*/
|
package/dist/m3/builtins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAiB,MAAM,mBAAmB,CAAA;AAGtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAc,OAAO,EAAY,mBAAmB,EAAY,MAAM,YAAY,CAAA;AAEzF,MAAM,iCAAiC,GAAkB,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEzH,MAAM,OAAO,GAAG,IAAI,eAAe,CAC/B,mBAAmB,EACnB,qBAAqB,EACrB,iCAAiC,EACjC,iCAAiC,CACpC,CAAA;AACD;;GAEG;AAEH;;GAEG;AACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAA;AAEzC,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AACtD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;AACxD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;AACxD,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;AAElD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAE1C,MAAM,oBAAoB,GAAG,CAAC,UAAsB,EAAE,EAAE,CACpD,UAAU,YAAY,OAAO;IAC7B,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,mBAAmB;IAC/C,UAAU,CAAC,QAAQ,CAAC,OAAO,KAAK,qBAAqB;IACrD,UAAU,CAAC,GAAG,KAAK,kBAAkB,CAAC,IAAI,CAAC,GAAG;IAC7C,UAAsB,CAAC,QAAQ,CAAA;AAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AAE1C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AAE3E,MAAM,iBAAiB,GAAG;IACtB,cAAc;IACd,eAAe;IACf,eAAe;IACf,YAAY;IACZ;;OAEG;IACH,cAAc,EAAE,cAAc;IAC9B;;OAEG;IACH,eAAe,EAAE,eAAe;IAChC;;OAEG;IACH,eAAe,EAAE,eAAe;IAChC;;OAEG;IACH,YAAY,EAAE,YAAY;CAC7B,CAAA;AAED,MAAM,kBAAkB,GAAG;IACvB,IAAI;IACJ,MAAM;CACT,CAAA;AAED,MAAM,eAAe,GAAG;IACpB,WAAW;CACd,CAAA;AAED;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,KAAe,EAAW,EAAE,CACnE,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAA;AAE9G,MAAe,gBAAgB;IAA/B;QACY,QAAG,GAAG,IAAI,GAAG,EAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/m3/builtins.ts"],"names":[],"mappings":"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"}
|
package/dist/m3/deserializer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { deserializeSerializationChunk } from "../deserializer.js";
|
|
2
2
|
import { nodesExtractorUsing } from "../extraction.js";
|
|
3
3
|
import { defaultSimplisticHandler } from "../handler.js";
|
|
4
|
-
import {
|
|
4
|
+
import { builtinPropertyValueDeserializer, lioncoreBuiltins } from "./builtins.js";
|
|
5
5
|
import { lioncoreReader, lioncoreWriter } from "./facade.js";
|
|
6
6
|
import { lioncore } from "./lioncore.js";
|
|
7
7
|
import { Language } from "./types.js";
|
|
@@ -15,7 +15,7 @@ export const deserializeLanguages = (serializationChunk, ...dependentLanguages)
|
|
|
15
15
|
* as an instance of the LionCore metametamodel, using {@link _M3Concept these type definitions}.
|
|
16
16
|
* This function takes a handler to be able to see what problems occurred.
|
|
17
17
|
*/
|
|
18
|
-
export const deserializeLanguagesWithHandler = (serializationChunk, handler, ...dependentLanguages) => deserializeSerializationChunk(serializationChunk, lioncoreWriter, [lioncore, ...dependentLanguages], [lioncoreBuiltins, ...dependentLanguages].flatMap(nodesExtractorUsing(lioncoreReader)),
|
|
18
|
+
export const deserializeLanguagesWithHandler = (serializationChunk, handler, ...dependentLanguages) => deserializeSerializationChunk(serializationChunk, lioncoreWriter, [lioncore, ...dependentLanguages], [lioncoreBuiltins, ...dependentLanguages].flatMap(nodesExtractorUsing(lioncoreReader)), builtinPropertyValueDeserializer, handler)
|
|
19
19
|
.filter((rootNode) => rootNode instanceof Language)
|
|
20
20
|
.map((language) => language.dependingOn(...dependentLanguages));
|
|
21
21
|
//# sourceMappingURL=deserializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAqB,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,kBAAoC,EAAE,GAAG,kBAA8B,EAAc,EAAE,CACxH,+BAA+B,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,kBAAkB,CAAC,CAAA;AAExG;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,kBAAoC,EACpC,OAA0B,EAC1B,GAAG,kBAA8B,EACvB,EAAE,CACZ,6BAA6B,CACzB,kBAAkB,EAClB,cAAc,EACd,CAAC,QAAQ,EAAE,GAAG,kBAAkB,CAAC,EACjC,CAAC,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,EACtF,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../../src/m3/deserializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAqB,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,kBAAoC,EAAE,GAAG,kBAA8B,EAAc,EAAE,CACxH,+BAA+B,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,kBAAkB,CAAC,CAAA;AAExG;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,kBAAoC,EACpC,OAA0B,EAC1B,GAAG,kBAA8B,EACvB,EAAE,CACZ,6BAA6B,CACzB,kBAAkB,EAClB,cAAc,EACd,CAAC,QAAQ,EAAE,GAAG,kBAAkB,CAAC,EACjC,CAAC,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,EACtF,gCAAgC,EAChC,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/references.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LionWebId } from "@lionweb/json";
|
|
2
|
+
import { Node } from "./types.js";
|
|
2
3
|
/**
|
|
3
4
|
* The `unresolved` symbol indicates a reference value which hasn't been resolved yet.
|
|
4
5
|
* It differs from an unset (`undefined`) value.
|
|
@@ -9,7 +10,7 @@ export declare const unresolved: null;
|
|
|
9
10
|
*/
|
|
10
11
|
export type SingleRef<T> = typeof unresolved | T;
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* @return whether a given (at most) single-valued reference actually refers to something.
|
|
13
14
|
*/
|
|
14
15
|
export declare const isRef: <T>(ref?: SingleRef<T>) => ref is T;
|
|
15
16
|
/**
|
|
@@ -20,4 +21,8 @@ export type MultiRef<T> = T[];
|
|
|
20
21
|
* A type that expresses a value is either an {@link LionWebId} or a value to indicate that resolution to a node previously failed.
|
|
21
22
|
*/
|
|
22
23
|
export type IdOrUnresolved = LionWebId | typeof unresolved;
|
|
24
|
+
/**
|
|
25
|
+
* @return the serialization of the given {@link SingleRef single reference target}, as a {@link LionWebId LionWeb ID}.
|
|
26
|
+
*/
|
|
27
|
+
export declare const serializedRef: <NT extends Node>(ref: SingleRef<NT>) => LionWebId | typeof unresolved;
|
|
23
28
|
//# sourceMappingURL=references.d.ts.map
|
package/dist/references.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAGjC;;;GAGG;AACH,eAAO,MAAM,UAAU,MAAO,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,UAAU,GAAG,CAAC,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,KAAG,GAAG,IAAI,CACV,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;AAG7B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,UAAU,CAAC;AAG3D;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,EAAE,SAAS,IAAI,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,KAAG,SAAS,GAAG,OAAO,UAC3C,CAAA"}
|
package/dist/references.js
CHANGED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export const unresolved = null;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* @return whether a given (at most) single-valued reference actually refers to something.
|
|
8
8
|
*/
|
|
9
9
|
export const isRef = (ref) => ref !== undefined && ref !== unresolved;
|
|
10
|
+
/**
|
|
11
|
+
* @return the serialization of the given {@link SingleRef single reference target}, as a {@link LionWebId LionWeb ID}.
|
|
12
|
+
*/
|
|
13
|
+
export const serializedRef = (ref) => ref === unresolved ? unresolved : ref.id;
|
|
10
14
|
//# sourceMappingURL=references.js.map
|
package/dist/references.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAA;AAO9B;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,GAAkB,EAAY,EAAE,CACrD,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,CAAA;AAc3C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAkB,GAAkB,EAAiC,EAAE,CAChG,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA"}
|
package/dist/serializer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { currentSerializationFormatVersion } from "@lionweb/json";
|
|
2
2
|
import { asArray, keepDefineds, lazyMapGet, uniquesAmong } from "@lionweb/ts-utils";
|
|
3
3
|
import { asIds } from "./functions.js";
|
|
4
|
-
import {
|
|
4
|
+
import { builtinPropertyValueSerializer } from "./m3/builtins.js";
|
|
5
5
|
import { inheritsDirectlyFrom } from "./m3/functions.js";
|
|
6
6
|
import { Containment, Enumeration, PrimitiveType, Property, Reference, simpleNameDeducer } from "./m3/types.js";
|
|
7
7
|
const isPropertyValueSerializer = (value) => typeof value === "object" && value !== null && "serializeValue" in value && typeof value.serializeValue === "function";
|
|
@@ -20,7 +20,7 @@ export const metaPointerFor = (feature) => {
|
|
|
20
20
|
* @return a function that serializes the {@link Node nodes} passed to it.
|
|
21
21
|
*/
|
|
22
22
|
export const nodeSerializer = (reader, serializationOptions) => {
|
|
23
|
-
const propertyValueSerializer = serializationOptions?.propertyValueSerializer ?? serializationOptions?.primitiveTypeSerializer ??
|
|
23
|
+
const propertyValueSerializer = serializationOptions?.propertyValueSerializer ?? serializationOptions?.primitiveTypeSerializer ?? builtinPropertyValueSerializer;
|
|
24
24
|
const serializeEmptyFeatures = serializationOptions?.serializeEmptyFeatures ?? true;
|
|
25
25
|
const languageKey2version2classifierKey2allFeatures = {};
|
|
26
26
|
const memoisedAllFeaturesOf = (classifier) => lazyMapGet(lazyMapGet(lazyMapGet(languageKey2version2classifierKey2allFeatures, classifier.language.key, () => ({})), classifier.language.version, () => ({})), classifier.key, () => uniquesAmong(// make unique in case a feature was inherited from multiple super-classifiers
|
package/dist/serializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EAKpC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAGtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAEH,WAAW,EACX,WAAW,EAGX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,iBAAiB,EACpB,MAAM,eAAe,CAAA;AAgBtB,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAoC,EAAE,CACnF,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,gBAAgB,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,UAAU,CAAA;AA6B1H;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAA0B,EAAE;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,UAAU,CAAA;IACvC,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,GAAG;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,EAAE,OAAO,CAAC,GAAG;KACnB,CAAA;AACL,CAAC,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAkB,MAAkB,EAAE,oBAA2C,EAAE,EAAE;IAC/G,MAAM,uBAAuB,GACzB,oBAAoB,EAAE,uBAAuB,IAAI,oBAAoB,EAAE,uBAAuB,IAAI,
|
|
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/core",
|
|
3
|
-
"version": "0.7.0-beta.
|
|
3
|
+
"version": "0.7.0-beta.24",
|
|
4
4
|
"description": "LionWeb core for {Java|Type}Script",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"release": "npm publish"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@lionweb/json": "0.7.0-beta.
|
|
31
|
-
"@lionweb/ts-utils": "0.7.0-beta.
|
|
30
|
+
"@lionweb/json": "0.7.0-beta.24",
|
|
31
|
+
"@lionweb/ts-utils": "0.7.0-beta.24"
|
|
32
32
|
}
|
|
33
33
|
}
|
package/src/deserializer.ts
CHANGED
|
@@ -8,7 +8,11 @@ import {
|
|
|
8
8
|
import { byIdMap, groupBy, keepDefineds } from "@lionweb/ts-utils"
|
|
9
9
|
import { Writer } from "./writing.js"
|
|
10
10
|
import { defaultSimplisticHandler, SimplisticHandler } from "./handler.js"
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
builtinPropertyValueDeserializer,
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
+
BuiltinPropertyValueDeserializer
|
|
15
|
+
} from "./m3/builtins.js"
|
|
12
16
|
import { MemoisingSymbolTable } from "./m3/symbol-table.js"
|
|
13
17
|
import { Classifier, Containment, Enumeration, Language, PrimitiveType, Property, Reference } from "./m3/types.js"
|
|
14
18
|
import { unresolved } from "./references.js"
|
|
@@ -43,7 +47,7 @@ export const deserializeSerializationChunk = <NT extends Node>(
|
|
|
43
47
|
// TODO facades <--> languages, so it's weird that it looks split up like this
|
|
44
48
|
dependentNodes: Node[],
|
|
45
49
|
// TODO (#13) see if you can turn this into [nodes: Node[], writer: Writer<Node>][] after all
|
|
46
|
-
propertyValueDeserializer:
|
|
50
|
+
propertyValueDeserializer: PropertyValueDeserializer = builtinPropertyValueDeserializer,
|
|
47
51
|
problemHandler: SimplisticHandler = defaultSimplisticHandler
|
|
48
52
|
): NT[] => {
|
|
49
53
|
if (serializationChunk.serializationFormatVersion !== currentSerializationFormatVersion) {
|
package/src/m3/builtins.ts
CHANGED
|
@@ -81,7 +81,17 @@ const shouldBeIdentical = (left: DataType, right: DataType): boolean =>
|
|
|
81
81
|
abstract class DataTypeRegister<T> {
|
|
82
82
|
private map = new Map<DataType, T>()
|
|
83
83
|
|
|
84
|
+
private _sealed = false
|
|
85
|
+
|
|
86
|
+
sealed() {
|
|
87
|
+
this._sealed = true
|
|
88
|
+
return this
|
|
89
|
+
}
|
|
90
|
+
|
|
84
91
|
public register(dataType: DataType, t: T) {
|
|
92
|
+
if (this._sealed) {
|
|
93
|
+
throw new Error(`can't register a data type with a register that has been sealed`)
|
|
94
|
+
}
|
|
85
95
|
this.map.set(dataType, t)
|
|
86
96
|
}
|
|
87
97
|
|
|
@@ -95,6 +105,9 @@ abstract class DataTypeRegister<T> {
|
|
|
95
105
|
}
|
|
96
106
|
}
|
|
97
107
|
|
|
108
|
+
/**
|
|
109
|
+
* An implementation of {@link PropertyValueDeserializer} that knows how to deserialize serialized values of all the built-in primitive types.
|
|
110
|
+
*/
|
|
98
111
|
export class BuiltinPropertyValueDeserializer
|
|
99
112
|
extends DataTypeRegister<(value: string) => unknown>
|
|
100
113
|
implements PropertyValueDeserializer
|
|
@@ -127,12 +140,20 @@ export class BuiltinPropertyValueDeserializer
|
|
|
127
140
|
}
|
|
128
141
|
}
|
|
129
142
|
|
|
143
|
+
/**
|
|
144
|
+
* Singleton instance of {@link BuiltinPropertyValueDeserializer}.
|
|
145
|
+
*/
|
|
146
|
+
export const builtinPropertyValueDeserializer = new BuiltinPropertyValueDeserializer().sealed()
|
|
147
|
+
|
|
130
148
|
/**
|
|
131
149
|
* Misspelled alias of {@link BuiltinPropertyValueDeserializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
132
150
|
*/
|
|
133
151
|
export class DefaultPrimitiveTypeDeserializer extends BuiltinPropertyValueDeserializer {}
|
|
134
152
|
|
|
135
153
|
|
|
154
|
+
/**
|
|
155
|
+
* An implementation of {@link PropertyValueSerializer} that knows how to serialize values of all the built-in primitive types.
|
|
156
|
+
*/
|
|
136
157
|
export class BuiltinPropertyValueSerializer extends DataTypeRegister<(value: unknown) => string> implements PropertyValueSerializer {
|
|
137
158
|
constructor() {
|
|
138
159
|
super()
|
|
@@ -162,6 +183,11 @@ export class BuiltinPropertyValueSerializer extends DataTypeRegister<(value: unk
|
|
|
162
183
|
}
|
|
163
184
|
}
|
|
164
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Singleton instance of {@link BuiltinPropertyValueSerializer}.
|
|
188
|
+
*/
|
|
189
|
+
export const builtinPropertyValueSerializer = new BuiltinPropertyValueSerializer().sealed()
|
|
190
|
+
|
|
165
191
|
/**
|
|
166
192
|
* Misspelled alias of {@link BuiltinPropertyValueSerializer}, kept for backward compatibility, and to be deprecated and removed later.
|
|
167
193
|
*/
|
package/src/m3/deserializer.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { LionWebJsonChunk } from "@lionweb/json"
|
|
|
2
2
|
import { deserializeSerializationChunk } from "../deserializer.js"
|
|
3
3
|
import { nodesExtractorUsing } from "../extraction.js"
|
|
4
4
|
import { defaultSimplisticHandler, SimplisticHandler } from "../handler.js"
|
|
5
|
-
import {
|
|
5
|
+
import { builtinPropertyValueDeserializer, lioncoreBuiltins } from "./builtins.js"
|
|
6
6
|
import { lioncoreReader, lioncoreWriter } from "./facade.js"
|
|
7
7
|
import { lioncore } from "./lioncore.js"
|
|
8
8
|
import { Language } from "./types.js"
|
|
@@ -30,7 +30,7 @@ export const deserializeLanguagesWithHandler = (
|
|
|
30
30
|
lioncoreWriter,
|
|
31
31
|
[lioncore, ...dependentLanguages],
|
|
32
32
|
[lioncoreBuiltins, ...dependentLanguages].flatMap(nodesExtractorUsing(lioncoreReader)),
|
|
33
|
-
|
|
33
|
+
builtinPropertyValueDeserializer,
|
|
34
34
|
handler
|
|
35
35
|
)
|
|
36
36
|
.filter((rootNode) => rootNode instanceof Language)
|
package/src/references.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LionWebId } from "@lionweb/json"
|
|
2
|
+
import { Node } from "./types.js"
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -13,7 +14,7 @@ export const unresolved = null
|
|
|
13
14
|
export type SingleRef<T> = typeof unresolved | T
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* @return whether a given (at most) single-valued reference actually refers to something.
|
|
17
18
|
*/
|
|
18
19
|
export const isRef = <T>(ref?: SingleRef<T>): ref is T =>
|
|
19
20
|
ref !== undefined && ref !== unresolved
|
|
@@ -29,3 +30,10 @@ export type MultiRef<T> = T[]
|
|
|
29
30
|
*/
|
|
30
31
|
export type IdOrUnresolved = LionWebId | typeof unresolved;
|
|
31
32
|
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @return the serialization of the given {@link SingleRef single reference target}, as a {@link LionWebId LionWeb ID}.
|
|
36
|
+
*/
|
|
37
|
+
export const serializedRef = <NT extends Node>(ref: SingleRef<NT>): LionWebId | typeof unresolved =>
|
|
38
|
+
ref === unresolved ? unresolved : ref.id
|
|
39
|
+
|
package/src/serializer.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { asArray, keepDefineds, lazyMapGet, Nested3Map, uniquesAmong } from "@li
|
|
|
9
9
|
import { asIds } from "./functions.js"
|
|
10
10
|
import { Reader } from "./reading.js"
|
|
11
11
|
import { Node } from "./types.js"
|
|
12
|
-
import {
|
|
12
|
+
import { builtinPropertyValueSerializer } from "./m3/builtins.js"
|
|
13
13
|
import { inheritsDirectlyFrom } from "./m3/functions.js"
|
|
14
14
|
import {
|
|
15
15
|
Classifier,
|
|
@@ -85,7 +85,7 @@ export const metaPointerFor = (feature: Feature): LionWebJsonMetaPointer => {
|
|
|
85
85
|
*/
|
|
86
86
|
export const nodeSerializer = <NT extends Node>(reader: Reader<NT>, serializationOptions?: SerializationOptions) => {
|
|
87
87
|
const propertyValueSerializer =
|
|
88
|
-
serializationOptions?.propertyValueSerializer ?? serializationOptions?.primitiveTypeSerializer ??
|
|
88
|
+
serializationOptions?.propertyValueSerializer ?? serializationOptions?.primitiveTypeSerializer ?? builtinPropertyValueSerializer
|
|
89
89
|
const serializeEmptyFeatures = serializationOptions?.serializeEmptyFeatures ?? true
|
|
90
90
|
|
|
91
91
|
const languageKey2version2classifierKey2allFeatures: Nested3Map<Feature[]> = {}
|