/* eslint-disable no-console */ import { register } from 'register-service-worker' import { setNotificationInstance, notify } from './utils/notification' if (process.env.NODE_ENV === 'production') { register(`${process.env.BASE_URL}service-worker.js`, { ready(sw) { sw.getNotifications().then((notifs) => { const newVersions = notifs.filter( (notif) => notif.tag === 'new-version' ) newVersions.forEach((notif) => notif.close()) }) console.log('App is being served from cache by a service worker') setNotificationInstance((title, options?) => sw.showNotification(title, options) ) }, registered() { console.log('Service worker has been registered.') }, cached() { console.log('Content has been cached for offline use.') }, updatefound() { console.log('New content is downloading.') }, updated(sw) { console.log('New content is available; please refresh.') setNotificationInstance((title, options?) => sw.showNotification(title, options) ) notify('An update is available!', { body: `Reload the app to install the update.`, tag: 'new-version' }) }, offline() { console.log( 'No internet connection found. App is running in offline mode.' ) }, error(error) { console.error('Error during service worker registration:', error) } }) }