import { DEFAULT_RELAY_URL, normalizeRelayUrl } from "../shared/rendezvous"; const RELAY_URL_KEY = "peach_relay_url_v1"; const LAN_ONLY_KEY = "peach_sync_lan_only_v1"; export interface RelaySettings { relayUrl: string; lanOnly: boolean; } export async function getRelaySettings(): Promise { try { const raw = await chrome.storage.local.get([RELAY_URL_KEY, LAN_ONLY_KEY]); const values = raw as Record; const relayUrl = typeof values[RELAY_URL_KEY] === "string" ? safeNormalize(values[RELAY_URL_KEY] as string) : DEFAULT_RELAY_URL; return { relayUrl, lanOnly: values[LAN_ONLY_KEY] === true, }; } catch { return { relayUrl: DEFAULT_RELAY_URL, lanOnly: false }; } } export async function setRelayUrl(input: string): Promise { const relayUrl = normalizeRelayUrl(input); await chrome.storage.local.set({ [RELAY_URL_KEY]: relayUrl }); return relayUrl; } export async function setLanOnly(lanOnly: boolean): Promise { await chrome.storage.local.set({ [LAN_ONLY_KEY]: lanOnly }); } function safeNormalize(input: string): string { try { return normalizeRelayUrl(input); } catch { return DEFAULT_RELAY_URL; } }