diff --git a/packages/variables/codeRunners.ts b/packages/variables/codeRunners.ts index c2a1d1975..3818d3b3c 100644 --- a/packages/variables/codeRunners.ts +++ b/packages/variables/codeRunners.ts @@ -47,7 +47,7 @@ export const createHttpReqResponseMappingRunner = (response: any) => { } } -const parseTransferrableValue = (value: unknown) => { +export const parseTransferrableValue = (value: unknown) => { if (typeof value === 'object') { return new ivm.ExternalCopy(value).copyInto() } diff --git a/packages/variables/executeFunction.ts b/packages/variables/executeFunction.ts index 7055b7889..5f23fe650 100644 --- a/packages/variables/executeFunction.ts +++ b/packages/variables/executeFunction.ts @@ -5,6 +5,7 @@ import { isDefined } from '@typebot.io/lib' import { safeStringify } from '@typebot.io/lib/safeStringify' import { Variable } from './types' import ivm from 'isolated-vm' +import { parseTransferrableValue } from './codeRunners' const defaultTimeout = 10 * 1000 @@ -59,7 +60,7 @@ export const executeFunction = async ({ ] ) args.forEach(({ id, value }) => { - jail.setSync(id, value) + jail.setSync(id, parseTransferrableValue(value)) }) const run = (code: string) => context.evalClosure(