@lionweb/class-core 0.6.13-beta.4 → 0.6.13-beta.7

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
@@ -4,4 +4,5 @@
4
4
 
5
5
  * Add a getter `referenceTargets` to `INodeBase` that – like the `children` getter for containments – returns an array of all nodes targeted by reference features (direct and inherited) of the classifier of the node.
6
6
  *Note* that these getters are (in principle) meant *for internal use only*!
7
+ * Add a method `tryFromId` to the `IdMapping` class that returns `undefined` on an unknown ID, rather than throwing an error.
7
8
 
@@ -12,7 +12,8 @@ export declare class IdMapping {
12
12
  nodesById: NodesById;
13
13
  constructor(nodesById: NodesById);
14
14
  fromId(id: Id): INodeBase;
15
- fromRefId(idOrUnresolved: IdOrUnresolved): SingleRef<INodeBase>;
15
+ tryFromId: (id: Id) => (INodeBase | undefined);
16
+ fromRefId: (idOrUnresolved: IdOrUnresolved) => SingleRef<INodeBase>;
16
17
  updateWith(node: INodeBase): void;
17
18
  }
18
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"id-mapping.d.ts","sourceRoot":"","sources":["../src/id-mapping.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AAExE,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAGrC,KAAK,SAAS,GAAG;IAAE,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;CAAC,CAAC;AAGxC;;;;GAIG;AACH,qBAAa,SAAS;IAElB,SAAS,EAAE,SAAS,CAAC;gBACT,SAAS,EAAE,SAAS;IAIhC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS;IAOzB,SAAS,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;IAM/D,UAAU,CAAC,IAAI,EAAE,SAAS;CAM7B"}
1
+ {"version":3,"file":"id-mapping.d.ts","sourceRoot":"","sources":["../src/id-mapping.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AAExE,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAGrC,KAAK,SAAS,GAAG;IAAE,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;CAAC,CAAC;AAGxC;;;;GAIG;AACH,qBAAa,SAAS;IAElB,SAAS,EAAE,SAAS,CAAC;gBACT,SAAS,EAAE,SAAS;IAIhC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS;IAOzB,SAAS,OAAQ,EAAE,KAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAGzB;IAEpB,SAAS,mBAAoB,cAAc,KAAG,UAAU,SAAS,CAAC,CAGT;IAEzD,UAAU,CAAC,IAAI,EAAE,SAAS;CAM7B"}
@@ -22,6 +22,12 @@ import { unresolved } from "@lionweb/core";
22
22
  */
23
23
  export class IdMapping {
24
24
  constructor(nodesById) {
25
+ this.tryFromId = (id) => id in this.nodesById
26
+ ? this.nodesById[id]
27
+ : undefined;
28
+ this.fromRefId = (idOrUnresolved) => idOrUnresolved === null
29
+ ? null
30
+ : (this.nodesById[idOrUnresolved] ?? unresolved);
25
31
  this.nodesById = { ...nodesById };
26
32
  }
27
33
  fromId(id) {
@@ -30,11 +36,6 @@ export class IdMapping {
30
36
  }
31
37
  return this.nodesById[id];
32
38
  }
33
- fromRefId(idOrUnresolved) {
34
- return idOrUnresolved === null
35
- ? null
36
- : (this.nodesById[idOrUnresolved] ?? unresolved);
37
- }
38
39
  updateWith(node) {
39
40
  this.nodesById[node.id] = node;
40
41
  node.children // recurse into all children
@@ -1 +1 @@
1
- {"version":3,"file":"id-mapping.js","sourceRoot":"","sources":["../src/id-mapping.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,EAAgC,UAAU,EAAC,MAAM,eAAe,CAAC;AAQxE;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAGlB,YAAY,SAAoB;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,SAAS,EAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,EAAM;QACT,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,cAA8B;QACpC,OAAO,cAAc,KAAK,IAAI;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAG,4BAA4B;aACvC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;CAEJ"}
1
+ {"version":3,"file":"id-mapping.js","sourceRoot":"","sources":["../src/id-mapping.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,EAAgC,UAAU,EAAC,MAAM,eAAe,CAAC;AAQxE;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAGlB,YAAY,SAAoB;QAWhC,cAAS,GAAG,CAAC,EAAM,EAA2B,EAAE,CAC5C,EAAE,IAAI,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpB,CAAC,CAAC,SAAS,CAAC;QAEpB,cAAS,GAAG,CAAC,cAA8B,EAAwB,EAAE,CACjE,cAAc,KAAK,IAAI;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC;QAlBrD,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,SAAS,EAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,EAAM;QACT,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAYD,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAG,4BAA4B;aACvC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;CAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/class-core",
3
- "version": "0.6.13-beta.4",
3
+ "version": "0.6.13-beta.7",
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",
@@ -25,7 +25,7 @@
25
25
  "release-beta": "npm publish --tag beta"
26
26
  },
27
27
  "dependencies": {
28
- "@lionweb/core": "0.6.13-beta.4",
28
+ "@lionweb/core": "0.6.13-beta.7",
29
29
  "littoral-templates": "0.3.0",
30
30
  "mobx": "6.13.7"
31
31
  },
package/src/id-mapping.ts CHANGED
@@ -42,11 +42,15 @@ export class IdMapping {
42
42
  return this.nodesById[id];
43
43
  }
44
44
 
45
- fromRefId(idOrUnresolved: IdOrUnresolved): SingleRef<INodeBase> {
46
- return idOrUnresolved === null
45
+ tryFromId = (id: Id): (INodeBase | undefined) =>
46
+ id in this.nodesById
47
+ ? this.nodesById[id]
48
+ : undefined;
49
+
50
+ fromRefId = (idOrUnresolved: IdOrUnresolved): SingleRef<INodeBase> =>
51
+ idOrUnresolved === null
47
52
  ? null
48
53
  : (this.nodesById[idOrUnresolved] ?? unresolved);
49
- }
50
54
 
51
55
  updateWith(node: INodeBase) {
52
56
  this.nodesById[node.id] = node;