You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

default.ts 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import type { NodeDefault } from '../../types'
  2. import { CodeLanguage, type CodeNodeType } from './types'
  3. import { genNodeMetaData } from '@/app/components/workflow/utils'
  4. import { BlockEnum } from '@/app/components/workflow/types'
  5. import { BlockClassificationEnum } from '@/app/components/workflow/block-selector/types'
  6. const i18nPrefix = 'workflow.errorMsg'
  7. const metaData = genNodeMetaData({
  8. classification: BlockClassificationEnum.Transform,
  9. sort: 1,
  10. type: BlockEnum.Code,
  11. })
  12. const nodeDefault: NodeDefault<CodeNodeType> = {
  13. metaData,
  14. defaultValue: {
  15. code: '',
  16. code_language: CodeLanguage.python3,
  17. variables: [],
  18. outputs: {},
  19. },
  20. checkValid(payload: CodeNodeType, t: any) {
  21. let errorMessages = ''
  22. const { code, variables } = payload
  23. if (!errorMessages && variables.filter(v => !v.variable).length > 0)
  24. errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t(`${i18nPrefix}.fields.variable`) })
  25. if (!errorMessages && variables.filter(v => !v.value_selector.length).length > 0)
  26. errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t(`${i18nPrefix}.fields.variableValue`) })
  27. if (!errorMessages && !code)
  28. errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t(`${i18nPrefix}.fields.code`) })
  29. return {
  30. isValid: !errorMessages,
  31. errorMessage: errorMessages,
  32. }
  33. },
  34. }
  35. export default nodeDefault