| async function postAll(data) { |
| const clients = await self.clients.matchAll({ includeUncontrolled: true }); |
| for (const client of clients) { |
| client.postMessage(data); |
| } |
| } |
| |
| function getJSON(data) { |
| const result = {}; |
| try { |
| result.value = data.json(); |
| result.ok = true; |
| } catch (e) { |
| result.ok = false; |
| } |
| return result; |
| } |
| |
| onpush = async ev => { |
| postAll({ |
| constructor: ev.constructor.name, |
| data: ev.data && { |
| text: ev.data.text(), |
| arrayBuffer: ev.data.arrayBuffer(), |
| json: getJSON(ev.data), |
| blob: ev.data.blob(), |
| }, |
| }) |
| } |