default.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { BlockEnum } from '../../types'
  2. import type { NodeDefault } from '../../types'
  3. import { type AssignerNodeType, WriteMode } from './types'
  4. import { ALL_CHAT_AVAILABLE_BLOCKS, ALL_COMPLETION_AVAILABLE_BLOCKS } from '@/app/components/workflow/constants'
  5. const i18nPrefix = 'workflow.errorMsg'
  6. const nodeDefault: NodeDefault<AssignerNodeType> = {
  7. defaultValue: {
  8. assigned_variable_selector: [],
  9. write_mode: WriteMode.Overwrite,
  10. input_variable_selector: [],
  11. },
  12. getAvailablePrevNodes(isChatMode: boolean) {
  13. const nodes = isChatMode
  14. ? ALL_CHAT_AVAILABLE_BLOCKS
  15. : ALL_COMPLETION_AVAILABLE_BLOCKS.filter(type => type !== BlockEnum.End)
  16. return nodes
  17. },
  18. getAvailableNextNodes(isChatMode: boolean) {
  19. const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS
  20. return nodes
  21. },
  22. checkValid(payload: AssignerNodeType, t: any) {
  23. let errorMessages = ''
  24. const {
  25. assigned_variable_selector: assignedVarSelector,
  26. write_mode: writeMode,
  27. input_variable_selector: toAssignerVarSelector,
  28. } = payload
  29. if (!errorMessages && !assignedVarSelector?.length)
  30. errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t('workflow.nodes.assigner.assignedVariable') })
  31. if (!errorMessages && writeMode !== WriteMode.Clear) {
  32. if (!toAssignerVarSelector?.length)
  33. errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t('workflow.nodes.assigner.variable') })
  34. }
  35. return {
  36. isValid: !errorMessages,
  37. errorMessage: errorMessages,
  38. }
  39. },
  40. }
  41. export default nodeDefault