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
40 changes: 26 additions & 14 deletions entrypoint/mapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {
ValidationFlow,
SubFlow as TucanaSubFlow,
SubFlowSetting as TucanaSubFlowSetting,
NodeValue as TucanaNodeValue,
} from "@code0-tech/tucana/shared";
import {toAllowedValue} from "@code0-tech/tucana/helpers";

Expand Down Expand Up @@ -79,20 +80,34 @@ function mapNodeFunction(nodeFunction: TucanaNodeFunction): NodeFunction {
}

function mapNodeParameter(nodeParameter: TucanaNodeParameter): NodeParameter {
const value = mapNodeValue(nodeParameter.value!);

return {
id: gid('NodeParameter', nodeParameter.databaseId) as NodeParameter['id'],
value
}
}

function mapNodeValue(tucanaNodeValue: TucanaNodeValue): NodeParameterValue {
let value: NodeParameterValue = {}
const nodeParameterValue = nodeParameter.value?.value
const nodeValue = tucanaNodeValue.value

if (nodeParameterValue?.oneofKind === 'literalValue') {
if (nodeValue?.oneofKind === 'literalValue') {
value = {
__typename: 'LiteralValue',
value: toAllowedValue(nodeParameterValue.literalValue)
value: toAllowedValue(nodeValue.literalValue.value!),
references: nodeValue.literalValue.references.map(r => ({
signature: r.signature,
value: mapNodeValue(r.value!)
}))

};
} else if (nodeParameterValue?.oneofKind === 'referenceValue') {
const target = nodeParameterValue.referenceValue.target;
} else if (nodeValue?.oneofKind === 'referenceValue') {
const target = nodeValue.referenceValue.target;

value = {
__typename: 'ReferenceValue',
referencePath: nodeParameterValue.referenceValue.paths.map(p => ({
referencePath: nodeValue.referenceValue.paths.map(p => ({
__typename: 'ReferencePath',
path: p.path,
arrayIndex: Number(p.arrayIndex)
Expand All @@ -106,14 +121,11 @@ function mapNodeParameter(nodeParameter: TucanaNodeParameter): NodeParameter {
value.parameterIndex = Number(target.inputType.parameterIndex)
value.inputIndex = Number(target.inputType.inputIndex)
}
} else if (nodeParameterValue?.oneofKind === 'subFlow') {
value = mapSubFlow(nodeParameterValue.subFlow);
} else if (nodeValue?.oneofKind === 'subFlow') {
value = mapSubFlow(nodeValue.subFlow);
}

return {
id: gid('NodeParameter', nodeParameter.databaseId) as NodeParameter['id'],
value
}
return value;
}

function mapFunctionDefinition(functionDefinition: TucanaFunctionDefinition): FunctionDefinition {
Expand Down Expand Up @@ -141,9 +153,9 @@ function mapSubFlow(subFlow: TucanaSubFlow): SubFlowValue {

if (subFlow.executionReference.oneofKind === 'startingNodeId') {
value.startingNodeId = gid('NodeFunction', subFlow.executionReference.startingNodeId) as NodeFunction['id'];
} else if (subFlow.executionReference.oneofKind === 'functionIdentifier') {
} else if (subFlow.executionReference.oneofKind === 'function') {
value.functionDefinition = {
identifier: subFlow.executionReference.functionIdentifier
identifier: subFlow.executionReference.function.functionIdentifier,
} as FunctionDefinition;
}

Expand Down
12 changes: 6 additions & 6 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.80",
"@code0-tech/tucana": "0.0.82",
"@protobuf-ts/runtime": "^2.11.1"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions gem/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ PATH
base64 (~> 0.3)
json (~> 2.19)
open3 (~> 0.2)
tucana (~> 0.0, >= 0.0.78)
tucana (~> 0.0, >= 0.0.82)

GEM
remote: https://rubygems.org/
Expand Down Expand Up @@ -101,7 +101,7 @@ GEM
rubyzip (2.4.1)
stringio (3.2.0)
tsort (0.2.0)
tucana (0.0.80)
tucana (0.0.82)
grpc (~> 1.64)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
Expand Down
7 changes: 5 additions & 2 deletions gem/spec/support/protobuf_factories.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@ def build_flow(node_functions:, starting_node_id: 1)
)
end

def literal_value(value)
def literal_value(value, references = [])
Tucana::Shared::NodeValue.new(
literal_value: Tucana::Shared::Value.from_ruby(value)
literal_value: Tucana::Shared::LiteralValue.new(
value: Tucana::Shared::Value.from_ruby(value),
references: references
)
)
end

Expand Down
2 changes: 1 addition & 1 deletion gem/triangulum.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
spec.add_dependency 'base64', '~> 0.3'
spec.add_dependency 'json', '~> 2.19'
spec.add_dependency 'open3', '~> 0.2'
spec.add_dependency 'tucana', '~> 0.0', '>= 0.0.78'
spec.add_dependency 'tucana', '~> 0.0', '>= 0.0.82'

spec.add_development_dependency 'irb', '~> 1.17'
spec.add_development_dependency 'rake', '~> 13.0'
Expand Down