From f8cf2fce66ff93bc1810c8403e33ee4a936ff6fb Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Thu, 23 Jul 2020 19:13:24 -0700 Subject: [PATCH] abstract more --- .../contrib/debug/node/debugAdapter.ts | 80 ++++++++----------- 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/src/vs/workbench/contrib/debug/node/debugAdapter.ts b/src/vs/workbench/contrib/debug/node/debugAdapter.ts index debe94510710..dc6d941a0685 100644 --- a/src/vs/workbench/contrib/debug/node/debugAdapter.ts +++ b/src/vs/workbench/contrib/debug/node/debugAdapter.ts @@ -95,7 +95,35 @@ export abstract class NetworkDebugAdapter extends StreamDebugAdapter { protected socket?: net.Socket; - abstract startSession(): Promise; + protected abstract createConnection(connectionListener: () => void): net.Socket; + + startSession(): Promise { + return new Promise((resolve, reject) => { + let connected = false; + + this.socket = this.createConnection(() => { + this.connect(this.socket!, this.socket!); + resolve(); + connected = true; + }); + + this.socket.on('close', () => { + if (connected) { + this._onError.fire(new Error('connection closed')); + } else { + reject(new Error('connection closed')); + } + }); + + this.socket.on('error', error => { + if (connected) { + this._onError.fire(error); + } else { + reject(error); + } + }); + }); + } async stopSession(): Promise { await this.cancelPendingRequests(); @@ -115,29 +143,8 @@ export class SocketDebugAdapter extends NetworkDebugAdapter { super(); } - startSession(): Promise { - return new Promise((resolve, reject) => { - let connected = false; - this.socket = net.createConnection(this.adapterServer.port, this.adapterServer.host || '127.0.0.1', () => { - this.connect(this.socket!, this.socket!); - resolve(); - connected = true; - }); - this.socket.on('close', () => { - if (connected) { - this._onError.fire(new Error('connection closed')); - } else { - reject(new Error('connection closed')); - } - }); - this.socket.on('error', error => { - if (connected) { - this._onError.fire(error); - } else { - reject(error); - } - }); - }); + protected createConnection(connectionListener: () => void): net.Socket { + return net.createConnection(this.adapterServer.port, this.adapterServer.host || '127.0.0.1', connectionListener); } } @@ -150,29 +157,8 @@ export class NamedPipeDebugAdapter extends NetworkDebugAdapter { super(); } - startSession(): Promise { - return new Promise((resolve, reject) => { - let connected = false; - this.socket = net.createConnection(this.adapterServer.path, () => { - this.connect(this.socket!, this.socket!); - resolve(); - connected = true; - }); - this.socket.on('close', () => { - if (connected) { - this._onError.fire(new Error('connection closed')); - } else { - reject(new Error('connection closed')); - } - }); - this.socket.on('error', error => { - if (connected) { - this._onError.fire(error); - } else { - reject(error); - } - }); - }); + protected createConnection(connectionListener: () => void): net.Socket { + return net.createConnection(this.adapterServer.path, connectionListener); } }