mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 02:42:59 +00:00 
			
		
		
		
	 7753ba2d37
			
		
	
	
		7753ba2d37
		
			
		
	
	
	
	
		
			
			Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Yeuoly <admin@srmxy.cn> Co-authored-by: JzoNg <jzongcode@gmail.com> Co-authored-by: StyleZhang <jasonapring2015@outlook.com> Co-authored-by: jyong <jyong@dify.ai> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: jyong <718720800@qq.com>
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type { ToolCredential, ToolParameter } from '../types'
 | |
| const toType = (type: string) => {
 | |
|   switch (type) {
 | |
|     case 'string':
 | |
|       return 'text-input'
 | |
|     case 'number':
 | |
|       return 'number-input'
 | |
|     default:
 | |
|       return type
 | |
|   }
 | |
| }
 | |
| export const toolParametersToFormSchemas = (parameters: ToolParameter[]) => {
 | |
|   if (!parameters)
 | |
|     return []
 | |
| 
 | |
|   const formSchemas = parameters.map((parameter) => {
 | |
|     return {
 | |
|       ...parameter,
 | |
|       variable: parameter.name,
 | |
|       type: toType(parameter.type),
 | |
|       _type: parameter.type,
 | |
|       show_on: [],
 | |
|       options: parameter.options?.map((option) => {
 | |
|         return {
 | |
|           ...option,
 | |
|           show_on: [],
 | |
|         }
 | |
|       }),
 | |
|       tooltip: parameter.human_description,
 | |
|     }
 | |
|   })
 | |
|   return formSchemas
 | |
| }
 | |
| 
 | |
| export const toolCredentialToFormSchemas = (parameters: ToolCredential[]) => {
 | |
|   if (!parameters)
 | |
|     return []
 | |
| 
 | |
|   const formSchemas = parameters.map((parameter) => {
 | |
|     return {
 | |
|       ...parameter,
 | |
|       variable: parameter.name,
 | |
|       label: parameter.label,
 | |
|       tooltip: parameter.help,
 | |
|       show_on: [],
 | |
|       options: parameter.options?.map((option) => {
 | |
|         return {
 | |
|           ...option,
 | |
|           show_on: [],
 | |
|         }
 | |
|       }),
 | |
|     }
 | |
|   })
 | |
|   return formSchemas
 | |
| }
 | |
| 
 | |
| export const addDefaultValue = (value: Record<string, any>, formSchemas: { variable: string; default?: any }[]) => {
 | |
|   const newValues = { ...value }
 | |
|   formSchemas.forEach((formSchema) => {
 | |
|     const itemValue = value[formSchema.variable]
 | |
|     if ((formSchema.default !== undefined) && (value === undefined || itemValue === null || itemValue === '' || itemValue === undefined))
 | |
|       newValues[formSchema.variable] = formSchema.default
 | |
|   })
 | |
|   return newValues
 | |
| }
 |