| 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; | |
| } | |