Skip to content
Snippets Groups Projects
registerServiceWorker.js 1.67 KiB
Newer Older
import { register } from 'register-service-worker';

if (process.env.NODE_ENV === 'production') {
  register(`${process.env.BASE_URL}service-worker.js`, {
    ready () {
      console.log(
        'App is being served from cache by a service worker.\n' +
        'For more details, visit https://goo.gl/AFskqB'
DESPRES Damien's avatar
DESPRES Damien committed
    registered (registration) {
      //console.log('Service worker has been registered.')
      console.log(
        'Service worker has been registered and now polling for updates.'
DESPRES Damien's avatar
DESPRES Damien committed
      setInterval(() => {
        registration.update();
      }, 10000); // every 10 seconds
      console.log('Content has been cached for offline use.');
      console.log('New content is downloading.');
DESPRES Damien's avatar
DESPRES Damien committed
    updated (registration) {
      if (!navigator.webdriver) {
        alert('Une nouvelle version de l\'application est disponible, l\'application va se recharger');
        console.log('New content is available; please refresh.');
        //
        if (!registration || !registration.waiting) {
          return;
        }
        // Send message to SW to skip the waiting and activate the new SW
        registration.waiting.postMessage({ type: 'SKIP_WAITING' });
        //window.location.reload(true);
      } else {
        console.log('Execution dans un navigateur controlé par un agent automatisé, la mise à jour n\'est pas appliqué pendant le test.');
Florent Lavelle's avatar
Florent Lavelle committed
      }
      console.log('No internet connection found. App is running in offline mode.');
      console.error('Error during service worker registration:', error);