sw-register
Service Worker registration utility
Made with ❤ at @outlandish
Register or retrieve a Service Worker that controls the page with ease...
- Register a Service Worker with one call to
register(<options>)
- Get an existing Service Worker with one call to
register()
- Always favours returning the active Service Worker over registering a new one, which means you can put a
call to
register(<options>)
with options in your init procedure and it will not try to re-register the worker. Saving you having to inspectnavigator.serviceWorker.ready
manually, etc.
Import
// ES6 // CommonJSvar register = // RequireJS
<!-- Script, available as `window.swRegister` -->
Register
const register = // Get existing worker // Register a worker from the client// Worker scope depends on worker location/headers// Read the Service Worker docs for more detailsconst registration = url: '/sw.js' scope: '/' // Subsequent calls with a registration object// will not attempt re-registration but return// the existing registered worker instead // Catch registration error
Usage
register([options]) : Promise
Register or retrieve a Service Worker.
- [register] {Object} Options object
Returns the Service Worker controller.
Available options (any not listed can also be passed in):
url
(required) the URL of the service workerscope
(optional) the scope of the service workerforceUpdate
(optional) callupdate()
on the registration?
Example:
register().then((worker) => {
// do something with the worker
}).catch((err) => {
// you get here if:
// - service workers unsupported
// - no existing worker and no options given to register one
})
Contributing
All pull requests and issues welcome!
If you're not sure how, check out Kent C. Dodds' great video tutorials on egghead.io!
Author & License
sw-register
was created by Sam Gluck and is released under the MIT license.