Files
dify/web/app/components/workflow/utils/nested-node-id.ts

28 lines
757 B
TypeScript

export const NESTED_NODE_SEPARATOR = '_ext_'
export type NestedNodeIdParts = {
parentId: string
paramKey: string
}
export const buildNestedNodeId = (parentId: string, paramKey: string) => {
if (!parentId || !paramKey)
return ''
return `${parentId}${NESTED_NODE_SEPARATOR}${paramKey}`
}
export const parseNestedNodeId = (id?: string): NestedNodeIdParts | null => {
if (!id)
return null
const index = id.lastIndexOf(NESTED_NODE_SEPARATOR)
if (index <= 0)
return null
const parentId = id.slice(0, index)
const paramKey = id.slice(index + NESTED_NODE_SEPARATOR.length)
if (!parentId || !paramKey)
return null
return { parentId, paramKey }
}
export const isNestedNodeId = (id?: string) => Boolean(parseNestedNodeId(id))