diff --git a/scripts/sync-sources.mjs b/scripts/sync-sources.mjs index 7dbc002..37476a0 100644 --- a/scripts/sync-sources.mjs +++ b/scripts/sync-sources.mjs @@ -22,6 +22,7 @@ const SOURCE_REPO_ORDER = ["hypersnap", "hypersnap-docs-web", "snap", "protocol" const DOCS_LINK_LIMIT = 80; const README_HEADING_LIMIT = 10; +const FETCH_TIMEOUT_MS = 10_000; const githubToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN; @@ -32,6 +33,7 @@ async function fetchGithubJson(url, { optional = false } = {}) { "X-GitHub-Api-Version": "2022-11-28", ...(githubToken ? { Authorization: `Bearer ${githubToken}` } : {}), }, + signal: AbortSignal.timeout(FETCH_TIMEOUT_MS), }); if ((response.status === 404 || response.status === 409) && optional) { @@ -53,6 +55,7 @@ async function fetchGithubText(url, { optional = false } = {}) { "X-GitHub-Api-Version": "2022-11-28", ...(githubToken ? { Authorization: `Bearer ${githubToken}` } : {}), }, + signal: AbortSignal.timeout(FETCH_TIMEOUT_MS), }); if ((response.status === 404 || response.status === 409) && optional) { diff --git a/src/lib/network.ts b/src/lib/network.ts index 049cc1e..8a390b6 100644 --- a/src/lib/network.ts +++ b/src/lib/network.ts @@ -85,6 +85,7 @@ export async function getNetworkStatus(): Promise { headers: { Accept: "application/json", }, + signal: AbortSignal.timeout(NODE_PROBE_TIMEOUT_MS), }); if (!response.ok) { diff --git a/src/lib/snap-market.ts b/src/lib/snap-market.ts index 19b7c1a..289e154 100644 --- a/src/lib/snap-market.ts +++ b/src/lib/snap-market.ts @@ -1,6 +1,7 @@ import { SNAP, correctedSnapFdv } from "@/lib/snap"; export const SNAP_MARKET_REVALIDATE = 30; +export const FETCH_TIMEOUT_MS = 10_000; type DexPeriod = { buys?: number; @@ -79,6 +80,7 @@ export async function getSnapMarketData(): Promise { "user-agent": "hypersnap.org market data checker", }, next: { revalidate: SNAP_MARKET_REVALIDATE }, + signal: AbortSignal.timeout(FETCH_TIMEOUT_MS), }); if (!response.ok) {