51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
/*! @azure/msal-common v14.4.0 2023-11-07 */
|
|
'use strict';
|
|
/*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
/**
|
|
* Utility class which exposes functions for managing date and time operations.
|
|
*/
|
|
class TimeUtils {
|
|
/**
|
|
* return the current time in Unix time (seconds).
|
|
*/
|
|
static nowSeconds() {
|
|
// Date.getTime() returns in milliseconds.
|
|
return Math.round(new Date().getTime() / 1000.0);
|
|
}
|
|
/**
|
|
* check if a token is expired based on given UTC time in seconds.
|
|
* @param expiresOn
|
|
*/
|
|
static isTokenExpired(expiresOn, offset) {
|
|
// check for access token expiry
|
|
const expirationSec = Number(expiresOn) || 0;
|
|
const offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;
|
|
// If current time + offset is greater than token expiration time, then token is expired.
|
|
return offsetCurrentTimeSec > expirationSec;
|
|
}
|
|
/**
|
|
* If the current time is earlier than the time that a token was cached at, we must discard the token
|
|
* i.e. The system clock was turned back after acquiring the cached token
|
|
* @param cachedAt
|
|
* @param offset
|
|
*/
|
|
static wasClockTurnedBack(cachedAt) {
|
|
const cachedAtSec = Number(cachedAt);
|
|
return cachedAtSec > TimeUtils.nowSeconds();
|
|
}
|
|
/**
|
|
* Waits for t number of milliseconds
|
|
* @param t number
|
|
* @param value T
|
|
*/
|
|
static delay(t, value) {
|
|
return new Promise((resolve) => setTimeout(() => resolve(value), t));
|
|
}
|
|
}
|
|
|
|
export { TimeUtils };
|
|
//# sourceMappingURL=TimeUtils.mjs.map
|