import "./main.js"; import { getter, uncurryThis } from "ext:core/primordials"; import type * as Vendor from "./vendor_types.js"; export type * from "./vendor_types.js"; export type ReadableStream = Vendor.ReadableStream; export type WritableStream = Vendor.WritableStream; export type TransformStream = Vendor.TransformStream< I, O >; export type ReadableByteStreamController = Vendor.ReadableByteStreamController; export type ReadableStreamBYOBRequest = Vendor.ReadableStreamBYOBRequest; export type TransformStreamDefaultController = Vendor.TransformStreamDefaultController; export const { ReadableStream, WritableStream, TransformStream, ReadableByteStreamController, ReadableStreamBYOBRequest, TransformStreamDefaultController, } = globalThis; export const streamLocked = getter(ReadableStream.prototype, "locked"); export const streamReader: ( stream: Vendor.ReadableStream, ) => Vendor.ReadableStreamDefaultReader = uncurryThis( ReadableStream.prototype.getReader, ); export const streamTee: ( stream: Vendor.ReadableStream, ) => [Vendor.ReadableStream, Vendor.ReadableStream] = uncurryThis( ReadableStream.prototype.tee, ); export const streamCancel: ( stream: Vendor.ReadableStream, reason?: unknown, ) => Promise = uncurryThis(ReadableStream.prototype.cancel); export const read = uncurryThis(ReadableStreamDefaultReader.prototype.read) as < R, >( reader: Vendor.ReadableStreamDefaultReader, ) => Promise>; export const release: ( reader: Vendor.ReadableStreamDefaultReader, ) => void = uncurryThis( ReadableStreamDefaultReader.prototype.releaseLock, ); export const readerCancel: ( reader: Vendor.ReadableStreamDefaultReader, reason?: unknown, ) => Promise = uncurryThis( ReadableStreamDefaultReader.prototype.cancel, ); export const enqueue = uncurryThis( ReadableByteStreamController.prototype.enqueue, ); export const close = uncurryThis(ReadableByteStreamController.prototype.close); export const errorStream = uncurryThis( ReadableByteStreamController.prototype.error, ); export const byobRequest = getter( ReadableByteStreamController.prototype, "byobRequest", ); export const respond = uncurryThis(ReadableStreamBYOBRequest.prototype.respond); export function finish(controller: Vendor.ReadableByteStreamController): void { const request = byobRequest(controller); close(controller); if (request) respond(request, 0); }