Skip to content

Commit aec57c5

Browse files
fix: avoid console usage
1 parent 3735172 commit aec57c5

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

src/core/streaming.ts

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { findDoubleNewlineIndex, LineDecoder } from '../internal/decoders/line';
55
import { ReadableStreamToAsyncIterable } from '../internal/shims';
66
import { isAbortError } from '../internal/errors';
77
import { encodeUTF8 } from '../internal/utils/bytes';
8+
import { loggerFor } from '../internal/utils/log';
9+
import type { OpenAI } from '../client';
810

911
import { APIError } from './error';
1012

@@ -18,16 +20,24 @@ export type ServerSentEvent = {
1820

1921
export class Stream<Item> implements AsyncIterable<Item> {
2022
controller: AbortController;
23+
#client: OpenAI | undefined;
2124

2225
constructor(
2326
private iterator: () => AsyncIterator<Item>,
2427
controller: AbortController,
28+
client?: OpenAI,
2529
) {
2630
this.controller = controller;
31+
this.#client = client;
2732
}
2833

29-
static fromSSEResponse<Item>(response: Response, controller: AbortController): Stream<Item> {
34+
static fromSSEResponse<Item>(
35+
response: Response,
36+
controller: AbortController,
37+
client?: OpenAI,
38+
): Stream<Item> {
3039
let consumed = false;
40+
const logger = client ? loggerFor(client) : console;
3141

3242
async function* iterator(): AsyncIterator<Item, any, undefined> {
3343
if (consumed) {
@@ -54,8 +64,8 @@ export class Stream<Item> implements AsyncIterable<Item> {
5464
try {
5565
data = JSON.parse(sse.data);
5666
} catch (e) {
57-
console.error(`Could not parse message into JSON:`, sse.data);
58-
console.error(`From chunk:`, sse.raw);
67+
logger.error(`Could not parse message into JSON:`, sse.data);
68+
logger.error(`From chunk:`, sse.raw);
5969
throw e;
6070
}
6171

@@ -91,14 +101,18 @@ export class Stream<Item> implements AsyncIterable<Item> {
91101
}
92102
}
93103

94-
return new Stream(iterator, controller);
104+
return new Stream(iterator, controller, client);
95105
}
96106

97107
/**
98108
* Generates a Stream from a newline-separated ReadableStream
99109
* where each item is a JSON value.
100110
*/
101-
static fromReadableStream<Item>(readableStream: ReadableStream, controller: AbortController): Stream<Item> {
111+
static fromReadableStream<Item>(
112+
readableStream: ReadableStream,
113+
controller: AbortController,
114+
client?: OpenAI,
115+
): Stream<Item> {
102116
let consumed = false;
103117

104118
async function* iterLines(): AsyncGenerator<string, void, unknown> {
@@ -138,7 +152,7 @@ export class Stream<Item> implements AsyncIterable<Item> {
138152
}
139153
}
140154

141-
return new Stream(iterator, controller);
155+
return new Stream(iterator, controller, client);
142156
}
143157

144158
[Symbol.asyncIterator](): AsyncIterator<Item> {
@@ -168,8 +182,8 @@ export class Stream<Item> implements AsyncIterable<Item> {
168182
};
169183

170184
return [
171-
new Stream(() => teeIterator(left), this.controller),
172-
new Stream(() => teeIterator(right), this.controller),
185+
new Stream(() => teeIterator(left), this.controller, this.#client),
186+
new Stream(() => teeIterator(right), this.controller, this.#client),
173187
];
174188
}
175189

src/internal/parse.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ export async function defaultParseResponse<T>(
2828
// that if you set `stream: true` the response type must also be `Stream<T>`
2929

3030
if (props.options.__streamClass) {
31-
return props.options.__streamClass.fromSSEResponse(response, props.controller) as any;
31+
return props.options.__streamClass.fromSSEResponse(response, props.controller, client) as any;
3232
}
3333

34-
return Stream.fromSSEResponse(response, props.controller) as any;
34+
return Stream.fromSSEResponse(response, props.controller, client) as any;
3535
}
3636

3737
// fetch refuses to read the body when the status code is 204.

0 commit comments

Comments
 (0)