default.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { BlockEnum } from '../../types'
  2. import type { NodeDefault } from '../../types'
  3. import type { IterationNodeType } from './types'
  4. import { ALL_CHAT_AVAILABLE_BLOCKS, ALL_COMPLETION_AVAILABLE_BLOCKS } from '@/app/components/workflow/constants'
  5. const i18nPrefix = 'workflow'
  6. const nodeDefault: NodeDefault<IterationNodeType> = {
  7. defaultValue: {
  8. start_node_id: '',
  9. iterator_selector: [],
  10. output_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: IterationNodeType, t: any) {
  23. let errorMessages = ''
  24. if (!errorMessages && (!payload.iterator_selector || payload.iterator_selector.length === 0))
  25. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.iteration.input`) })
  26. if (!errorMessages && (!payload.output_selector || payload.output_selector.length === 0))
  27. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.iteration.output`) })
  28. return {
  29. isValid: !errorMessages,
  30. errorMessage: errorMessages,
  31. }
  32. },
  33. }
  34. export default nodeDefault