TelegramPWA/src/util/setupServiceWorker.ts
Alexander Zinchuk 3afcde3217 Initial commit
2021-04-09 14:11:51 +03:00

39 lines
1.1 KiB
TypeScript

import { scriptUrl } from 'service-worker-loader!../serviceWorker';
import { DEBUG } from '../config';
import { IS_SERVICE_WORKER_SUPPORTED } from './environment';
import { getDispatch } from '../lib/teact/teactn';
if (IS_SERVICE_WORKER_SUPPORTED) {
window.addEventListener('load', async () => {
try {
await navigator.serviceWorker.register(scriptUrl);
if (DEBUG) {
// eslint-disable-next-line no-console
console.log('ServiceWorker registered');
}
await navigator.serviceWorker.ready;
if (navigator.serviceWorker.controller) {
if (DEBUG) {
// eslint-disable-next-line no-console
console.log('ServiceWorker ready');
}
} else {
if (DEBUG) {
// eslint-disable-next-line no-console
console.error('ServiceWorker not available');
}
getDispatch().showError({ error: { message: 'SERVICE_WORKER_DISABLED' } });
}
} catch (err) {
if (DEBUG) {
// eslint-disable-next-line no-console
console.error('ServiceWorker registration failed: ', err);
}
}
});
}