59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
const assets = [
|
|
'./manifest.json',
|
|
'./ico.png',
|
|
'./icon.png',
|
|
'./index.html',
|
|
'./main.css',
|
|
'./dist/wavesurfer.js',
|
|
'./dist/plugin/wavesurfer.regions.js',
|
|
'./oneup.js',
|
|
'./app.js',
|
|
'./keys.js',
|
|
'./contextmenu.js',
|
|
'./ui-fx.js',
|
|
'./ui.js',
|
|
'./modal.js',
|
|
'./state.js',
|
|
'./engine.js',
|
|
'./actions.js',
|
|
'./drag.js',
|
|
'./recorder.js',
|
|
'./welcome.js',
|
|
'./fx-pg-eq.js',
|
|
'./fx-auto.js',
|
|
'./local.js',
|
|
'./id3.js',
|
|
'./lzma.js',
|
|
'./lame.js',
|
|
'./fonts/icomoon.ttf',
|
|
'./fonts/icomoon.woff',
|
|
'./favicon.ico',
|
|
'./eq.html',
|
|
'./sp.html',
|
|
'./test.mp3'
|
|
|
|
];
|
|
|
|
self.addEventListener( 'install', async function () {
|
|
const cache = await caches.open( 'audiomass' );
|
|
assets.forEach( function ( asset ) {
|
|
cache.add( asset ).catch( function () {
|
|
console.error( '[SW] Cound\'t cache:', asset );
|
|
});
|
|
});
|
|
});
|
|
|
|
self.addEventListener( 'fetch', async function ( event ) {
|
|
const request = event.request;
|
|
event.respondWith( cacheFirst( request ) );
|
|
});
|
|
|
|
async function cacheFirst( request ) {
|
|
const cachedResponse = await caches.match( request );
|
|
if ( cachedResponse === undefined ) {
|
|
console.error( '[SW] Not cached:', request.url );
|
|
return fetch( request );
|
|
}
|
|
|
|
return cachedResponse;
|
|
} |