Skip to content

Commit 9c1e80a

Browse files
committed
feat: add mapping functions for SubFlow and SubFlowValueSetting in mapper.ts
1 parent d5995f9 commit 9c1e80a

1 file changed

Lines changed: 36 additions & 7 deletions

File tree

entrypoint/mapper.ts

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import {
77
NodeParameter,
88
NodeParameterValue,
99
ParameterDefinition,
10+
SubFlowValue,
11+
SubFlowValueSetting,
1012
} from "@code0-tech/sagittarius-graphql-types";
1113
import {
1214
DefinitionDataType,
@@ -16,6 +18,8 @@ import {
1618
ParameterDefinition as TucanaParameterDefinition,
1719
FlowSetting as TucanaFlowSetting,
1820
ValidationFlow,
21+
SubFlow as TucanaSubFlow,
22+
SubFlowSetting as TucanaSubFlowSetting,
1923
} from "@code0-tech/tucana/shared";
2024
import {toAllowedValue} from "@code0-tech/tucana/helpers";
2125

@@ -55,15 +59,15 @@ function mapFlow(flow: ValidationFlow): Flow {
5559
function mapFlowSetting(flowSetting: TucanaFlowSetting): FlowSetting {
5660
return {
5761
__typename: "FlowSetting",
58-
id: gid('FlowSetting', flowSetting.databaseId) as FlowSetting['id'],
62+
id: gid('FlowSetting', flowSetting.databaseId!) as FlowSetting['id'],
5963
flowSettingIdentifier: flowSetting.flowSettingId,
6064
value: flowSetting.value ? toAllowedValue(flowSetting.value) : null,
6165
}
6266
}
6367

6468
function mapNodeFunction(nodeFunction: TucanaNodeFunction): NodeFunction {
6569
return {
66-
id: gid('NodeFunction', nodeFunction.databaseId) as NodeFunction['id'],
70+
id: gid('NodeFunction', nodeFunction.databaseId!) as NodeFunction['id'],
6771
functionDefinition: {
6872
identifier: nodeFunction.runtimeFunctionId
6973
},
@@ -102,11 +106,8 @@ function mapNodeParameter(nodeParameter: TucanaNodeParameter): NodeParameter {
102106
value.parameterIndex = Number(target.inputType.parameterIndex)
103107
value.inputIndex = Number(target.inputType.inputIndex)
104108
}
105-
} else if (nodeParameterValue?.oneofKind === 'nodeFunctionId') {
106-
value = {
107-
__typename: 'NodeFunctionIdWrapper',
108-
id: gid('NodeFunction', nodeParameterValue.nodeFunctionId) as NodeFunction['id']
109-
}
109+
} else if (nodeParameterValue?.oneofKind === 'subFlow') {
110+
value = mapSubFlow(nodeParameterValue.subFlow);
110111
}
111112

112113
return {
@@ -131,6 +132,34 @@ function mapParameterDefinition(parameterDefinition: TucanaParameterDefinition):
131132
}
132133
}
133134

135+
function mapSubFlow(subFlow: TucanaSubFlow): SubFlowValue {
136+
const value: SubFlowValue = {
137+
__typename: 'SubFlowValue',
138+
signature: subFlow.signature,
139+
settings: subFlow.settings.map(mapSubFlowSetting)
140+
};
141+
142+
if (subFlow.executionReference.oneofKind === 'startingNodeId') {
143+
value.startingNodeId = gid('NodeFunction', subFlow.executionReference.startingNodeId) as NodeFunction['id'];
144+
} else if (subFlow.executionReference.oneofKind === 'functionIdentifier') {
145+
value.functionDefinition = {
146+
identifier: subFlow.executionReference.functionIdentifier
147+
} as FunctionDefinition;
148+
}
149+
150+
return value;
151+
}
152+
153+
function mapSubFlowSetting(setting: TucanaSubFlowSetting): SubFlowValueSetting {
154+
return {
155+
__typename: 'SubFlowValueSetting',
156+
identifier: setting.identifier,
157+
defaultValue: setting.defaultValue ? toAllowedValue(setting.defaultValue) : null,
158+
optional: setting.optional,
159+
hidden: setting.hidden
160+
};
161+
}
162+
134163
function mapDataType(dataType: DefinitionDataType): DataType {
135164
return {
136165
identifier: dataType.identifier,

0 commit comments

Comments
 (0)