trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
42 lines (41 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasRefreshCapability = exports.getRemainingValidityTime = exports.shouldRefreshToken = exports.refreshAuthToken = exports.isTokenValid = exports.isTokenExpired = exports.createAuthToken = void 0;
const createAuthToken = (accessToken, tokenType, expiresIn, expires, refreshToken) => ({
accessToken,
tokenType,
expiresIn,
expires,
refreshToken,
});
exports.createAuthToken = createAuthToken;
const isTokenExpired = (token) => {
return new Date() > token.expires;
};
exports.isTokenExpired = isTokenExpired;
const isTokenValid = (token) => {
return !(0, exports.isTokenExpired)(token);
};
exports.isTokenValid = isTokenValid;
const refreshAuthToken = (token, newAccessToken, newExpires, newRefreshToken) => ({
...token,
accessToken: newAccessToken,
expires: newExpires,
refreshToken: newRefreshToken || token.refreshToken,
});
exports.refreshAuthToken = refreshAuthToken;
const shouldRefreshToken = (token) => {
const fiveMinutesFromNow = new Date(Date.now() + 5 * 60 * 1000);
return token.expires <= fiveMinutesFromNow;
};
exports.shouldRefreshToken = shouldRefreshToken;
const getRemainingValidityTime = (token) => {
const now = new Date();
const remaining = token.expires.getTime() - now.getTime();
return Math.max(0, remaining);
};
exports.getRemainingValidityTime = getRemainingValidityTime;
const hasRefreshCapability = (token) => {
return Boolean(token.refreshToken);
};
exports.hasRefreshCapability = hasRefreshCapability;