src/popup/popup-messaging.ts

Total Symbols
3
Lines of Code
32
Avg Complexity
2.3
Symbol Types
1

Symbols by Kind

function 3

All Symbols

Name Kind Visibility Status Lines Signature
sendToActiveTab function exported- 8-18 sendToActiveTab( message: ExtensionMessage, ): : Promise<unknown>
sendToBackground function exported- 20-24 sendToBackground( message: ExtensionMessage, ): : Promise<unknown>
getActivePageUrl function exported- 26-29 getActivePageUrl(): : Promise<string>

Full Source

/**
 * Popup messaging helpers — wraps chrome messaging APIs
 */

import type { ExtensionMessage } from "@/types";
import { sendToActiveTab as sendMessageToActiveTab } from "@/lib/chrome/active-tab-messaging";

export async function sendToActiveTab(
  message: ExtensionMessage,
): Promise<unknown> {
  const result = await sendMessageToActiveTab(message, {
    injectIfNeeded: true,
  });
  if (result && typeof result === "object" && "error" in result) {
    return null;
  }
  return result;
}

export async function sendToBackground(
  message: ExtensionMessage,
): Promise<unknown> {
  return chrome.runtime.sendMessage(message);
}

export async function getActivePageUrl(): Promise<string> {
  const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
  return tab?.url ?? "";
}

export { escapeHtml } from "@/lib/ui";