Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions entrypoint/mapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
NodeParameterValue,
ParameterDefinition,
SubFlowValue,
SubFlowValueSetting,
SubFlowValueParameter,
} from "@code0-tech/sagittarius-graphql-types";
import {
DefinitionDataType,
Expand All @@ -19,7 +19,7 @@ import {
FlowSetting as TucanaFlowSetting,
ValidationFlow,
SubFlow as TucanaSubFlow,
SubFlowSetting as TucanaSubFlowSetting,
SubFlowParameters as TucanaSubFlowParameters,
NodeValue as TucanaNodeValue,
} from "@code0-tech/tucana/shared";
import {toAllowedValue} from "@code0-tech/tucana/helpers";
Expand Down Expand Up @@ -149,7 +149,9 @@ function mapSubFlow(subFlow: TucanaSubFlow): SubFlowValue {
const value: SubFlowValue = {
__typename: 'SubFlowValue',
signature: subFlow.signature,
settings: subFlow.settings.map(mapSubFlowSetting)
name: subFlow.name,
description: subFlow.description,
parameters: subFlow.parameters.map(mapSubFlowParameter)
};

if (subFlow.executionReference.oneofKind === 'startingNodeId') {
Expand All @@ -163,13 +165,12 @@ function mapSubFlow(subFlow: TucanaSubFlow): SubFlowValue {
return value;
}

function mapSubFlowSetting(setting: TucanaSubFlowSetting): SubFlowValueSetting {
function mapSubFlowParameter(parameter: TucanaSubFlowParameters): SubFlowValueParameter {
return {
__typename: 'SubFlowValueSetting',
identifier: setting.identifier,
defaultValue: setting.defaultValue ? toAllowedValue(setting.defaultValue) : null,
optional: setting.optional,
hidden: setting.hidden
__typename: 'SubFlowValueParameter',
identifier: parameter.identifier,
value: parameter.value ? mapNodeValue(parameter.value) : null,
cast: parameter.cast
};
}

Expand Down
14 changes: 7 additions & 7 deletions entrypoint/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion entrypoint/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"private": true,
"dependencies": {
"@code0-tech/triangulum": "file:../",
"@code0-tech/tucana": "0.0.82",
"@code0-tech/tucana": "0.0.83",
"@protobuf-ts/runtime": "^2.11.1"
},
"devDependencies": {
Expand Down
10 changes: 5 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"build": "vite build"
},
"devDependencies": {
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2885139946-ac1a11a4585cf092d6644235d94827ba5a5acd1c",
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-3014443839-177a963e8cd45fa44b5bd005221e209586e32d48",
"@types/node": "^25.6.0",
"@typescript/vfs": "^1.6.4",
"lossless-json": "^4.3.1",
Expand All @@ -46,7 +46,7 @@
"vitest": "^4.1.8"
},
"peerDependencies": {
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-2885139946-ac1a11a4585cf092d6644235d94827ba5a5acd1c",
"@code0-tech/sagittarius-graphql-types": "0.0.0-experimental-3014443839-177a963e8cd45fa44b5bd005221e209586e32d48",
"@typescript/vfs": "^1.6.4",
"lossless-json": "^4.3.0",
"ts-json-schema-generator": "^2.9.0",
Expand Down
33 changes: 19 additions & 14 deletions src/util/subflows.util.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import ts from "typescript";
import {FunctionDefinition, SubFlowValue, SubFlowValueSetting} from "@code0-tech/sagittarius-graphql-types";
import {FunctionDefinition, SubFlowValue, SubFlowValueParameter} from "@code0-tech/sagittarius-graphql-types";
import {isSubFlow} from "./schema.util";
import {
EXACT_MATCH,
Expand Down Expand Up @@ -56,7 +56,7 @@ export const getSubFlows = (
* Type compatibility is checked by comparing the function type against the expected
* parameter type (e.g., a function signature like (number: number) => void).
* If compatible, the function is converted into a SubFlowValue object with its
* associated parameter settings.
* associated parameters.
*
* @param {ts.TypeChecker} checker - The TypeScript type checker for type analysis
* @param {ts.FunctionDeclaration} func - The function declaration to check
Expand Down Expand Up @@ -153,30 +153,35 @@ const normalizeFunctionName = (rawName: string | undefined): string => {
/**
* Constructs a SubFlowValue object from a function definition.
*
* This function transforms a FunctionDefinition into a SubFlowValue with all
* its parameter settings properly configured. Each parameter from the function
* definition is converted into a SubFlowValueSetting object that includes
* metadata such as identifier, default values, hidden status, and optional status.
* This function transforms a FunctionDefinition into a SubFlowValue with one
* SubFlowValueParameter per parameter of the function definition. Each parameter
* carries the definition's identifier and, where the definition declares one, its
* default value as a LiteralValue — mirroring how {@link buildNodeParameter}
* pre-fills a node's parameters. A parameter without a default is left unfilled
* (`value: null`) for the consumer to bind.
*
* @param {FunctionDefinition} functionDefinition - The function definition to convert
*
* @returns {SubFlowValue} A SubFlowValue object with the function definition
* and all parameter settings configured
* and all parameters configured
*/
const buildSubFlowValue = (functionDefinition: FunctionDefinition): SubFlowValue => {
return {
__typename: "SubFlowValue",
functionDefinition: functionDefinition,
signature: functionDefinition.signature,
settings: functionDefinition.parameterDefinitions?.nodes?.map(param => {
const setting: SubFlowValueSetting = {
__typename: "SubFlowValueSetting",
parameters: functionDefinition.parameterDefinitions?.nodes?.map(param => {
const parameter: SubFlowValueParameter = {
__typename: "SubFlowValueParameter",
identifier: param?.identifier,
defaultValue: param?.defaultValue ?? null,
hidden: param?.hidden ?? false,
optional: param?.optional ?? false,
value: param?.defaultValue
? {
__typename: "LiteralValue",
value: param.defaultValue.value,
}
: null,
}
return setting
return parameter
})
}
}
Loading