27 lines
724 B
JavaScript
27 lines
724 B
JavaScript
import DefaultNode from './NodeTypes/DefaultNode';
|
||
import InputNode from './NodeTypes/InputNode';
|
||
import OutputNode from './NodeTypes/OutputNode';
|
||
import wrapNode from './NodeTypes/wrapNode';
|
||
|
||
export function createNodeTypes(nodeTypes) {
|
||
const standardTypes = {
|
||
input: wrapNode(nodeTypes.input || InputNode),
|
||
default: wrapNode(nodeTypes.default || DefaultNode),
|
||
output: wrapNode(nodeTypes.output || OutputNode)
|
||
};
|
||
|
||
const specialTypes = Object
|
||
.keys(nodeTypes)
|
||
.filter(k => !['input', 'default', 'output'].includes(k))
|
||
.reduce((res, key) => {
|
||
res[key] = wrapNode(nodeTypes[key] || DefaultNode);
|
||
|
||
return res;
|
||
}, {});
|
||
|
||
return {
|
||
...standardTypes,
|
||
...specialTypes
|
||
};
|
||
}
|