mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-07-31 00:12:03 +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
|
||||
clearNodeVars: (nodeId: string) => void
|
||||
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
|
||||
@ -79,6 +82,36 @@ export const createCurrentVarsStore = () => {
|
||||
const nodes = get().nodes
|
||||
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
|
||||
getInfos: () => NodeInfo[]
|
||||
getNodeInfo: (nodeId: string) => NodeInfo | undefined
|
||||
getVar: (nodeId: string, key: string) => any
|
||||
}
|
||||
|
||||
type LastRunStore = LastRunState & LastRunActions
|
||||
@ -55,6 +56,17 @@ export const createLastRunStore = () => {
|
||||
const nodes = get().nodes
|
||||
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