2
0
Files
bot/apps/viewer/src/features/blocks/logic/script/executeScript.ts

37 lines
1.1 KiB
TypeScript
Raw Normal View History

import { ExecuteLogicResponse } from '@/features/chat/types'
import { extractVariablesFromText } from '@/features/variables/extractVariablesFromText'
import { parseGuessedValueType } from '@/features/variables/parseGuessedValueType'
import { parseVariables } from '@/features/variables/parseVariables'
import { ScriptBlock, SessionState } from '@typebot.io/schemas'
2022-11-29 10:02:40 +01:00
export const executeScript = (
2022-11-29 10:02:40 +01:00
{ typebot: { variables } }: SessionState,
block: ScriptBlock,
lastBubbleBlockId?: string
2022-11-29 10:02:40 +01:00
): ExecuteLogicResponse => {
if (!block.options.content) return { outgoingEdgeId: block.outgoingEdgeId }
const content = parseVariables(variables, { fieldToParse: 'id' })(
block.options.content
)
const args = extractVariablesFromText(variables)(block.options.content).map(
(variable) => ({
id: variable.id,
value: parseGuessedValueType(variable.value),
2022-11-29 10:02:40 +01:00
})
)
return {
outgoingEdgeId: block.outgoingEdgeId,
clientSideActions: [
{
scriptToExecute: {
content,
args,
},
lastBubbleBlockId,
2022-11-29 10:02:40 +01:00
},
],
2022-11-29 10:02:40 +01:00
}
}