Skip to content

Instantly share code, notes, and snippets.

@anuragvohraec
Forked from bryandh/.Service Worker Setup.md
Created December 11, 2020 22:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anuragvohraec/67c706d8975fc640e5b3c7de50bc1753 to your computer and use it in GitHub Desktop.
Save anuragvohraec/67c706d8975fc640e5b3c7de50bc1753 to your computer and use it in GitHub Desktop.
Service Worker setup in Typescript
function registerServiceWorker(): void {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/src/service-worker.js')
.then((registration) =>
console.log(`Service Worker registration complete, scope: '${registration.scope}'`))
.catch((error) =>
console.log(`Service Worker registration failed with error: '${error}'`));
}
}
registerServiceWorker();
class ServiceWorkerOne {
public static run(): void {
addEventListener('install', ServiceWorkerOne.onInstalled);
addEventListener('fetch', ServiceWorkerOne.onFetched);
}
public static onInstalled = (event: any): void => {
event.waitUntil(
caches.open('v0.1').then((cache) => {
return cache.addAll([
'/scripts/app-bundle.js',
'/scripts/vendor-bundle.js',
'/assets/images/logo.png',
'/assets/images/no-vessel-picture.jpg',
'/assets/styles/loader.css',
'/assets/scripts/fontawesome-pro/css/fa-svg-with-js.css',
'/assets/scripts/fontawesome-pro/js/fontawesome.min.js',
'/assets/scripts/fontawesome-pro/js/fa-light.min.js',
'/assets/scripts/fontawesome-pro/js/fa-regular.min.js',
'/assets/scripts/fontawesome-pro/js/fa-solid.min.js'
]);
})
);
}
public static onFetched = (event: any): void => {
event.respondWith(
caches.match(event.request).then((matchResponse) => {
return matchResponse || fetch(event.request).then((fetchResponse) => {
return caches.open('v0.1').then((cache) => {
cache.put(event.request, fetchResponse.clone());
return fetchResponse;
});
});
})
);
}
}
ServiceWorkerOne.run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment