From fe5b3af88781df8626121f367a5273bcfea629af Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Fri, 15 Aug 2025 08:54:14 +0000 Subject: [PATCH] chore(fetcher): allow to customize minimum cache ttl --- src/utils/Fetcher.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/utils/Fetcher.ts b/src/utils/Fetcher.ts index 8a353c4..4c3c905 100644 --- a/src/utils/Fetcher.ts +++ b/src/utils/Fetcher.ts @@ -44,6 +44,7 @@ interface FlareSolverrResult { } export type CustomRequestInit = RequestInit & { + minCacheTtl?: number; noCache?: boolean; noFlareSolverr?: boolean; noProxyHeaders?: boolean; @@ -190,9 +191,9 @@ export class Fetcher { return `${url.href}_${init?.body?.toString()}`; } - private determineCacheTtl(status: number, policy: CachePolicy): number { + private determineCacheTtl(status: number, policy: CachePolicy, init?: CustomRequestInit): number { if (status === 200) { - return Math.max(policy.timeToLive(), this.MIN_CACHE_TTL); + return Math.max(policy.timeToLive(), init?.minCacheTtl ?? this.MIN_CACHE_TTL); } return policy.timeToLive(); @@ -239,7 +240,7 @@ export class Fetcher { const body = await response.text(); const policy = new CachePolicy(request, { status: response.status, headers: this.headersToObject(response.headers) }, { shared: false }); - const ttl = this.determineCacheTtl(response.status, policy); + const ttl = this.determineCacheTtl(response.status, policy, init); httpCacheItem = { headers: policy.responseHeaders(), status: response.status, statusText: response.statusText, body, ttl };