UNPKG

@renegade-fi/core

Version:
40 lines 1.5 kB
import { TASK_STATUS_ROUTE } from '../constants.js'; import { AuthType } from '../utils/websocket.js'; import { websocketWaiter, } from '../utils/websocketWaiter.js'; import { getTaskHistory } from './getTaskHistory.js'; export async function waitForTaskCompletionWs(config, parameters) { const { id, timeout } = parameters; const topic = TASK_STATUS_ROUTE(id); const wsWaiterParams = { config, topic, authType: AuthType.Wallet, messageHandler: (message) => { const parsedMessage = JSON.parse(message); if (parsedMessage.topic === topic && parsedMessage.event.type === 'TaskStatusUpdate') { if (parsedMessage.event.status?.state === 'Completed') { return null; } if (parsedMessage.event.status?.state === 'Failed') { throw new Error(`Task ${id} failed`); } } return undefined; }, prefetch: async () => { const taskHistory = await getTaskHistory(config); const task = taskHistory.get(id); if (task?.state === 'Completed') { return null; } if (task?.state === 'Failed') { throw new Error(`Task ${id} failed`); } return undefined; }, timeout, }; return websocketWaiter(wsWaiterParams); } //# sourceMappingURL=waitForTaskCompletionWs.js.map