UNPKG

sw-helper

Version:

[![NPM](http://img.shields.io/npm/v/preact-router.svg)](https://www.npmjs.com/package/preact-router)

47 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Created by imamudinnaseem on 6/9/17. */ const log_1 = require("./extras/log"); 'use strict'; const cacheFirst_1 = require("./strategies/cacheFirst"); const cacheFirstUpdate_1 = require("./strategies/cacheFirstUpdate"); const getConfig = ({ mode, url }, cacheFiles) => { var path = new URL(url).pathname; var config = cacheFiles.find((x) => { if (x.url === 'index.html' && mode === 'navigate') { return true; } else { if (x.url instanceof RegExp) { return x.url.test(path); } else { return path.indexOf(x.url) > -1; } } }); return config; }; exports.default = ({ strategy, cacheName, cacheFiles, prefetchFiles, getKey }) => { self.addEventListener('fetch', function (e) { log_1.default('[SW] Fetch', e.request.url); const config = getConfig(e.request, cacheFiles); if (config) { const cacheList = Array.prototype.concat(cacheFiles, prefetchFiles); let cachingStrategy = config.strategy || strategy; switch (cachingStrategy) { case 'cacheFirst': cacheFirst_1.default(e, cacheName, cacheList, getKey, config); break; case 'cacheFirstUpdate': cacheFirstUpdate_1.default(e, cacheName, cacheList, getKey, config); break; default: cacheFirst_1.default(e, cacheName, cacheList, getKey, config); } } }); }; //# sourceMappingURL=fetch.js.map