From 63f711e634183a0e1ce06203b67f10a76326693c Mon Sep 17 00:00:00 2001 From: Paris Kasidiaris Date: Wed, 28 Mar 2018 10:57:21 +0300 Subject: [PATCH] Fix styling and make `string` messages to work again --- src/addons/attach/attach.ts | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/addons/attach/attach.ts b/src/addons/attach/attach.ts index 73aeb8d4..b3b2e993 100644 --- a/src/addons/attach/attach.ts +++ b/src/addons/attach/attach.ts @@ -42,24 +42,30 @@ export function attach(term: Terminal, socket: WebSocket, bidirectional: boolean addonTerminal.__getMessage = function(ev: MessageEvent): void { let str; - if (typeof ev.data === 'object') { + + if (typeof ev.data == 'object') { if (!myTextDecoder) { myTextDecoder = new TextDecoder(); } if (ev.data instanceof ArrayBuffer) { - str = myTextDecoder.decode( ev.data ); - displayData( str ); + str = myTextDecoder.decode(ev.data); + displayData(str); } else { let fileReader = new FileReader(); - fileReader.onload = function() { - str = myTextDecoder.decode( this.result ); - displayData( str ); - }; - fileReader.readAsArrayBuffer( ev.data ); + + fileReader.addEventListener('load', function() { + str = myTextDecoder.decode(this.result); + displayData(str); + }); + fileReader.readAsArrayBuffer(ev.data); } - } + } else if (typeof ev.data == 'string') { + displayData(ev.data) + } else { + throw Error(`Cannot handle "${typeof ev.data}" websocket message.`); + } }; - + /** * Push data to buffer or write it in the terminal. * This is used as a callback for FileReader.onload.