77 NodeParameter ,
88 NodeParameterValue ,
99 ParameterDefinition ,
10+ SubFlowValue ,
11+ SubFlowValueSetting ,
1012} from "@code0-tech/sagittarius-graphql-types" ;
1113import {
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" ;
2024import { toAllowedValue } from "@code0-tech/tucana/helpers" ;
2125
@@ -55,15 +59,15 @@ function mapFlow(flow: ValidationFlow): Flow {
5559function 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
6468function 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+
134163function mapDataType ( dataType : DefinitionDataType ) : DataType {
135164 return {
136165 identifier : dataType . identifier ,
0 commit comments