@stacksjs/browser 0.75.451 → 0.75.457
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utils/retry.d.ts +2 -2
- package/dist/utils/retry.js +1 -1
- package/package.json +5 -5
package/dist/utils/retry.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/** Run once, then at most `retries` more times. Invalid options reject before work starts. */
|
|
2
2
|
export declare function retry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
|
|
3
|
+
/** Saturate at the platform timer limit instead of overflowing to a one-ms timeout. */
|
|
3
4
|
export declare function calculateDelay(attemptCount: number, initialDelay: number, backoffFactor: number, jitter?: boolean): number;
|
|
4
|
-
// Define a more specific RetryOptions interface
|
|
5
5
|
export declare interface RetryOptions {
|
|
6
6
|
retries?: number
|
|
7
7
|
initialDelay?: number
|
package/dist/utils/retry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export function retry(fn,options={}){const{retries=3,initialDelay=1000,backoffFactor=2,jitter=!0}=options;
|
|
1
|
+
const MAX_TIMER_DELAY=2147483647;function validateTiming(initialDelay,backoffFactor){if(!Number.isFinite(initialDelay)||initialDelay<0||!Number.isFinite(backoffFactor)||backoffFactor<0)throw RangeError("Retry delays and backoff factors must be finite non-negative numbers")}export async function retry(fn,options={}){const{retries=3,initialDelay=1000,backoffFactor=2,jitter=!0}=options;if(!Number.isSafeInteger(retries)||retries<0)throw RangeError("Retries must be a non-negative safe integer");validateTiming(initialDelay,backoffFactor);for(let attempt=0;;attempt++)try{return await fn()}catch(error){if(attempt>=retries)throw error;await new Promise((resolve)=>setTimeout(resolve,calculateDelay(attempt,initialDelay,backoffFactor,jitter)))}}export function calculateDelay(attemptCount,initialDelay,backoffFactor,jitter){if(!Number.isSafeInteger(attemptCount)||attemptCount<0)throw RangeError("Retry attempts must be non-negative safe integers");validateTiming(initialDelay,backoffFactor);let delay=initialDelay===0?0:initialDelay*backoffFactor**attemptCount;if(!Number.isFinite(delay)||delay===0&&initialDelay>0&&backoffFactor>0)delay=Math.exp(Math.log(initialDelay)+attemptCount*Math.log(backoffFactor));const adjusted=delay*(jitter?0.7+Math.random()*0.6:1);return Math.min(MAX_TIMER_DELAY,adjusted)}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/browser",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.75.
|
|
4
|
+
"version": "0.75.457",
|
|
5
5
|
"description": "Stacks core frontend/browser functionalities.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"contributors": [
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
"prepublishOnly": "bun run build"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@stacksjs/composables": "0.75.
|
|
78
|
-
"@stacksjs/datetime": "0.75.
|
|
79
|
-
"@stacksjs/strings": "0.75.
|
|
77
|
+
"@stacksjs/composables": "0.75.457",
|
|
78
|
+
"@stacksjs/datetime": "0.75.457",
|
|
79
|
+
"@stacksjs/strings": "0.75.457",
|
|
80
80
|
"@stacksjs/stx": "0.2.794",
|
|
81
81
|
"bun-query-builder": "^0.3.38"
|
|
82
82
|
},
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"@stacksjs/utils": "0.75.
|
|
92
|
+
"@stacksjs/utils": "0.75.457",
|
|
93
93
|
"@stripe/stripe-js": "^10.0.0",
|
|
94
94
|
"better-dx": "^0.2.24"
|
|
95
95
|
}
|