content-index-sw.js (767B)
1 self.addEventListener('install', e => e.waitUntil(skipWaiting())); 2 self.addEventListener('activate', e => e.waitUntil(clients.claim())); 3 4 self.addEventListener('message', async event => { 5 const method = event.data; 6 const {index} = self.registration; 7 const id = 'fenced-frame-id-sw'; 8 9 let promise; 10 if (method === 'add') { 11 promise = index.add({ 12 id, 13 title: 'same title', 14 description: 'same description', 15 url: 'resources/' 16 }); 17 } else if (method === 'delete') { 18 promise = index.delete(id); 19 } else if (method === 'getAll') { 20 promise = index.getAll(); 21 } else { 22 promise = Promise.resolve(); 23 } 24 25 const message = await promise.then(() => 'success').catch(e => e.message); 26 27 event.source.postMessage(message); 28 });