@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
46 lines (42 loc) • 1.18 kB
JavaScript
;
var jwtDecode = require('jwt-decode');
function storageAvailable(type) {
let storageExists = false;
let storageLength = 0;
let storage;
try {
storage = window[type];
storageExists = true;
storageLength = storage.length;
const x = "__storage_test__";
storage.setItem(x, x);
storage.removeItem(x);
return true;
} catch (err) {
const error = err;
return !!(error && (
// everything except Firefox
error.code === 22 ||
// Firefox
error.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
error.name === "QuotaExceededError" ||
// Firefox
error.name === "NS_ERROR_DOM_QUOTA_REACHED") &&
// acknowledge QuotaExceededError only if there's something already stored
storageExists && storageLength !== 0);
}
}
const checkIfTokenIsExpired = token => {
const decoded = jwtDecode.jwtDecode(token);
if (!decoded.exp) {
return true;
}
if (decoded.exp < Math.floor(Date.now() / 1000)) {
return true;
}
return false;
};
exports.checkIfTokenIsExpired = checkIfTokenIsExpired;
exports.storageAvailable = storageAvailable;