A JavaScript utility for retrying failed async calls, based on a predicate that checks the error returned. Useful for re-running operations after transient failures, with options to control timeout, concurrency, and support canceling retries with an AbortSignal.
Project status
- The latest update shown is v0.4.3 on 2025-05-07, with only older updates preceding it, so maintenance appears sporadic rather than actively maintained (even though there was an upstream push on 2026-07-14, no corresponding update details are shown here).
- Apparent update cadence: relatively frequent changes in 2024 (0.2.x through 0.4.0), then slower in 2025 (0.4.2 in 2025-02-19, 0.4.3 in 2025-05-07), and no additional tagged updates are reflected after 0.4.3.
AI summary generated
Recent updates
retry-v0.4.3
Release 0.4.3 primarily improves the TypeScript type definitions for Retrier.retry. The only code change in src/retrier.js is a more precise JSDoc generic typing for the function argument and the returned Promise type, with the rest of the diff consisting of repository metadata and release bookkeeping.
retry-v0.4.2
retry v0.4.2 (2025-02-19) primarily fixes an issue where temporary promises could reject and trigger unhandledRejection behavior. The code change is centered in Retrier.retry, with supporting test coverage and additional CI/workflow adjustments.
retry-v0.4.1
v0.4.1 primarily updates the library's debug logging behavior. The release notes describe gating debug output behind a specific DEBUG value, and the code implements that change with additional logging semantics.
retry-v0.4.0
v0.4.0 introduces concurrency support to the Retrier so multiple retried function calls can be in flight at the same time. The core implementation in src/retrier.js was reworked around new internal queues and task counters, and the test suite was expanded to validate concurrent behavior. Release notes only mention concurrency at a high level, but the code includes additional observable API and runtime changes.
Featuresretry-v0.3.1
Release v0.3.1 focuses on bug fixes, specifically addressing long retries behavior and correcting the repository URL metadata in package.json. The code diff shows changes to the retry scheduler in src/retrier.js that alter how tasks are re-queued and when the queue processing loop continues.
retry-v0.3.0
v0.3.0 adds retry cancellation support via AbortSignal. It also includes fixes related to shipping correct TypeScript types for npm and JSR.
Featuresretry-v0.2.4
v0.2.4 focuses on improving how retry handles asynchronous return values. Specifically, it now supports retrying when the retried function returns a non-Promise thenable (an object with a then method).
retry-v0.2.3
retry v0.2.3 includes a metadata-oriented change to how the package exports are ordered, intended to satisfy tooling expectations. The diff also updates packaging configuration for JSR and bumps the TypeScript devDependency.
retry-v0.2.2
Release v0.2.2 contains a CI-only fix to ensure the dist output is built before publishing to JSR. The rest of the diff is version and changelog bookkeeping to reflect 0.2.2.
retry-v0.2.1
Release v0.2.1 primarily updates CI configuration to enable publishing by adding an OpenID Connect (OIDC) token permission. No runtime/library code changes are evident in the provided diff, aside from version and changelog metadata updates.