feat: handle sys var to run

This commit is contained in:
Joel 2024-03-18 20:40:38 +08:00
parent 31b6383697
commit 601e888fde
4 changed files with 12 additions and 3 deletions

View File

@ -152,7 +152,12 @@ const formatItem = (item: any, isChatMode: boolean, filterVar: (payload: Var, se
export const toNodeOutputVars = (nodes: any[], isChatMode: boolean, filterVar = (_payload: Var, _selector: ValueSelector) => true): NodeOutPutVar[] => {
const res = nodes
.filter(node => SUPPORT_OUTPUT_VARS_NODE.includes(node.data.type))
.map(node => formatItem(node, isChatMode, filterVar))
.map((node) => {
return {
...formatItem(node, isChatMode, filterVar),
isStartNode: node.data.type === BlockEnum.Start,
}
})
.filter(item => item.vars.length > 0)
return res
}

View File

@ -62,9 +62,12 @@ const useOneStepRun = <T>({
const allOutputVars = toNodeOutputVars(getBeforeNodesInSameBranch(id), isChatMode)
const getVar = (valueSelector: ValueSelector): Var | undefined => {
let res: Var | undefined
const targetVar = allOutputVars.find(v => v.nodeId === valueSelector[0])
const isSystem = valueSelector[0] === 'sys'
const targetVar = isSystem ? allOutputVars.find(item => !!item.isStartNode) : allOutputVars.find(v => v.nodeId === valueSelector[0])
if (!targetVar)
return undefined
if (isSystem)
return targetVar.vars.find(item => item.variable.split('.')[1] === valueSelector[1])
let curr: any = targetVar.vars
valueSelector.slice(1).forEach((key, i) => {

View File

@ -160,7 +160,7 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
/>
<VarItem
name='headers'
type='sting'
type='object'
description={t(`${i18nPrefix}.outputVars.headers`)}
/>
</>

View File

@ -157,6 +157,7 @@ export type NodeOutPutVar = {
nodeId: string
title: string
vars: Var[]
isStartNode?: boolean
}
export type Block = {