mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-04 12:53:38 +00:00 
			
		
		
		
	Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: -LAN- <laipz8200@outlook.com>
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { AssignerNodeType } from './types'
 | 
						|
import { AssignerNodeInputType, WriteMode } from './types'
 | 
						|
 | 
						|
export const checkNodeValid = (payload: AssignerNodeType) => {
 | 
						|
  return true
 | 
						|
}
 | 
						|
 | 
						|
export const formatOperationName = (type: string) => {
 | 
						|
  if (type === 'over-write')
 | 
						|
    return 'Overwrite'
 | 
						|
  return type.charAt(0).toUpperCase() + type.slice(1)
 | 
						|
}
 | 
						|
 | 
						|
type Item = {
 | 
						|
  value: string | number
 | 
						|
  name: string
 | 
						|
}
 | 
						|
 | 
						|
export const getOperationItems = (
 | 
						|
  assignedVarType?: string,
 | 
						|
  writeModeTypes?: WriteMode[],
 | 
						|
  writeModeTypesArr?: WriteMode[],
 | 
						|
  writeModeTypesNum?: WriteMode[],
 | 
						|
): Item[] => {
 | 
						|
  if (assignedVarType?.startsWith('array') && writeModeTypesArr) {
 | 
						|
    return writeModeTypesArr.map(type => ({
 | 
						|
      value: type,
 | 
						|
      name: type,
 | 
						|
    }))
 | 
						|
  }
 | 
						|
 | 
						|
  if (assignedVarType === 'number' && writeModeTypes && writeModeTypesNum) {
 | 
						|
    return [
 | 
						|
      ...writeModeTypes.map(type => ({
 | 
						|
        value: type,
 | 
						|
        name: type,
 | 
						|
      })),
 | 
						|
      { value: 'divider', name: 'divider' } as Item,
 | 
						|
      ...writeModeTypesNum.map(type => ({
 | 
						|
        value: type,
 | 
						|
        name: type,
 | 
						|
      })),
 | 
						|
    ]
 | 
						|
  }
 | 
						|
 | 
						|
  if (writeModeTypes && ['string', 'object'].includes(assignedVarType || '')) {
 | 
						|
    return writeModeTypes.map(type => ({
 | 
						|
      value: type,
 | 
						|
      name: type,
 | 
						|
    }))
 | 
						|
  }
 | 
						|
 | 
						|
  return []
 | 
						|
}
 | 
						|
 | 
						|
const convertOldWriteMode = (oldMode: string): WriteMode => {
 | 
						|
  switch (oldMode) {
 | 
						|
    case 'over-write':
 | 
						|
      return WriteMode.overwrite
 | 
						|
    case 'append':
 | 
						|
      return WriteMode.append
 | 
						|
    case 'clear':
 | 
						|
      return WriteMode.clear
 | 
						|
    default:
 | 
						|
      return WriteMode.overwrite
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
export const convertV1ToV2 = (payload: any): AssignerNodeType => {
 | 
						|
  if (payload.version === '2' && payload.items)
 | 
						|
    return payload as AssignerNodeType
 | 
						|
 | 
						|
  return {
 | 
						|
    version: '2',
 | 
						|
    items: [{
 | 
						|
      variable_selector: payload.assigned_variable_selector || [],
 | 
						|
      input_type: AssignerNodeInputType.variable,
 | 
						|
      operation: convertOldWriteMode(payload.write_mode),
 | 
						|
      value: payload.input_variable_selector || [],
 | 
						|
    }],
 | 
						|
    ...payload,
 | 
						|
  }
 | 
						|
}
 |