@@ -2,15 +2,15 @@ import EventEmitter from "events";
22import { WebSocket } from "ws" ;
33import { DELIMITER } from "./constant" ;
44import { createRequest } from "./request" ;
5- import { Conversation } from "./types" ;
5+ import { Conversation , EdgeGPTResponse } from "./types" ;
66import { appendIdentifier , createHeaders } from "./utils" ;
77import TypedEmitter from "typed-emitter" ;
88
99type ChatHubEvents = {
1010 open : ( ws : WebSocket ) => void ;
1111 message : ( message : string ) => void ;
12- response : ( response : Record < string , any > ) => void ;
13- final : ( response : Record < string , any > ) => void ;
12+ response : ( response : EdgeGPTResponse ) => void ;
13+ final : ( response : EdgeGPTResponse ) => void ;
1414 close : ( code : number , reason : Buffer ) => void ;
1515 error : ( error : Error ) => void ;
1616} ;
@@ -23,7 +23,7 @@ export class ChatHub extends (EventEmitter as new () => TypedEmitter<ChatHubEven
2323 super ( ) ;
2424 this . request = createRequest ( conversation ) ;
2525 }
26-
26+
2727 async ask ( prompt : string ) {
2828 if ( ! this . ws || this . ws . readyState === WebSocket . CLOSED ) {
2929 await this . createWs ( ) ;
@@ -32,7 +32,7 @@ export class ChatHub extends (EventEmitter as new () => TypedEmitter<ChatHubEven
3232 }
3333
3434 askAsync ( prompt : string ) {
35- return new Promise ( ( resolve ) => {
35+ return new Promise < string > ( ( resolve ) => {
3636 this . once ( "final" , ( response ) => {
3737 resolve (
3838 response [ "item" ] [ "messages" ] [ 1 ] [ "adaptiveCards" ] [ 0 ] [ "body" ] [ 0 ] [ "text" ]
@@ -43,7 +43,7 @@ export class ChatHub extends (EventEmitter as new () => TypedEmitter<ChatHubEven
4343 }
4444
4545 protected createWs ( ) {
46- return new Promise ( ( resolve ) => {
46+ return new Promise < WebSocket > ( ( resolve ) => {
4747 this . ws = new WebSocket ( "wss://sydney.bing.com/sydney/ChatHub" , {
4848 headers : this . conversation . headers ?? createHeaders ( ) ,
4949 } ) ;
@@ -58,9 +58,9 @@ export class ChatHub extends (EventEmitter as new () => TypedEmitter<ChatHubEven
5858 if ( ! obj ) {
5959 continue ;
6060 }
61- const response = JSON . parse ( obj ) ;
61+ const response = JSON . parse ( obj ) as EdgeGPTResponse ;
6262 if ( response [ "type" ] === 1 ) {
63- const text =
63+ const text : string =
6464 response [ "arguments" ] [ 0 ] [ "messages" ] [ 0 ] [ "adaptiveCards" ] [ 0 ] [
6565 "body"
6666 ] [ 0 ] [ "text" ] ;
0 commit comments