New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sw-appcache-behavior

Package Overview
Dependencies
Maintainers
3
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sw-appcache-behavior

A service worker implementation of the behavior defined in a page's App Cache manifest.

  • 0.0.6
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
decreased by-55.56%
Maintainers
3
Weekly downloads
 
Created
Source

sw-appcache-behavior

A service worker implementation of the behavior defined in a page's App Cache manifest.

Installation

npm install --save-dev sw-appcache-behavior

Demo

Browse sample source code in the demo directory, or try it out directly.

API

goog.appCacheBehavior.fetch

packages/sw-appcache-behavior/src/appcache-behavior-import.js:514-527

goog.appCacheBehavior.fetch is the main entry point to the library from within service worker code.

The goal of the library is to provide equivalent behavior to AppCache whenever possible. The one difference in how this library behaves compared to a native AppCache implementation is that its client-side code will attempt to fetch a fresh AppCache manifest once any cached version is older than 24 hours. This works around a major pitfall in the native AppCache implementation.

Important In addition to calling goog.appCacheBehavior.fetch() from within your service worker, you must add the following to each HTML document that contains an App Cache Manifest:

<script src="path/to/client-runtime.js"
        data-service-worker="service-worker.js">
</script>

(The data-service-worker attribute is optional. If provided, it will automatically call navigator.serviceWorker.register() for you.)

Once you've added <script src="path/to/client-runtime.js"></script> to your HTML pages, you can use goog.appCacheBehavior.fetch within your service worker script to get a Response suitable for passing to FetchEvent.respondWidth():

// Import the library into the service worker global scope:
// https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/importScripts
importScripts('path/to/appcache-behavior-import.js');

self.addEventListener('fetch', event => {
  event.respondWith(goog.appCacheBehavior.fetch(event).catch(error => {
    // Fallback behavior goes here, e.g. return fetch(event.request);
  }));
});

goog.appCacheBehavior.fetch() can be selectively applied to only a subset of requests, to aid in the migration off of App Cache and onto a more robust service worker implementation:

// Import the library into the service worker global scope:
// https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/importScripts
importScripts('path/to/appcache-behavior-import.js');

self.addEventListener('fetch', event => {
  if (event.request.url.match(/legacyRegex/)) {
    event.respondWith(goog.appCacheBehavior.fetch(event));
  } else {
    event.respondWith(goog.appCacheBehavior.fetch(event));
  }
});

Parameters

  • event FetchEvent

Returns Promise<Response>

Keywords

FAQs

Package last updated on 06 Jan 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc