All notable changes to this project will be documented in this file.
- Hooks are deprecated and will be removed in the next major version
- RetryManager refactored and optimized
- Added
CircuitBraker
plugin, tests and benchmark for it - Added
Caching
plugin, tests and benchmark for it - Made all the plugins tree-shakeable
- Plugins can now initialize before and after the retry manager interceptors
manager.use(plugin: RetryPlugin, beforeRetryerInterceptors = true)
- Added
__backoffType
and__retryableStatuses
to the request config - Added the
TokenRefresh
plugin - Added more tests and optimized the logic
- Added
onInternetConnectionError
,onTokenRefreshed
,onTokenRefreshFailed
andonBeforeTokenRefresh
events/hooks - Added the request ID limit up to 40 symbols
- Added more logs for the
debug: true
mode - Added
getLogger
public methods for plugins - Tiny fixes
- Added extended metrics
- Improved hi-load benchmark
- Added badges
- Fix error handling on cancelling requests
- Add benchmark for high-load testing
- Added bugfixes
- Added security improvements
- Added metrics improvements
- Added event lifecycle system
- Implemented request queue with priorities and concurrency limit
- Added more integration tests
- Improved typescript typings
- Removed ability to add custom request store due to limitations
- Added ability to specify request codes and methods that should be retried
- Added more lifecycle hooks
- Added
onBeforeDestroy
andunuse
methods for plugins
- Initial release of
axios-retryer
. - Support for automatic or manual retry modes.
- DefaultRetryStrategy handling network or server errors with an exponential delay.
- Hooks:
beforeRetry
,afterRetry
,onFailure
, andonAllRetriesCompleted
for custom logic at various stages. - InMemoryRequestStore for storing failed requests in manual mode (can be replaced with a custom store).
- Ability to cancel individual or all ongoing requests via
cancelRequest
orcancelAllRequests
. - Option to provide a custom
axiosInstance
to integrate with existing Axios configurations. - TypeScript definitions and interfaces for easy integration in TypeScript projects.
- Basic unit tests covering success, failure, cancellation, and manual retry scenarios.
- Added basic plugins support and covered with tests
- This is the first beta release. Future changes, additions, and bug fixes will appear in subsequent versions.
- Feedback and contributions are welcome—please see the Contributing guidelines for more details.