2
0

🐛 Await support in set variable and script code

Closes #467
This commit is contained in:
Baptiste Arnaud
2023-04-17 14:20:36 +02:00
parent 5610fe0d4c
commit 918dffb4bc
2 changed files with 12 additions and 2 deletions

View File

@ -1,7 +1,13 @@
import type { ScriptToExecute } from '@typebot.io/schemas'
// eslint-disable-next-line @typescript-eslint/no-empty-function
const AsyncFunction = Object.getPrototypeOf(async function () {}).constructor
export const executeScript = async ({ content, args }: ScriptToExecute) => {
const func = Function(...args.map((arg) => arg.id), parseContent(content))
const func = AsyncFunction(
...args.map((arg) => arg.id),
parseContent(content)
)
try {
await func(...args.map((arg) => arg.value))
} catch (err) {

View File

@ -1,12 +1,15 @@
import { isNotDefined } from '@typebot.io/lib'
import type { ScriptToExecute } from '@typebot.io/schemas'
// eslint-disable-next-line @typescript-eslint/no-empty-function
const AsyncFunction = Object.getPrototypeOf(async function () {}).constructor
export const executeSetVariable = async ({
content,
args,
}: ScriptToExecute): Promise<{ replyToSend: string | undefined }> => {
try {
const func = Function(
const func = AsyncFunction(
...args.map((arg) => arg.id),
content.includes('return ') ? content : `return ${content}`
)
@ -15,6 +18,7 @@ export const executeSetVariable = async ({
replyToSend: safeStringify(replyToSend),
}
} catch (err) {
console.error(err)
return {
replyToSend: safeStringify(content),
}