immich/web/src/service-worker/broadcast-channel.ts
2025-06-17 17:07:54 +00:00

19 lines
568 B
TypeScript

import { cancelLoad, getCachedOrFetch } from './fetch-event';
export const installBroadcastChannelListener = () => {
const broadcast = new BroadcastChannel('immich');
// eslint-disable-next-line unicorn/prefer-add-event-listener
broadcast.onmessage = (event) => {
if (!event.data) {
return;
}
const urlstring = event.data.url;
const url = new URL(urlstring, event.origin);
if (event.data.type === 'cancel') {
cancelLoad(url.toString());
} else if (event.data.type === 'preload') {
getCachedOrFetch(url);
}
};
};