mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-03 20:33:00 +00:00 
			
		
		
		
	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
 | 
						|
}
 |