chrome-debugging-client
Version:
An async/await friendly Chrome debugging client with TypeScript support
37 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("./common");
const WebSocket = require("ws");
class WebSocketOpener {
open(url, delegate) {
return new Promise(resolve => {
let ws = new WebSocket(url);
resolve(common_1.eventPromise(ws, "open", "error").then(() => {
delegate.socket = ws;
ws.on("message", data => delegate.onMessage(data));
ws.on("error", err => delegate.onError(err));
ws.on("close", () => delegate.onClose());
return new WebSocketConnection(ws);
}));
});
}
}
exports.default = WebSocketOpener;
class WebSocketConnection {
constructor(ws) {
this.ws = ws;
}
dispose() {
return new Promise(resolve => {
let ws = this.ws;
if (ws.readyState === WebSocket.CLOSED) {
resolve();
}
else {
ws.close();
resolve(common_1.eventPromise(ws, "close", "error"));
}
}).catch(err => console.error(err));
}
}
//# sourceMappingURL=web-socket-opener.js.map