Skip to content

Commit c2df489

Browse files
committed
fix(ts-model-api): avoid exception for unregistered concepts
1 parent 7143a96 commit c2df489

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

ts-model-api/src/LanguageRegistry.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type {GeneratedLanguage} from "./GeneratedLanguage";
22
import type {INodeJS} from "./INodeJS";
3-
import {ITypedNode, TypedNode} from "./TypedNode";
3+
import {ITypedNode, TypedNode, UnknownTypedNode} from "./TypedNode";
44
import type {IConceptJS} from "./IConceptJS";
55

66
export class LanguageRegistry {
@@ -42,10 +42,7 @@ export class LanguageRegistry {
4242
let conceptUID = node.getConceptUID();
4343
if (conceptUID === undefined) return new TypedNode(node)
4444
let wrapper = this.nodeWrappers.get(conceptUID)
45-
if (wrapper === undefined) {
46-
throw Error("No node wrapper found for concept " + conceptUID)
47-
}
48-
let wrapped = wrapper(node);
45+
let wrapped = wrapper === undefined ? new UnknownTypedNode(node) : wrapper(node);
4946
return this.wrapperCache ? this.wrapperCache(wrapped) : wrapped
5047
}
5148

ts-model-api/src/TypedNode.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,9 @@ export class TypedNode implements ITypedNode {
1313
export interface ITypedNode {
1414
unwrap(): INodeJS
1515
}
16+
17+
export class UnknownTypedNode extends TypedNode {
18+
constructor(node: INodeJS) {
19+
super(node);
20+
}
21+
}

0 commit comments

Comments
 (0)