Spaces:
Build error
Build error
import { ComparisonOperator } from './types' | |
import { VarType } from '@/app/components/workflow/types' | |
import type { Branch } from '@/app/components/workflow/types' | |
export const isEmptyRelatedOperator = (operator: ComparisonOperator) => { | |
return [ComparisonOperator.empty, ComparisonOperator.notEmpty, ComparisonOperator.isNull, ComparisonOperator.isNotNull, ComparisonOperator.exists, ComparisonOperator.notExists].includes(operator) | |
} | |
const notTranslateKey = [ | |
ComparisonOperator.equal, ComparisonOperator.notEqual, | |
ComparisonOperator.largerThan, ComparisonOperator.largerThanOrEqual, | |
ComparisonOperator.lessThan, ComparisonOperator.lessThanOrEqual, | |
] | |
export const isComparisonOperatorNeedTranslate = (operator?: ComparisonOperator) => { | |
if (!operator) | |
return false | |
return !notTranslateKey.includes(operator) | |
} | |
export const getOperators = (type?: VarType, file?: { key: string }) => { | |
const isFile = !!file | |
if (isFile) { | |
const { key } = file | |
switch (key) { | |
case 'name': | |
return [ | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
ComparisonOperator.startWith, | |
ComparisonOperator.endWith, | |
ComparisonOperator.is, | |
ComparisonOperator.isNot, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
case 'type': | |
return [ | |
ComparisonOperator.in, | |
ComparisonOperator.notIn, | |
] | |
case 'size': | |
return [ | |
ComparisonOperator.largerThan, | |
ComparisonOperator.largerThanOrEqual, | |
ComparisonOperator.lessThan, | |
ComparisonOperator.lessThanOrEqual, | |
] | |
case 'extension': | |
return [ | |
ComparisonOperator.is, | |
ComparisonOperator.isNot, | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
] | |
case 'mime_type': | |
return [ | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
ComparisonOperator.startWith, | |
ComparisonOperator.endWith, | |
ComparisonOperator.is, | |
ComparisonOperator.isNot, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
case 'transfer_method': | |
return [ | |
ComparisonOperator.in, | |
ComparisonOperator.notIn, | |
] | |
case 'url': | |
return [ | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
ComparisonOperator.startWith, | |
ComparisonOperator.endWith, | |
ComparisonOperator.is, | |
ComparisonOperator.isNot, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
} | |
return [] | |
} | |
switch (type) { | |
case VarType.string: | |
return [ | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
ComparisonOperator.startWith, | |
ComparisonOperator.endWith, | |
ComparisonOperator.is, | |
ComparisonOperator.isNot, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
case VarType.number: | |
return [ | |
ComparisonOperator.equal, | |
ComparisonOperator.notEqual, | |
ComparisonOperator.largerThan, | |
ComparisonOperator.lessThan, | |
ComparisonOperator.largerThanOrEqual, | |
ComparisonOperator.lessThanOrEqual, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
case VarType.file: | |
return [ | |
ComparisonOperator.exists, | |
ComparisonOperator.notExists, | |
] | |
case VarType.arrayString: | |
case VarType.arrayNumber: | |
return [ | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
case VarType.array: | |
case VarType.arrayObject: | |
return [ | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
case VarType.arrayFile: | |
return [ | |
ComparisonOperator.contains, | |
ComparisonOperator.notContains, | |
ComparisonOperator.allOf, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
default: | |
return [ | |
ComparisonOperator.is, | |
ComparisonOperator.isNot, | |
ComparisonOperator.empty, | |
ComparisonOperator.notEmpty, | |
] | |
} | |
} | |
export const comparisonOperatorNotRequireValue = (operator?: ComparisonOperator) => { | |
if (!operator) | |
return false | |
return [ComparisonOperator.empty, ComparisonOperator.notEmpty, ComparisonOperator.isNull, ComparisonOperator.isNotNull, ComparisonOperator.exists, ComparisonOperator.notExists].includes(operator) | |
} | |
export const branchNameCorrect = (branches: Branch[]) => { | |
const branchLength = branches.length | |
if (branchLength < 2) | |
throw new Error('if-else node branch number must than 2') | |
if (branchLength === 2) { | |
return branches.map((branch) => { | |
return { | |
...branch, | |
name: branch.id === 'false' ? 'ELSE' : 'IF', | |
} | |
}) | |
} | |
return branches.map((branch, index) => { | |
return { | |
...branch, | |
name: branch.id === 'false' ? 'ELSE' : `CASE ${index + 1}`, | |
} | |
}) | |
} | |