Files
pepperplus-ui/src/pages/VisProgPage/visualProgrammingUI/NodeRegistry.ts

84 lines
2.4 KiB
TypeScript

import StartNode, { StartConnects, StartReduce } from "./nodes/StartNode";
import EndNode, { EndConnects, EndReduce } from "./nodes/EndNode";
import PhaseNode, { PhaseConnects, PhaseReduce } from "./nodes/PhaseNode";
import NormNode, { NormConnects, NormReduce } from "./nodes/NormNode";
import { EndNodeDefaults } from "./nodes/EndNode.default";
import { StartNodeDefaults } from "./nodes/StartNode.default";
import { PhaseNodeDefaults } from "./nodes/PhaseNode.default";
import { NormNodeDefaults } from "./nodes/NormNode.default";
import GoalNode, { GoalConnects, GoalReduce } from "./nodes/GoalNode";
import { GoalNodeDefaults } from "./nodes/GoalNode.default";
import TriggerNode, { TriggerConnects, TriggerReduce } from "./nodes/TriggerNode";
import { TriggerNodeDefaults } from "./nodes/TriggerNode.default";
/**
* The types of the nodes we have registered.
*/
export const NodeTypes = {
start: StartNode,
end: EndNode,
phase: PhaseNode,
norm: NormNode,
goal: GoalNode,
trigger: TriggerNode,
};
/**
* The default functions of the nodes we have registered.
* These are defined in the <node>.default.ts files.
*/
export const NodeDefaults = {
start: StartNodeDefaults,
end: EndNodeDefaults,
phase: PhaseNodeDefaults,
norm: NormNodeDefaults,
goal: GoalNodeDefaults,
trigger: TriggerNodeDefaults,
};
/**
* The reduce functions of the nodes we have registered.
*/
export const NodeReduces = {
start: StartReduce,
end: EndReduce,
phase: PhaseReduce,
norm: NormReduce,
goal: GoalReduce,
trigger: TriggerReduce,
}
/**
* The connection functionality of the nodes we have registered.
*/
export const NodeConnects = {
start: StartConnects,
end: EndConnects,
phase: PhaseConnects,
norm: NormConnects,
goal: GoalConnects,
trigger: TriggerConnects,
}
/**
* Functions that define whether a node should be deleted, currently constant only for start and end.
* Any node types that aren't mentioned are 'true', and can be deleted by default.
*/
export const NodeDeletes = {
start: () => false,
end: () => false,
test: () => false, // Used for coverage of universal/ undefined nodes
}
/**
* Defines which types are variables in the phase node-
* any node that is NOT mentioned here, is automatically seen as a variable of a phase.
*/
export const NodesInPhase = {
start: () => false,
end: () => false,
phase: () => false,
test: () => false, // Used for coverage of universal/ undefined nodes
}