diff --git a/demo/zmodem/main.js b/demo/zmodem/main.js index 3f1d5100..619ef2b8 100644 --- a/demo/zmodem/main.js +++ b/demo/zmodem/main.js @@ -7,6 +7,7 @@ var term, pid; Terminal.applyAddon(fit); +Terminal.applyAddon(attach); Terminal.applyAddon(zmodem); Terminal.applyAddon(search); diff --git a/src/addons/zmodem/zmodem.ts b/src/addons/zmodem/zmodem.ts index e8a7824d..297ebe34 100644 --- a/src/addons/zmodem/zmodem.ts +++ b/src/addons/zmodem/zmodem.ts @@ -38,11 +38,13 @@ import { Terminal } from 'xterm'; let zmodem; -export interface IZModemOptions { +export interface IZmodemOptions { noTerminalWriteOutsideSession?: boolean; } -export function zmodemAttach(term: Terminal, ws: WebSocket, opts: IZModemOptions = {}): void { +function zmodemAttach(ws: WebSocket, opts: IZmodemOptions = {}): void { + var term = this; + const senderFunc = (octets: ArrayLike) => ws.send(new Uint8Array(octets)); let zsentry; @@ -85,8 +87,8 @@ export function zmodemAttach(term: Terminal, ws: WebSocket, opts: IZModemOptions } export function apply(terminalConstructor: typeof Terminal): void { - zmodem = (typeof window === 'object') ? (window).ZModem : {Browser: null}; // Nullify browser for tests + zmodem = (typeof window === 'object') ? (window).Zmodem : {Browser: null}; // Nullify browser for tests - (terminalConstructor.prototype).zmodemAttach = zmodemAttach.bind(this, this); + (terminalConstructor.prototype).zmodemAttach = zmodemAttach; (terminalConstructor.prototype).zmodemBrowser = zmodem.Browser; }