@tanstack/offline-transactions
Version:
Offline-first transaction capabilities for TanStack DB
34 lines (33 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const types = require("../types.cjs");
const BackoffCalculator = require("./BackoffCalculator.cjs");
class DefaultRetryPolicy {
constructor(maxRetries = Number.POSITIVE_INFINITY, jitter = true) {
this.backoffCalculator = new BackoffCalculator.BackoffCalculator(jitter);
this.maxRetries = maxRetries;
}
calculateDelay(retryCount) {
return this.backoffCalculator.calculate(retryCount);
}
shouldRetry(error, retryCount) {
if (retryCount >= this.maxRetries) {
return false;
}
if (error instanceof types.NonRetriableError) {
return false;
}
if (error.name === `AbortError`) {
return false;
}
if (error.message.includes(`401`) || error.message.includes(`403`)) {
return false;
}
if (error.message.includes(`422`) || error.message.includes(`400`)) {
return false;
}
return true;
}
}
exports.DefaultRetryPolicy = DefaultRetryPolicy;
//# sourceMappingURL=RetryPolicy.cjs.map