Source code

Revision control

Copy as Markdown

Other Tools

'use strict';
import {routerRules} from './router-rules.js';
import {
recordError,
getRecords,
resetRecords } from './static-router-sw.sub.js';
self.addEventListener('install', async e => {
e.waitUntil(caches.open('v1').then(
cache => {cache.put('cache.txt', new Response('From cache'))}));
const params = new URLSearchParams(location.search);
const key = params.get('key');
try {
await e.addRoutes(routerRules[key]);
} catch (e) {
recordError(e);
}
self.skipWaiting();
});
self.addEventListener('activate', e => {
e.waitUntil(clients.claim());
});
self.addEventListener('message', function(event) {
if (event.data.reset) {
resetRecords();
}
if (event.data.port) {
const {requests, errors} = getRecords();
event.data.port.postMessage({requests, errors});
}
});