2nthony / register-service-worker-chain

A script to simplify service worker registration with hooks for common events.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This project fork from register-service-worker

register-service-worker-chain

NPM version NPM downloads License

A script to simplify service worker registration with hooks for common events.

Usage

Note: this script uses ES modules export and is expected to be used with a client side bundler that can handle ES modules syntax.

import { register } from 'register-service-worker-chain'

register('/service-worker.js', {
  scope: './'
})
  .ready(registration => {
    console.log('Service worker is active.')
  })
  .registered(registration => {
    console.log('Service worker has been registered.')
  })
  .cached(registration => {
    console.log('Content has been cached for offline use.')
  })
  .updatefound(registration => {
    console.log('New content is downloading.')
  })
  .updated(registration => {
    console.log('New content is available; please refresh.')
  })
  .offline(() => {
    console.log('No internet connection found. App is running in offline mode.')
  })
  .error(error => {
    console.error('Error during service worker registration:', error)
  )

API

register(swUrl, registrationOptions)

  • (swUrl: string, registrationOptions?: ServiceWorkerRegistration) => Hooks
type Hooks = {
  ready?: (registration: any) => Hooks;
  registered?: (registration: any) => Hooks;
  cached?: (registration: any) => Hooks;
  updated?: (registration: any) => Hooks;
  updatefound?: (registration: any) => Hooks;
  offline?: () => Hooks;
  error?: (error: Error) => Hooks;
};

The ready, registered, cached, updatefound and updated events passes a ServiceWorkerRegistration instance in their arguments.

The registrationOptions object will be passed as the second argument to ServiceWorkerContainer.register

About

A script to simplify service worker registration with hooks for common events.


Languages

Language:JavaScript 100.0%