Skip to content

Commit a1092c7

Browse files
authored
feat(bswup): add skipWaiting public API to Bswup #10919 (#10920)
1 parent 52c41ec commit a1092c7

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ BitBswup.version = window['bit-bswup version'] = '9.9.0-pre-02';
9696

9797
if (e.data === 'CLIENTS_CLAIMED') {
9898
Blazor.start().then(() => {
99-
blazorStartResolver(undefined);
99+
blazorStartResolver?.(undefined);
100100
e.source.postMessage('BLAZOR_STARTED');
101101
});
102102
return;
@@ -216,17 +216,16 @@ BitBswup.version = window['bit-bswup version'] = '9.9.0-pre-02';
216216
}
217217
}());
218218

219-
BitBswup.checkForUpdate = async () => {
219+
BitBswup.checkForUpdate = async (): Promise<void> => {
220220
if (!('serviceWorker' in navigator)) {
221221
return console.warn('no serviceWorker in navigator');
222222
}
223223

224224
const reg = await navigator.serviceWorker.getRegistration();
225-
const result = await reg.update();
226-
return result;
225+
await reg.update();
227226
}
228227

229-
BitBswup.forceRefresh = async () => {
228+
BitBswup.forceRefresh = async (): Promise<void> => {
230229
if (!('serviceWorker' in navigator)) {
231230
return console.warn('no serviceWorker in navigator');
232231
}
@@ -242,6 +241,22 @@ BitBswup.forceRefresh = async () => {
242241
window.location.reload();
243242
}
244243

244+
BitBswup.skipWaiting = async (): Promise<boolean> => {
245+
if (!('serviceWorker' in navigator)) {
246+
console.warn('no serviceWorker in navigator');
247+
return false;
248+
}
249+
250+
const reg = await navigator.serviceWorker.getRegistration();
251+
252+
if (reg?.waiting) {
253+
reg.waiting.postMessage('SKIP_WAITING');
254+
return true;
255+
}
256+
257+
return false;
258+
}
259+
245260
const BswupMessage = {
246261
downloadStarted: 'DOWNLOAD_STARTED',
247262
downloadProgress: 'DOWNLOAD_PROGRESS',

0 commit comments

Comments
 (0)