Skip to content

Commit 660a0f5

Browse files
authored
feat(bswup): add cleanup command #11870 (#11872)
1 parent 68900cb commit 660a0f5

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,10 @@ function handleMessage(e: MessageEvent<string>) {
234234
if (e.data === 'BLAZOR_STARTED') {
235235
createAssetsCache(true);
236236
}
237+
238+
if (e.data === 'CLEAN_UP') {
239+
deleteOldCaches(); // remove the old caches
240+
}
237241
}
238242

239243
// ============================================================================

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var BitBswup = BitBswup || {};
1+
var BitBswup = BitBswup || {};
22
BitBswup.version = window['bit-bswup version'] = '10.2.1-pre-01';
33

44
(function () {
@@ -19,6 +19,7 @@ BitBswup.version = window['bit-bswup version'] = '10.2.1-pre-01';
1919
startBlazor();
2020

2121
let reload: () => void;
22+
let cleanup: () => void;
2223
let blazorStartResolver: (value: unknown) => void;
2324

2425
try {
@@ -39,7 +40,7 @@ BitBswup.version = window['bit-bswup version'] = '10.2.1-pre-01';
3940
function prepareRegistration(reg) {
4041
reload = () => {
4142
if (navigator.serviceWorker.controller) {
42-
reg.waiting && reg.waiting.postMessage('SKIP_WAITING');
43+
reg.waiting?.postMessage('SKIP_WAITING');
4344
return Promise.resolve();
4445
}
4546

@@ -51,6 +52,11 @@ BitBswup.version = window['bit-bswup version'] = '10.2.1-pre-01';
5152
window.location.reload();
5253
};
5354

55+
cleanup = () => {
56+
reg.waiting?.postMessage('CLEAN_UP');
57+
reg.active?.postMessage('CLEAN_UP');
58+
};
59+
5460
if (reg.waiting) {
5561
info('registration waiting:', reg.waiting);
5662
if (reg.installing) {
@@ -128,13 +134,13 @@ BitBswup.version = window['bit-bswup version'] = '10.2.1-pre-01';
128134

129135
if (data.percent >= 100) {
130136
const firstInstall = !(navigator.serviceWorker.controller);
131-
handle(BswupMessage.downloadFinished, { reload, firstInstall });
137+
handle(BswupMessage.downloadFinished, { reload, cleanup, firstInstall });
132138
}
133139
}
134140

135141
if (type === 'bypass') {
136142
const firstInstall = data?.firstTime || !(navigator.serviceWorker.controller);
137-
handle(BswupMessage.downloadFinished, { reload, firstInstall });
143+
handle(BswupMessage.downloadFinished, { reload, cleanup, firstInstall });
138144
}
139145

140146
if (type === 'activate') {

0 commit comments

Comments
 (0)