All files / Shared/Utils memoizeConnection.js

100% Statements 11/11
82.35% Branches 14/17
100% Functions 3/3
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 221x   1x   1x     10x 5x 161x     7x 7x   7x            
import { Util } from 'playback-web-player';
 
const ONE_MINUTE = 60000;
 
const memoizeConnection = (
    getIsConnectionOk = Util.getIsConnectionOk,
    cacheResetMs = ONE_MINUTE
) => {
    let cache = null;
    return async () => {
        if (cache) return cache;
 
        const isConnectionOk = await getIsConnectionOk();
        isConnectionOk && setTimeout(() => cache = null, cacheResetMs);
 
        cache = isConnectionOk;
        return cache;
    };
};
 
export default memoizeConnection;