feat(response): Add streamNode() method for Node.js stream support; update tests

This commit is contained in:
2025-08-19 01:20:19 +00:00
parent d455a34632
commit 35867d9148
5 changed files with 33 additions and 6 deletions

View File

@@ -42,4 +42,9 @@ export abstract class CoreResponse<T = any> implements types.ICoreResponse<T> {
* Get response as a web-style ReadableStream
*/
abstract stream(): ReadableStream<Uint8Array> | null;
/**
* Get response as a Node.js stream (throws in browser)
*/
abstract streamNode(): NodeJS.ReadableStream | never;
}

View File

@@ -86,4 +86,5 @@ export interface ICoreResponse<T = any> {
text(): Promise<string>;
arrayBuffer(): Promise<ArrayBuffer>;
stream(): ReadableStream<Uint8Array> | null; // Always returns web-style stream
streamNode(): NodeJS.ReadableStream | never; // Returns Node.js stream or throws in browser
}

View File

@@ -7,9 +7,6 @@ export * from '../core_base/types.js';
* Fetch-specific response extensions
*/
export interface IFetchResponse<T = any> extends baseTypes.ICoreResponse<T> {
// Node.js stream method that throws in browser
streamNode(): never;
// Access to raw Response object
raw(): Response;
}

View File

@@ -16,9 +16,6 @@ export interface IExtendedIncomingMessage<T = any>
* Node.js specific response extensions
*/
export interface INodeResponse<T = any> extends baseTypes.ICoreResponse<T> {
// Node.js specific methods
streamNode(): NodeJS.ReadableStream; // Returns Node.js style stream
// Legacy compatibility
raw(): plugins.http.IncomingMessage;
}