* Big ole test re-jig * Current work * Moving all tests over to the test runner * Fixing last nits in the build and test runner * Adding precaching integration tests * Moving sw-appcache-behavior to integration test * Adding bg-sync to test suite again - incoming fails * Fixing the last pieces of the test sweep * Removing logs * Removing number of repeats in tests - should be determined by the individual tests - not the runner * Small move around with sw-appcache * Retry the end to end-to-end test
SW-Helpers
Contents
Ways to Use the Libraries
Despite the number of modules in this package, there are a number of approaches to using these tools which many be used separately or together in any number of combinations.
- Precaching, runtime caching and routing: Use sw-lib to quickly implement caching strategies or a route.
- Build process: Generate a service worker or manifest in your build process using sw-build.
- Command line: Generate a service worker or manifest from the command line.
- Go beyond the basics: Implement more advanced capabilities and more sophisticated use cases using any of the other libraries, which are described below.
Setting Up
Each module is installed separately using the command line as listed below. To use a particular module:
-
Install the module. For example:
npm install --save-dev sw-lib -
Copy the module's JavaScript and map files to your serving directory.
cp node_modules/sw-lib/build/* app/ -
Import the modules to your service worker file. For example:
importScripts('sw-lib.min.js');
The Libraries
All of the modules are described below. Each has an About page with basic usage instructions and a Demo directory with an example. The main page of the documentation is here.
sw-appcache-behavior
A service worker implementation of the behavior defined in a page's App Cache manifest.
Install: npm install --save-dev sw-appcache-behavior
Learn More: About • Demo Code
sw-background-sync-queue
Queues failed requests and uses the Background Sync API to replay those requests at a later time when the network state has changed.
Install: npm install --save-dev sw-background-sync-queue
Learn More: About • Demo Code
sw-broadcast-cache-update
A helper library that uses the Broadcast Channel API to announce when two Response objects differ.
Install: npm install --save-dev sw-broadcast-cache-update
Learn More: About • Demo Code
sw-build
This module can be used to generate a file manifest or service worker, that can be used with sw-lib.
Install: npm install --save-dev sw-build
Learn More: About • Demo Code
sw-cache-expiration
This library is still a work in progress and is not functional.
Install: npm install --save-dev sw-cache-expiration
Learn More: About • Demo Code
sw-cacheable-response
This library takes a Response object and determines whether it's cacheable, based on a specific configuration.
Install: npm install --save-dev sw-cacheable-response
Learn More: About • Demo Code
sw-cli
A CLI tool to generate a service worker and a file manifest making use of the sw-lib module.
Install: npm install --global sw-cli
sw-lib
A service worker library to make managing fetch requests and caching as easy as possible.
Install: npm install --save-dev sw-lib
Learn More: About • Demo Code
sw-offline-google-analytics
A service worker helper library to retry offline Google Analytics requests when a connection is available.
Install: npm install --save-dev sw-offline-google-analytics
Learn More: About • Demo Code
sw-precaching
This library is still a work in progress and is not functional.
Install: npm install --save-dev sw-precaching
Learn More: About • Demo Code
sw-routing
A service worker helper library to route request URLs to handlers.
Install: npm install --save-dev sw-routing
Learn More: About • Demo Code
sw-runtime-caching
A service worker helper library that implements various runtime caching strategies.
Install: npm install --save-dev sw-runtime-caching
Learn More: About • Demo Code
External Contributions
Please read the guide to contributing prior to filing any pull requests.
License
Copyright 2016 Google, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.