its for when you want to get like notifications for your reposts
1import { 2 ConnectionStatus, 3 connectService, 4 Notification, 5} from "bsky-repost-likes-monitor/background"; 6import { onMessage, sendMessage } from "webext-bridge/background"; 7 8let websocket: WebSocket | null = null; 9let connectionStatus: ConnectionStatus = "disconnected"; 10let error: string | null = null; 11let items: Notification[] = []; 12 13export default defineBackground({ 14 persistent: true, 15 main: () => { 16 onMessage("connectService", ({ data: { actorId, serviceDomain } }) => { 17 connectService({ 18 actorId, 19 serviceDomain, 20 pushNotification: (item) => { 21 items = [item, ...items]; 22 sendMessage("setItems", items, "popup"); 23 }, 24 setConnectionStatus, 25 setError, 26 }).then((ws) => (websocket = ws ?? null)); 27 }); 28 onMessage("disconnectService", () => { 29 setConnectionStatus("disconnecting..."); 30 websocket?.close(); 31 websocket = null; 32 }); 33 onMessage("connectionStatus", () => { 34 return connectionStatus; 35 }); 36 onMessage("error", () => { 37 return error; 38 }); 39 onMessage("items", () => { 40 return items; 41 }); 42 onMessage("setItems", ({ data }) => { 43 items = data; 44 }); 45 }, 46}); 47 48const setConnectionStatus = (status: ConnectionStatus) => { 49 connectionStatus = status; 50 sendMessage("setConnectionStatus", status, "popup"); 51}; 52const setError = (_error: string | null) => { 53 error = _error; 54 sendMessage("setError", error, "popup"); 55};