src/background/broadcast.ts

Total Symbols
1
Lines of Code
21
Avg Complexity
1.0
Symbol Types
1

Symbols by Kind

function 1

All Symbols

Name Kind Visibility Status Lines Signature
broadcastToAllTabs function exported- 7-20 broadcastToAllTabs( message: ExtensionMessage, ): : Promise<void>

Full Source

/**
 * Broadcast helper — sends a message to all tabs that have an active content script.
 */

import type { ExtensionMessage } from "@/types";

export async function broadcastToAllTabs(
  message: ExtensionMessage,
): Promise<void> {
  const tabs = await chrome.tabs.query({});
  await Promise.allSettled(
    tabs
      .filter((tab) => tab.id != null)
      .map((tab) =>
        chrome.tabs.sendMessage(tab.id!, message).catch(() => {
          /* tab has no content script — expected */
        }),
      ),
  );
}