feat: prop picker functional for pull flows

This commit is contained in:
Ruben Fiszel
2022-07-26 12:45:00 +02:00
parent 17dfd558d5
commit 668ca4d9b1
3 changed files with 36 additions and 10 deletions
@@ -54,7 +54,7 @@
}
flowStore.subscribe((flow: Flow) => {
//setQueryWithoutLoad($page.url, 'state', btoa(JSON.stringify(flowToMode(flow, mode))))
setQueryWithoutLoad($page.url, 'state', btoa(JSON.stringify(flowToMode(flow, mode))))
})
onMount(() => {
+11 -2
View File
@@ -37,6 +37,16 @@
$: extraLib = buildExtraLib(
i === 0 ? schemaToTsType($flowStore?.schema) : objectToTsType($previewResults[i])
)
function toResults(jobs: any) {
return jobs.map((x) => {
if (x.result) {
return x.result
} else if (x.length) {
return toResults(x)
}
})
}
</script>
<li class="flex flex-row flex-shrink max-w-full mx-auto mt-16">
@@ -125,8 +135,7 @@
{mode}
schemas={$schemasStore}
on:change={(e) => {
const results = e.detail.map((x) => x.result)
previewResults.set(results)
previewResults.set(toResults(e.detail))
}}
/>
</div>
+24 -7
View File
@@ -174,21 +174,38 @@ export function getPickableProperties(
) {
const flowInputAsObject = schemaToObject(schema, args)
const flowInput =
mode === 'pull'
? Object.assign(
mode === 'pull' && i >= 1
? Object.assign(Object.assign(
{
_value: 'The current value of the iteration.',
_index: 'The current index of the iteration.'
},
flowInputAsObject
)
flowInputAsObject), previewResults[0])
: flowInputAsObject
console.log(previewResults)
let previous_result
if (i === 0 || (i == 1 && mode == 'pull')) {
previous_result = flowInput
} else if (mode == 'pull') {
previous_result = previewResults[1] ? previewResults[1][i - 2] : undefined
} else {
previous_result = previewResults[i - 1]
}
let step
if (i >= 1 && mode == 'push') {
step = Object.values(previewResults).slice(0, i)
} else if (i >= 2 && mode == 'pull') {
step = Object.values(previewResults[1] ?? {}).slice(0, i - 1)
} else {
step = []
}
const pickableProperties = {
flow_input: flowInput,
previous_result: i === 0 ? flowInput : previewResults[i - 1],
step: i >= 1 ? Object.values(previewResults).slice(0, i) : []
previous_result,
step
}
return pickableProperties