openai
Version:
The official TypeScript library for the OpenAI API
39 lines (31 loc) • 1.31 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import * as WS from 'ws';
import { NodeWebSocket } from '../../internal/ws-adapter-node';
import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
import { OpenAI } from '../../client';
export type { ResponsesWSReconnectOptions } from './ws-base';
export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {}
export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
private _wsOptions: WS.ClientOptions | null | undefined;
constructor(client: OpenAI, options?: ResponsesWSClientOptions | null | undefined) {
if (!WS?.WebSocket) {
throw new Error(
'ResponsesWS from "openai/resources/responses/ws" requires the "ws" package but it could not be loaded.',
);
}
const { reconnect, maxQueueSize, ...wsOptions } = options ?? {};
super(client, { reconnect, maxQueueSize });
this._wsOptions = wsOptions;
this._connectInitial();
}
protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
const ws = new WS.WebSocket(url, {
...this._wsOptions,
headers: {
...authHeaders,
...this._wsOptions?.headers,
},
});
return new NodeWebSocket(ws);
}
}