import type { AssignerNodeType } from './types'
|
import { AssignerNodeInputType, WriteMode } from './types'
|
|
export const checkNodeValid = (payload: AssignerNodeType) => {
|
return true
|
}
|
|
export const formatOperationName = (type: string) => {
|
if (type === 'over-write')
|
return 'Overwrite'
|
return type.charAt(0).toUpperCase() + type.slice(1)
|
}
|
|
type Item = {
|
value: string | number
|
name: string
|
}
|
|
export const getOperationItems = (
|
assignedVarType?: string,
|
writeModeTypes?: WriteMode[],
|
writeModeTypesArr?: WriteMode[],
|
writeModeTypesNum?: WriteMode[],
|
): Item[] => {
|
if (assignedVarType?.startsWith('array') && writeModeTypesArr) {
|
return writeModeTypesArr.map(type => ({
|
value: type,
|
name: type,
|
}))
|
}
|
|
if (assignedVarType === 'number' && writeModeTypes && writeModeTypesNum) {
|
return [
|
...writeModeTypes.map(type => ({
|
value: type,
|
name: type,
|
})),
|
{ value: 'divider', name: 'divider' } as Item,
|
...writeModeTypesNum.map(type => ({
|
value: type,
|
name: type,
|
})),
|
]
|
}
|
|
if (writeModeTypes && ['string', 'object'].includes(assignedVarType || '')) {
|
return writeModeTypes.map(type => ({
|
value: type,
|
name: type,
|
}))
|
}
|
|
return []
|
}
|
|
const convertOldWriteMode = (oldMode: string): WriteMode => {
|
switch (oldMode) {
|
case 'over-write':
|
return WriteMode.overwrite
|
case 'append':
|
return WriteMode.append
|
case 'clear':
|
return WriteMode.clear
|
default:
|
return WriteMode.overwrite
|
}
|
}
|
|
export const convertV1ToV2 = (payload: any): AssignerNodeType => {
|
if (payload.version === '2' && payload.items)
|
return payload as AssignerNodeType
|
|
return {
|
version: '2',
|
items: [{
|
variable_selector: payload.assigned_variable_selector || [],
|
input_type: AssignerNodeInputType.variable,
|
operation: convertOldWriteMode(payload.write_mode),
|
value: payload.input_variable_selector || [],
|
}],
|
...payload,
|
}
|
}
|