UNPKG

openai

Version:

The official TypeScript library for the OpenAI API

39 lines (31 loc) 1.31 kB
// 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); } }