mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-10 09:10:29 +03:00
Move message listener and add a togglePush listener (should ensure registers/deregisters always go off this way)
This commit is contained in:
parent
91d6a5d2e9
commit
f100279e65
1 changed files with 23 additions and 12 deletions
35
src/sw.ts
35
src/sw.ts
|
|
@ -19,18 +19,6 @@ function sendAndWaitForReply(client: WindowClient, type: string, payload: object
|
|||
return promise;
|
||||
}
|
||||
|
||||
self.addEventListener('message', (event: ExtendableMessageEvent) => {
|
||||
const { replyTo } = event.data;
|
||||
if (replyTo) {
|
||||
const resolve = pendingReplies.get(replyTo);
|
||||
if (resolve) {
|
||||
pendingReplies.delete(replyTo);
|
||||
resolve(event.data.payload);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function fetchConfig(token?: string): RequestInit | undefined {
|
||||
if (!token) return undefined;
|
||||
|
||||
|
|
@ -42,6 +30,29 @@ function fetchConfig(token?: string): RequestInit | undefined {
|
|||
};
|
||||
}
|
||||
|
||||
self.addEventListener('message', (event: ExtendableMessageEvent) => {
|
||||
if (event.data.type === 'togglePush') {
|
||||
const token = event.data?.token;
|
||||
const fetchOptions = fetchConfig(token);
|
||||
event.waitUntil(
|
||||
fetch(`${event.data.url}/_matrix/client/v3/pushers/set`, {
|
||||
method: 'POST',
|
||||
...fetchOptions,
|
||||
body: JSON.stringify(event.data.pusherData),
|
||||
})
|
||||
);
|
||||
return;
|
||||
}
|
||||
const { replyTo } = event.data;
|
||||
if (replyTo) {
|
||||
const resolve = pendingReplies.get(replyTo);
|
||||
if (resolve) {
|
||||
pendingReplies.delete(replyTo);
|
||||
resolve(event.data.payload);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('activate', (event: ExtendableEvent) => {
|
||||
event.waitUntil(
|
||||
(async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue