Improved version checker
This commit is contained in:
@ -5,16 +5,29 @@ let etags = new Map<string, string>()
|
||||
let hasNewVersion = false
|
||||
let newVersionCheckDelay = 60000
|
||||
|
||||
export async function checkNewVersion(url: string, statusMessage: StatusMessage) {
|
||||
async function checkNewVersion(url: string, statusMessage: StatusMessage) {
|
||||
if(hasNewVersion) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
let response = await fetch(url)
|
||||
let headers = {}
|
||||
|
||||
if(etags.has(url)) {
|
||||
headers["If-None-Match"] = etags.get(url)
|
||||
}
|
||||
|
||||
let response = await fetch(url, {
|
||||
headers
|
||||
})
|
||||
|
||||
// Not modified response
|
||||
if(response.status === 304) {
|
||||
return
|
||||
}
|
||||
|
||||
if(!response.ok) {
|
||||
console.warn("Error fetching", url)
|
||||
console.warn("Error fetching", url, response.status)
|
||||
return
|
||||
}
|
||||
|
||||
@ -34,8 +47,11 @@ export async function checkNewVersion(url: string, statusMessage: StatusMessage)
|
||||
}
|
||||
} catch(err) {
|
||||
console.warn("Error fetching", url + "\n", err)
|
||||
} finally {
|
||||
checkNewVersionDelayed(url, statusMessage)
|
||||
}
|
||||
|
||||
delay(newVersionCheckDelay).then(() => checkNewVersion(url, statusMessage))
|
||||
}
|
||||
|
||||
export async function checkNewVersionDelayed(url: string, statusMessage: StatusMessage) {
|
||||
delay(newVersionCheckDelay).then(() => checkNewVersion(url, statusMessage))
|
||||
}
|
||||
|
Reference in New Issue
Block a user