diff --git a/src/constants.ts b/src/constants.ts index 8c14452..b7a3407 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -13,6 +13,7 @@ export const WAIT_CONDITION_INITIAL_INTERVAL = 1000; export const WAIT_CONDITION_MAX_INTERVAL = 10000; export const EMAIL_INITIAL_WAIT = 5000; export const EMAIL_RETRY_DELAY = 60000; +export const EMAIL_FETCH_TIMEOUT = 30000; // Limits export const STEP_EXECUTION_MAX_STEPS = 25; diff --git a/src/providers/emailsink.ts b/src/providers/emailsink.ts index 74ce10e..685e37e 100644 --- a/src/providers/emailsink.ts +++ b/src/providers/emailsink.ts @@ -1,4 +1,5 @@ import type { EmailProvider } from "../config"; +import { EMAIL_FETCH_TIMEOUT } from "../constants"; /** * Emailsink is a simple email service by Bug0 that allows you to receive emails at a unique address and retrieve their content via an API @@ -15,7 +16,9 @@ export function emailsinkProvider(options: { apiKey?: string }): EmailProvider { if (options.apiKey) { url += `&secret=${encodeURIComponent(options.apiKey)}`; } - const response = await fetch(url); + const response = await fetch(url, { + signal: AbortSignal.timeout(EMAIL_FETCH_TIMEOUT), + }); const data = (await response.json()) as { result: string | undefined }; let result = data.result;