29 lines
589 B
JavaScript
29 lines
589 B
JavaScript
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(),
|
|
},
|
|
})
|
|
}
|