|
|
|
@ -84,6 +84,65 @@ const useConfig = (id: string, payload: CodeNodeType) => {
|
|
|
|
setInputs(newInputs)
|
|
|
|
setInputs(newInputs)
|
|
|
|
}, [allLanguageDefault, inputs, setInputs])
|
|
|
|
}, [allLanguageDefault, inputs, setInputs])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleSyncFunctionSignature = useCallback(() => {
|
|
|
|
|
|
|
|
const generateSyncSignatureCode = (code: string) => {
|
|
|
|
|
|
|
|
let mainDefRe
|
|
|
|
|
|
|
|
let newMainDef
|
|
|
|
|
|
|
|
if (inputs.code_language === CodeLanguage.javascript) {
|
|
|
|
|
|
|
|
mainDefRe = /function\s+main\b\s*\([\s\S]*?\)/g
|
|
|
|
|
|
|
|
newMainDef = 'function main({{var_list}})'
|
|
|
|
|
|
|
|
let param_list = inputs.variables?.map(item => item.variable).join(', ') || ''
|
|
|
|
|
|
|
|
param_list = param_list ? `{${param_list}}` : ''
|
|
|
|
|
|
|
|
newMainDef = newMainDef.replace('{{var_list}}', param_list)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else if (inputs.code_language === CodeLanguage.python3) {
|
|
|
|
|
|
|
|
mainDefRe = /def\s+main\b\s*\([\s\S]*?\)/g
|
|
|
|
|
|
|
|
const param_list = []
|
|
|
|
|
|
|
|
for (const item of inputs.variables) {
|
|
|
|
|
|
|
|
let param = item.variable
|
|
|
|
|
|
|
|
let param_type = ''
|
|
|
|
|
|
|
|
switch (item.value_type) {
|
|
|
|
|
|
|
|
case VarType.string:
|
|
|
|
|
|
|
|
param_type = ': str'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
case VarType.number:
|
|
|
|
|
|
|
|
param_type = ': float'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
case VarType.object:
|
|
|
|
|
|
|
|
param_type = ': dict'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
case VarType.array:
|
|
|
|
|
|
|
|
param_type = ': list'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
case VarType.arrayNumber:
|
|
|
|
|
|
|
|
param_type = ': list[float]'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
case VarType.arrayString:
|
|
|
|
|
|
|
|
param_type = ': list[str]'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
case VarType.arrayObject:
|
|
|
|
|
|
|
|
param_type = ': list[dict]'
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
param += param_type
|
|
|
|
|
|
|
|
param_list.push(`${param}`)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
newMainDef = `def main(${param_list.join(', ')})`
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else { return code }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const newCode = code.replace(mainDefRe, newMainDef)
|
|
|
|
|
|
|
|
return newCode
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const newInputs = produce(inputs, (draft) => {
|
|
|
|
|
|
|
|
draft.code = generateSyncSignatureCode(draft.code)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
setInputs(newInputs)
|
|
|
|
|
|
|
|
}, [inputs, setInputs])
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
const {
|
|
|
|
handleVarsChange,
|
|
|
|
handleVarsChange,
|
|
|
|
handleAddVariable: handleAddOutputVariable,
|
|
|
|
handleAddVariable: handleAddOutputVariable,
|
|
|
|
@ -119,6 +178,7 @@ const useConfig = (id: string, payload: CodeNodeType) => {
|
|
|
|
handleVarListChange,
|
|
|
|
handleVarListChange,
|
|
|
|
handleAddVariable,
|
|
|
|
handleAddVariable,
|
|
|
|
handleRemoveVariable,
|
|
|
|
handleRemoveVariable,
|
|
|
|
|
|
|
|
handleSyncFunctionSignature,
|
|
|
|
handleCodeChange,
|
|
|
|
handleCodeChange,
|
|
|
|
handleCodeLanguageChange,
|
|
|
|
handleCodeLanguageChange,
|
|
|
|
handleVarsChange,
|
|
|
|
handleVarsChange,
|
|
|
|
|