extension.expiredStatus(), adjustable timers, improve guards

pull/787/head
Ryan Tharp 5 years ago
parent 5a440941ea
commit 6c73fa99e2

@ -14,12 +14,19 @@
LokiFileServerAPI.secureRpcPubKey
);
let nextWaitSeconds = 1;
const checkForUpgrades = async () => {
const response = await window.tokenlessFileServerAdnAPI.serverRequest(
const result = await window.tokenlessFileServerAdnAPI.serverRequest(
'loki/v1/version/client/desktop'
);
if (response && response.response) {
const latestVer = semver.clean(response.response.data[0][0]);
if (
result &&
result.response &&
result.response.data &&
result.response.data.length &&
result.response.data[0].length
) {
const latestVer = semver.clean(result.response.data[0][0]);
if (semver.valid(latestVer)) {
const ourVersion = window.getVersion();
if (latestVer === ourVersion) {
@ -36,10 +43,11 @@
}
} else {
// give it a minute
log.warn('Could not check to see if newer version is available');
log.warn('Could not check to see if newer version is available', result);
nextWaitSeconds = 60;
setTimeout(async () => {
await checkForUpgrades();
}, 60 * 1000); // wait a minute
}, nextWaitSeconds * 1000); // wait a minute
}
// no message logged means serverRequest never returned...
};
@ -56,22 +64,33 @@
if (expiredVersion !== null) {
return res(expiredVersion);
}
log.info('Delaying sending checks for 1s, no version yet');
setTimeout(waitForVersion, 1000);
log.info(
'Delaying sending checks for',
nextWaitSeconds,
's, no version yet'
);
setTimeout(waitForVersion, nextWaitSeconds * 1000);
return true;
}
waitForVersion();
return true;
};
// just get current status
window.extension.expiredStatus = () => expiredVersion;
// actually wait until we know for sure
window.extension.expiredPromise = () => new Promise(resolveWhenReady);
window.extension.expired = cb => {
if (expiredVersion === null) {
// just give it another second
log.info('Delaying expire banner determination for 1s');
log.info(
'Delaying expire banner determination for',
nextWaitSeconds,
's'
);
setTimeout(() => {
window.extension.expired(cb);
}, 1000);
}, nextWaitSeconds * 1000);
return;
}
// yes we know

Loading…
Cancel
Save