mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00:00 
			
		
		
		
	 e135ffc2c1
			
		
	
	
		e135ffc2c1
		
			
		
	
	
	
	
		
			
			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,
 | |
|   }
 | |
| }
 |