Files
vue-flow/src/container/NodeRenderer/utils.ts
T

28 lines
922 B
TypeScript

import DefaultNode from '../../components/Nodes/DefaultNode';
import InputNode from '../../components/Nodes/InputNode';
import OutputNode from '../../components/Nodes/OutputNode';
import wrapNode from '../../components/Nodes/wrapNode';
import { NodeTypesType } from '../../types';
export function createNodeTypes(nodeTypes: NodeTypesType): NodeTypesType {
const standardTypes: NodeTypesType = {
input: wrapNode(nodeTypes.input || InputNode),
default: wrapNode(nodeTypes.default || DefaultNode),
output: wrapNode(nodeTypes.output || OutputNode)
};
const wrappedTypes = {} as NodeTypesType;
const specialTypes: NodeTypesType = Object.keys(nodeTypes)
.filter((k) => !['input', 'default', 'output'].includes(k))
.reduce((res, key) => {
res[key] = wrapNode(nodeTypes[key] || DefaultNode);
return res;
}, wrappedTypes);
return {
...standardTypes,
...specialTypes
};
}