15 lines
		
	
	
		
			487 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			487 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from "./constants";
 | 
						|
export const getDefaultRetryBackoffStrategy = () => {
 | 
						|
    let delayBase = DEFAULT_RETRY_DELAY_BASE;
 | 
						|
    const computeNextBackoffDelay = (attempts) => {
 | 
						|
        return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));
 | 
						|
    };
 | 
						|
    const setDelayBase = (delay) => {
 | 
						|
        delayBase = delay;
 | 
						|
    };
 | 
						|
    return {
 | 
						|
        computeNextBackoffDelay,
 | 
						|
        setDelayBase,
 | 
						|
    };
 | 
						|
};
 |