How to use the worker-timers.setInterval function in worker-timers

To help you get started, we’ve selected a few worker-timers examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Nike-Inc / cerberus / dashboard / app / actions / authenticationActions.js View on Github external
const millisecondsPerSecond = 1000
    const bestGuessOfRequestLatencyInMilliseconds = 120 * millisecondsPerSecond // take 2 minutes off of duration to account for latency

    let now = new Date()
    let cerberusAuthTokenExpiresDateInMilliseconds = (now.getTime() + ((leaseDurationInSeconds * millisecondsPerSecond) - bestGuessOfRequestLatencyInMilliseconds))

    let tokenExpiresDate = new Date()
    let token = response.data.data.client_token.client_token
    tokenExpiresDate.setTime(cerberusAuthTokenExpiresDateInMilliseconds)

    log.debug(`Setting session timeout to ${tokenExpiresDate}`)

    let timeToExpireTokenInMillis = tokenExpiresDate.getTime() - now.getTime()

    let sessionExpirationCheckIntervalInMillis = 2000
    let sessionExpirationCheckIntervalId = workerTimers.setInterval(() => {
        let currentTimeInMillis = new Date().getTime()
        let sessionExpirationTimeInMillis = tokenExpiresDate.getTime()
        if (currentTimeInMillis >= sessionExpirationTimeInMillis) {
            dispatch(handleSessionExpiration())
        }
    }, sessionExpirationCheckIntervalInMillis)

    let sessionWarningTimeoutId = workerTimers.setTimeout(() => {
        dispatch(warnSessionExpiresSoon(token))
    }, timeToExpireTokenInMillis - 120000)  // warn two minutes before expiration

    dispatch(setSessionWarningTimeoutId(sessionWarningTimeoutId))

    sessionStorage.setItem('token', JSON.stringify(response.data))
    sessionStorage.setItem('tokenExpiresDate', tokenExpiresDate)
    sessionStorage.setItem('userRespondedToSessionWarning', false)

worker-timers

A replacement for setInterval() and setTimeout() which works in unfocused windows.

MIT
Latest version published 1 month ago

Package Health Score

70 / 100
Full package analysis