33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { ILiquorTreeNewNode, ILiquorTreeExistingNode } from 'liquor-tree';
|
|
import { INode } from './INode';
|
|
|
|
// Functions to translate INode to LiqourTree models and vice versa for anti-corruption
|
|
|
|
export function convertExistingToNode(liquorTreeNode: ILiquorTreeExistingNode): INode {
|
|
if (!liquorTreeNode) { throw new Error('liquorTreeNode is undefined'); }
|
|
return {
|
|
id: liquorTreeNode.id,
|
|
text: liquorTreeNode.data.text,
|
|
// selected: liquorTreeNode.states && liquorTreeNode.states.checked,
|
|
children: (!liquorTreeNode.children || liquorTreeNode.children.length === 0)
|
|
? [] : liquorTreeNode.children.map((childNode) => convertExistingToNode(childNode)),
|
|
documentationUrls: liquorTreeNode.data.documentationUrls,
|
|
};
|
|
}
|
|
|
|
export function toNewLiquorTreeNode(node: INode): ILiquorTreeNewNode {
|
|
if (!node) { throw new Error('node is undefined'); }
|
|
return {
|
|
id: node.id,
|
|
text: node.text,
|
|
state: {
|
|
checked: false,
|
|
},
|
|
children: (!node.children || node.children.length === 0) ? [] :
|
|
node.children.map((childNode) => toNewLiquorTreeNode(childNode)),
|
|
data: {
|
|
documentationUrls: node.documentationUrls,
|
|
},
|
|
};
|
|
}
|