Skip to content

リトライとインメモリキャッシュ

createRetryMiddleware

指数バックオフ + ジッター。オプションはファクトリ既定と ctx.request.retry の浅いマージ。

オプション既定
maxAttempts3初回含む試行回数
baseDelayMs300
maxDelayMs30000
factor2
retryOnStatus408,429,500,502,503,504
retryOnNetworkErrortrue
retryNonIdempotentMethodsfalsefalse 時は GET/HEAD/OPTIONS/TRACE のみ該当ケースでリトライ
shouldRetry任意

ERR_CANCELED はリトライしません。POST 等もリトライする場合は retry: { retryNonIdempotentMethods: true }

MemoryCacheStore + createCacheMiddleware

ts
const store = new MemoryCacheStore({ maxEntries: 500 });
createCacheMiddleware(store, {
  ttlMs: 60_000,
  staleWhileRevalidateMs: 0,
  methods: ["GET", "HEAD"],
  varyHeaderNames: ["authorization", "cookie"],
});
  • 既定キー: METHOD 完全URL
  • memoryCache.skip で読み書きスキップ(バックグラウンド更新でも使用)。
  • リクエストごとの ttlMs / staleWhileRevalidateMs で上書き。
  • SWR: TTL 経過後も staleWhileRevalidateMs 内は古い値を返しつつバックグラウンドで dispatch

次へ

MIT · @hamdymohamedak/openfetch