Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.

Commit f3e29c2

Browse files
committed
chore: add edge gpt Response type
1 parent 26809c5 commit f3e29c2

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

src/ChatBot.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export class ChatBot {
1616

1717
let conversation = await createConversation(cookie);
1818
this.chatHub = new ChatHub(conversation);
19+
return this
1920
}
2021

2122
async askAsync(

src/ChatHub.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import EventEmitter from "events";
22
import { WebSocket } from "ws";
33
import { DELIMITER } from "./constant";
44
import { createRequest } from "./request";
5-
import { Conversation } from "./types";
5+
import { Conversation, EdgeGPTResponse } from "./types";
66
import { appendIdentifier, createHeaders } from "./utils";
77
import TypedEmitter from "typed-emitter";
88

99
type 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"];

src/types.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,10 @@ export interface Conversation {
2525
};
2626
headers?: any;
2727
}
28+
29+
export interface EdgeGPTResponse {
30+
type: number;
31+
item: Record<string, any>;
32+
arguments: Record<string, any>[];
33+
[x: string]: any;
34+
}

src/utils.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { v4 as uuidv4 } from "uuid";
33
import _ from "lodash";
44
import { DELIMITER } from "./constant";
55
import { Cookie } from "./types";
6-
import { createWriteStream } from "fs";
76

87
export const logger = consola.create({
98
defaults: {
@@ -51,5 +50,3 @@ export const stringifyCookie = (cookie: Cookie) =>
5150
pre += `${cur.name}=${cur.value};`;
5251
return pre;
5352
}, "");
54-
55-
export const loggerFile = createWriteStream("./edgegpt.log");

0 commit comments

Comments
 (0)