Source code

Revision control

Copy as Markdown

Other Tools

self.addEventListener("install", function () {
self.skipWaiting();
});
self.addEventListener("activate", function (e) {
e.waitUntil(self.clients.claim());
});
self.addEventListener("push", async function (e) {
const clients = await self.clients.matchAll();
let text = "";
if (e.data) {
text = e.data.text();
}
clients.forEach(function (client) {
client.postMessage({ type: "push", payload: text });
});
try {
const { title, body } = e.data.json();
self.registration.showNotification(title, { body });
} catch (e) {}
});
self.addEventListener("pushsubscriptionchange", async function () {
const clients = await self.clients.matchAll();
clients.forEach(function (client) {
client.postMessage({ type: "pushsubscriptionchange" });
});
});