utils.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import type { AssignerNodeType } from './types'
  2. import { AssignerNodeInputType, WriteMode } from './types'
  3. export const checkNodeValid = (payload: AssignerNodeType) => {
  4. return true
  5. }
  6. export const formatOperationName = (type: string) => {
  7. if (type === 'over-write')
  8. return 'Overwrite'
  9. return type.charAt(0).toUpperCase() + type.slice(1)
  10. }
  11. type Item = {
  12. value: string | number
  13. name: string
  14. }
  15. export const getOperationItems = (
  16. assignedVarType?: string,
  17. writeModeTypes?: WriteMode[],
  18. writeModeTypesArr?: WriteMode[],
  19. writeModeTypesNum?: WriteMode[],
  20. ): Item[] => {
  21. if (assignedVarType?.startsWith('array') && writeModeTypesArr) {
  22. return writeModeTypesArr.map(type => ({
  23. value: type,
  24. name: type,
  25. }))
  26. }
  27. if (assignedVarType === 'number' && writeModeTypes && writeModeTypesNum) {
  28. return [
  29. ...writeModeTypes.map(type => ({
  30. value: type,
  31. name: type,
  32. })),
  33. { value: 'divider', name: 'divider' } as Item,
  34. ...writeModeTypesNum.map(type => ({
  35. value: type,
  36. name: type,
  37. })),
  38. ]
  39. }
  40. if (writeModeTypes && ['string', 'object'].includes(assignedVarType || '')) {
  41. return writeModeTypes.map(type => ({
  42. value: type,
  43. name: type,
  44. }))
  45. }
  46. return []
  47. }
  48. const convertOldWriteMode = (oldMode: string): WriteMode => {
  49. switch (oldMode) {
  50. case 'over-write':
  51. return WriteMode.overwrite
  52. case 'append':
  53. return WriteMode.append
  54. case 'clear':
  55. return WriteMode.clear
  56. default:
  57. return WriteMode.overwrite
  58. }
  59. }
  60. export const convertV1ToV2 = (payload: any): AssignerNodeType => {
  61. if (payload.version === '2' && payload.items)
  62. return payload as AssignerNodeType
  63. return {
  64. version: '2',
  65. items: [{
  66. variable_selector: payload.assigned_variable_selector || [],
  67. input_type: AssignerNodeInputType.variable,
  68. operation: convertOldWriteMode(payload.write_mode),
  69. value: payload.input_variable_selector || [],
  70. }],
  71. ...payload,
  72. }
  73. }