JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 66
  • Score
    100M100P100Q89754F
  • License MIT

🎛️🔁🚀 A tiny, zero‑dependencies retry helper with exponential backoff + jitter—usable for KV, HTTP, Durable Objects, or any async function.

Package Exports

  • @variablesoftware/ts-retry-backoff

Readme

@variablesoftware/ts-retry-backoff 🎛️🔁🚀

Test Suite NPM version License Coverage Bundle Size Downloads PRs Welcome

🎛️🔁🚀 A tiny, zero‑dependencies retry helper with exponential backoff, jitter, min/max delay, and multiple strategies—usable for KV, HTTP, Durable Objects, or any async function.


Keep your calls resilient with a single import—no more duplicated retry logic across your codebase! ♻️


Documentation

See docs/README.md for full API, usage, and examples.

See Size Comparison for bundle size and alternatives.


Installation

yarn add @variablesoftware/ts-retry-backoff
# or
npm install @variablesoftware/ts-retry-backoff

Options (Summary)

  • maxRetries?: number
  • baseDelayMs?: number
  • minDelayMs?: number
  • maxDelayMs?: number
  • strategy?: (attempt: number, baseMs: number) => number
  • jitter?: number
  • retryOn?: (err: unknown) => boolean
  • onRetry?: (err: unknown, attempt: number, delay: number) => void
  • onSuccess?: (result: unknown, attempt: number) => void
  • onGiveUp?: (err: unknown, attempt: number) => void
  • signal?: AbortSignal

📄 License

MIT © Rob Friedman / Variable Software


Built with ❤️ by @variablesoftware
Thank you for downloading and using this project. Pull requests are warmly welcomed!


🌐 Inclusive & Accessible Design

  • Naming, logging, error messages, and tests avoid cultural or ableist bias
  • Avoids assumptions about input/output formats or encodings
  • Faithfully reflects user data — no coercion or silent transformations
  • Designed for clarity, predictability, and parity with underlying platforms (e.g., Cloudflare APIs)
  • Works well in diverse, multilingual, and inclusive developer environments

Keep your calls resilient with a single import—no more duplicated retry logic across your codebase! ♻️