import { type WorkerProxy, WasmWorkerEventSource } from "@gradio/wasm"; import { is_self_host } from "@gradio/wasm/network"; /** * A WebSocket factory that proxies requests to the worker, * which also falls back to the original WebSocket() for external resource requests. */ export function wasm_proxied_stream_factory( worker_proxy: WorkerProxy, url: URL ): EventSource { if (!is_self_host(url)) { console.debug("Fallback to original WebSocket"); return new EventSource(url); } return new WasmWorkerEventSource(worker_proxy, url) as unknown as EventSource; }