import { stringifyError } from '@indite.io/lib/stringifyError' import type { ChatLog, ScriptToExecute } from '@indite.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): Promise => { try { const func = AsyncFunction( ...args.map((arg) => arg.id), parseContent(content) ) await func(...args.map((arg) => arg.value)) } catch (err) { return { logs: [ { status: 'error', description: 'Script block failed to execute', details: stringifyError(err), }, ], } } } const parseContent = (content: string) => { const contentWithoutScriptTags = content .replace(/