mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-02 05:10:39 +08:00
feat: add necessary store api
This commit is contained in:
parent
ea40cf5bcc
commit
625a8cc371
@ -25,6 +25,9 @@ type CurrentVarsActions = {
|
|||||||
setNodeVars: (nodeId: string, payload: NodeVars) => void
|
setNodeVars: (nodeId: string, payload: NodeVars) => void
|
||||||
clearNodeVars: (nodeId: string) => void
|
clearNodeVars: (nodeId: string) => void
|
||||||
getNodeVars: (nodeId: string) => NodeVars | undefined
|
getNodeVars: (nodeId: string) => NodeVars | undefined
|
||||||
|
hasNodeVars: (nodeId: string) => boolean
|
||||||
|
setVar: (nodeId: string, key: string, value: any) => void
|
||||||
|
getVar: (nodeId: string, key: string) => any
|
||||||
}
|
}
|
||||||
|
|
||||||
type CurrentVarsStore = CurrentVarsState & CurrentVarsActions
|
type CurrentVarsStore = CurrentVarsState & CurrentVarsActions
|
||||||
@ -79,6 +82,36 @@ export const createCurrentVarsStore = () => {
|
|||||||
const nodes = get().nodes
|
const nodes = get().nodes
|
||||||
return nodes.find(node => node.id === nodeId)
|
return nodes.find(node => node.id === nodeId)
|
||||||
},
|
},
|
||||||
|
hasNodeVars: (nodeId) => {
|
||||||
|
return !!get().getNodeVars(nodeId)
|
||||||
|
},
|
||||||
|
setVar: (nodeId, key, value) => {
|
||||||
|
set(produce((state: CurrentVarsStore) => {
|
||||||
|
// eslint-disable-next-line sonarjs/no-nested-functions
|
||||||
|
const nodes = state.nodes.map((node) => {
|
||||||
|
if (node.id === nodeId) {
|
||||||
|
return produce(node, (draft) => {
|
||||||
|
const index = draft.vars.findIndex(v => v.key === key)
|
||||||
|
if (index !== -1)
|
||||||
|
draft.vars[index].value = value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return node
|
||||||
|
})
|
||||||
|
state.nodes = nodes
|
||||||
|
}))
|
||||||
|
},
|
||||||
|
getVar(nodeId, key) {
|
||||||
|
const node = get().getNodeVars(nodeId)
|
||||||
|
if (!node)
|
||||||
|
return undefined
|
||||||
|
|
||||||
|
const variable = node.vars.find(v => v.key === key)
|
||||||
|
if (!variable)
|
||||||
|
return undefined
|
||||||
|
|
||||||
|
return variable.value
|
||||||
|
},
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ type LastRunActions = {
|
|||||||
setInfos: (vars: NodeInfo[]) => void
|
setInfos: (vars: NodeInfo[]) => void
|
||||||
getInfos: () => NodeInfo[]
|
getInfos: () => NodeInfo[]
|
||||||
getNodeInfo: (nodeId: string) => NodeInfo | undefined
|
getNodeInfo: (nodeId: string) => NodeInfo | undefined
|
||||||
|
getVar: (nodeId: string, key: string) => any
|
||||||
}
|
}
|
||||||
|
|
||||||
type LastRunStore = LastRunState & LastRunActions
|
type LastRunStore = LastRunState & LastRunActions
|
||||||
@ -55,6 +56,17 @@ export const createLastRunStore = () => {
|
|||||||
const nodes = get().nodes
|
const nodes = get().nodes
|
||||||
return nodes.find(node => node.id === nodeId)
|
return nodes.find(node => node.id === nodeId)
|
||||||
},
|
},
|
||||||
|
getVar: (nodeId, key) => {
|
||||||
|
const node = get().getNodeInfo(nodeId)
|
||||||
|
if (!node)
|
||||||
|
return undefined
|
||||||
|
|
||||||
|
const varItem = node.vars.find(v => v.key === key)
|
||||||
|
if (!varItem)
|
||||||
|
return undefined
|
||||||
|
|
||||||
|
return varItem.value
|
||||||
|
},
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user