diff --git a/src/addons/zmodem/demo/app.js b/demo/zmodem/app.js similarity index 88% rename from src/addons/zmodem/demo/app.js rename to demo/zmodem/app.js index 31ecd7d2..7124c222 100644 --- a/src/addons/zmodem/demo/app.js +++ b/demo/zmodem/app.js @@ -7,16 +7,16 @@ var pty = require('node-pty'); var terminals = {}, logs = {}; -app.use('/build', express.static(__dirname + '/../../../../build')); -app.use('/demo', express.static(__dirname + '/../../../../demo')); -app.use('/zmodemjs', express.static(__dirname + '/../../../../node_modules/zmodem.js/dist')); +app.use('/build', express.static(__dirname + '/../../build')); +app.use('/demo', express.static(__dirname + '/../../demo')); +app.use('/zmodemjs', express.static(__dirname + '/../../node_modules/zmodem.js/dist')); app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); app.get('/style.css', function(req, res){ - res.sendFile(__dirname + '/style.css'); + res.sendFile(__dirname + '../style.css'); }); app.get('/main.js', function(req, res){ diff --git a/src/addons/zmodem/demo/index.html b/demo/zmodem/index.html similarity index 100% rename from src/addons/zmodem/demo/index.html rename to demo/zmodem/index.html diff --git a/src/addons/zmodem/demo/main.js b/demo/zmodem/main.js similarity index 99% rename from src/addons/zmodem/demo/main.js rename to demo/zmodem/main.js index 2a153fb5..619ef2b8 100644 --- a/src/addons/zmodem/demo/main.js +++ b/demo/zmodem/main.js @@ -6,6 +6,11 @@ var term, socket, pid; +Terminal.applyAddon(fit); +Terminal.applyAddon(attach); +Terminal.applyAddon(zmodem); +Terminal.applyAddon(search); + var terminalContainer = document.getElementById('terminal-container'), actionElements = { findNext: document.querySelector('#find-next'), diff --git a/package.json b/package.json index a2faab9f..153090b2 100644 --- a/package.json +++ b/package.json @@ -76,8 +76,7 @@ }, "scripts": { "start": "node demo/app", - "prestart-zmodem": "npm run build", - "start-zmodem": "node build/addons/zmodem/demo/app", + "start-zmodem": "node demo/zmodem/app", "lint": "tslint src/*.ts src/**/*.ts", "test": "gulp test", "build:docs": "jsdoc -c jsdoc.json", 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; }