From 85bcb699f8707c8b248f68be0923d09f4c2c0b10 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Mon, 27 May 2024 15:07:12 +0200 Subject: [PATCH] :bug: (script) Fix script exec when one variable is object --- packages/variables/codeRunners.ts | 2 +- packages/variables/executeFunction.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) 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(