diff options
Diffstat (limited to 'src/bun.js/builtins')
-rw-r--r-- | src/bun.js/builtins/WebCoreJSBuiltins.cpp | 4 | ||||
-rw-r--r-- | src/bun.js/builtins/builtins.d.ts | 4 | ||||
-rw-r--r-- | src/bun.js/builtins/ts/ReadableStream.ts | 17 | ||||
-rw-r--r-- | src/bun.js/builtins/ts/ReadableStreamInternals.ts | 2 |
4 files changed, 13 insertions, 14 deletions
diff --git a/src/bun.js/builtins/WebCoreJSBuiltins.cpp b/src/bun.js/builtins/WebCoreJSBuiltins.cpp index 1e270f1ce..614c34a1a 100644 --- a/src/bun.js/builtins/WebCoreJSBuiltins.cpp +++ b/src/bun.js/builtins/WebCoreJSBuiltins.cpp @@ -2420,9 +2420,9 @@ const char* const s_readableStreamReadableStreamToTextCode = "(function (_){\"us const JSC::ConstructAbility s_readableStreamReadableStreamToArrayBufferCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_readableStreamReadableStreamToArrayBufferCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_readableStreamReadableStreamToArrayBufferCodeImplementationVisibility = JSC::ImplementationVisibility::Private; -const int s_readableStreamReadableStreamToArrayBufferCodeLength = 212; +const int s_readableStreamReadableStreamToArrayBufferCodeLength = 271; static const JSC::Intrinsic s_readableStreamReadableStreamToArrayBufferCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var p=@getByIdDirectPrivate(_,\"underlyingSource\");if(p!==@undefined)return @readableStreamToArrayBufferDirect(_,p);return @Bun.readableStreamToArray(_).@then(@Bun.concatArrayBuffers)})\n"; +const char* const s_readableStreamReadableStreamToArrayBufferCode = "(function (_){\"use strict\";var f=@getByIdDirectPrivate(_,\"underlyingSource\");if(f!==@undefined)return @readableStreamToArrayBufferDirect(_,f);var A=@Bun.readableStreamToArray(_);if(@isPromise(A))return A.@then(@Bun.concatArrayBuffers);return @Bun.concatArrayBuffers(A)})\n"; // readableStreamToJSON const JSC::ConstructAbility s_readableStreamReadableStreamToJSONCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; diff --git a/src/bun.js/builtins/builtins.d.ts b/src/bun.js/builtins/builtins.d.ts index da92c18bd..7bd3e4fae 100644 --- a/src/bun.js/builtins/builtins.d.ts +++ b/src/bun.js/builtins/builtins.d.ts @@ -441,10 +441,6 @@ declare class OutOfMemoryError { constructor(); } -declare class ReadableStream { - constructor(stream: unknown, view?: unknown); - values(options?: unknown): AsyncIterableIterator<unknown>; -} declare class ReadableStreamDefaultController { constructor( stream: unknown, diff --git a/src/bun.js/builtins/ts/ReadableStream.ts b/src/bun.js/builtins/ts/ReadableStream.ts index e86b14f89..613f869e5 100644 --- a/src/bun.js/builtins/ts/ReadableStream.ts +++ b/src/bun.js/builtins/ts/ReadableStream.ts @@ -102,7 +102,7 @@ export function initializeReadableStream(this: any, underlyingSource: Underlying } $linkTimeConstant; -export function readableStreamToArray(stream) { +export function readableStreamToArray(stream: ReadableStream): Promise<unknown[]> { // this is a direct stream var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource"); if (underlyingSource !== undefined) { @@ -113,7 +113,7 @@ export function readableStreamToArray(stream) { } $linkTimeConstant; -export function readableStreamToText(stream) { +export function readableStreamToText(stream: ReadableStream): Promise<string> { // this is a direct stream var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource"); if (underlyingSource !== undefined) { @@ -124,7 +124,7 @@ export function readableStreamToText(stream) { } $linkTimeConstant; -export function readableStreamToArrayBuffer(stream) { +export function readableStreamToArrayBuffer(stream: ReadableStream<ArrayBuffer>): Promise<ArrayBuffer> | ArrayBuffer { // this is a direct stream var underlyingSource = $getByIdDirectPrivate(stream, "underlyingSource"); @@ -132,16 +132,21 @@ export function readableStreamToArrayBuffer(stream) { return $readableStreamToArrayBufferDirect(stream, underlyingSource); } - return Promise.resolve(Bun.readableStreamToArray(stream)).$then(Bun.concatArrayBuffers); + var array = Bun.readableStreamToArray(stream); + if ($isPromise(array)) { + return array.$then(Bun.concatArrayBuffers); + } + + return Bun.concatArrayBuffers(array); } $linkTimeConstant; -export function readableStreamToJSON(stream) { +export function readableStreamToJSON(stream: ReadableStream): unknown { return Bun.readableStreamToText(stream).$then(globalThis.JSON.parse); } $linkTimeConstant; -export function readableStreamToBlob(stream) { +export function readableStreamToBlob(stream: ReadableStream): Promise<Blob> { return Promise.resolve(Bun.readableStreamToArray(stream)).$then(array => new Blob(array)); } diff --git a/src/bun.js/builtins/ts/ReadableStreamInternals.ts b/src/bun.js/builtins/ts/ReadableStreamInternals.ts index c0867445f..0c4e816f4 100644 --- a/src/bun.js/builtins/ts/ReadableStreamInternals.ts +++ b/src/bun.js/builtins/ts/ReadableStreamInternals.ts @@ -1750,8 +1750,6 @@ export async function readableStreamToArrayDirect(stream, underlyingSource) { stream = undefined; reader = undefined; } - - return capability.$promise; } export function readableStreamDefineLazyIterators(prototype) { |