support safari with a workaround, clean up code a bit

This commit is contained in:
Toshit Chawda 2024-07-12 21:13:11 -07:00
parent e82c0f0d08
commit 63211161f1
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
3 changed files with 29 additions and 11 deletions

View file

@ -1,5 +1,5 @@
import { BareTransport } from "./baretypes";
import { BroadcastMessage, WorkerMessage, WorkerResponse } from "./connection"
import { BroadcastMessage, WorkerMessage, WorkerResponse, browserSupportsTransferringStreams } from "./connection"
let currentTransport: BareTransport | null = null;
let currentTransportName: string = "";
@ -51,6 +51,11 @@ function handleConnection(port: MessagePort) {
null
);
if (!browserSupportsTransferringStreams() && resp.body instanceof ReadableStream) {
const conversionResp = new Response(resp.body);
resp.body = await conversionResp.arrayBuffer();
}
if (resp.body instanceof ReadableStream || resp.body instanceof ArrayBuffer) {
port.postMessage(<WorkerResponse>{ type: "fetch", fetch: resp }, [resp.body]);
} else {