Skip to content

Commit ead2413

Browse files
feat: Add utility functions for defining different types of nodes
1 parent 8cef0ce commit ead2413

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import {
2+
type FlowNodeDefinition,
3+
type AsyncNodeDefinition,
4+
type EventNodeDefinition,
5+
type FunctionNodeDefinition,
6+
type NodeDefinition,
7+
} from '../../../types/grimoire'
8+
9+
import {
10+
makeFlowNodeDefinition,
11+
makeAsyncNodeDefinition,
12+
makeEventNodeDefinition,
13+
makeFunctionNodeDefinition,
14+
} from '@magickml/behave-graph'
15+
16+
import consola from 'consola'
17+
18+
export function defineFlowNode(definition: FlowNodeDefinition) {
19+
return makeFlowNodeDefinition(definition)
20+
}
21+
22+
export function defineAsyncNode(definition: AsyncNodeDefinition) {
23+
return makeAsyncNodeDefinition(definition)
24+
}
25+
26+
export function defineEventNode(definition: EventNodeDefinition) {
27+
return makeEventNodeDefinition(definition)
28+
}
29+
30+
export function defineFunctionNode(definition: FunctionNodeDefinition) {
31+
return makeFunctionNodeDefinition(definition)
32+
}
33+
34+
export function defineNode(definition: NodeDefinition) {
35+
if ('triggered' in definition) {
36+
return defineFlowNode(definition)
37+
}
38+
if ('init' in definition) {
39+
return defineEventNode(definition)
40+
}
41+
if ('exec' in definition) {
42+
return defineFunctionNode(definition)
43+
}
44+
return defineAsyncNode(definition)
45+
}

0 commit comments

Comments
 (0)