55 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", { value: true });
 | |
| exports.OpenAIRealtimeEmitter = exports.OpenAIRealtimeError = void 0;
 | |
| exports.isAzure = isAzure;
 | |
| exports.buildRealtimeURL = buildRealtimeURL;
 | |
| const EventEmitter_1 = require("../../lib/EventEmitter.js");
 | |
| const error_1 = require("../../error.js");
 | |
| const index_1 = require("../../index.js");
 | |
| class OpenAIRealtimeError extends error_1.OpenAIError {
 | |
|     constructor(message, event) {
 | |
|         super(message);
 | |
|         this.error = event?.error;
 | |
|         this.event_id = event?.event_id;
 | |
|     }
 | |
| }
 | |
| exports.OpenAIRealtimeError = OpenAIRealtimeError;
 | |
| class OpenAIRealtimeEmitter extends EventEmitter_1.EventEmitter {
 | |
|     _onError(event, message, cause) {
 | |
|         message =
 | |
|             event?.error ?
 | |
|                 `${event.error.message} code=${event.error.code} param=${event.error.param} type=${event.error.type} event_id=${event.error.event_id}`
 | |
|                 : message ?? 'unknown error';
 | |
|         if (!this._hasListener('error')) {
 | |
|             const error = new OpenAIRealtimeError(message +
 | |
|                 `\n\nTo resolve these unhandled rejection errors you should bind an \`error\` callback, e.g. \`rt.on('error', (error) => ...)\` `, event);
 | |
|             // @ts-ignore
 | |
|             error.cause = cause;
 | |
|             Promise.reject(error);
 | |
|             return;
 | |
|         }
 | |
|         const error = new OpenAIRealtimeError(message, event);
 | |
|         // @ts-ignore
 | |
|         error.cause = cause;
 | |
|         this._emit('error', error);
 | |
|     }
 | |
| }
 | |
| exports.OpenAIRealtimeEmitter = OpenAIRealtimeEmitter;
 | |
| function isAzure(client) {
 | |
|     return client instanceof index_1.AzureOpenAI;
 | |
| }
 | |
| function buildRealtimeURL(client, model) {
 | |
|     const path = '/realtime';
 | |
|     const baseURL = client.baseURL;
 | |
|     const url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
 | |
|     url.protocol = 'wss';
 | |
|     if (isAzure(client)) {
 | |
|         url.searchParams.set('api-version', client.apiVersion);
 | |
|         url.searchParams.set('deployment', model);
 | |
|     }
 | |
|     else {
 | |
|         url.searchParams.set('model', model);
 | |
|     }
 | |
|     return url;
 | |
| }
 | |
| //# sourceMappingURL=internal-base.js.map
 |