From 57300f51598305a436b53368f67bc20d8517bc87 Mon Sep 17 00:00:00 2001 From: Paris Date: Mon, 13 Jun 2016 19:07:29 +0300 Subject: [PATCH] Implement addon loader (CommonJS + RequireJS) Closes #96 --- src/xterm.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/xterm.js b/src/xterm.js index 3d29a66f..5c20dccf 100644 --- a/src/xterm.js +++ b/src/xterm.js @@ -759,6 +759,26 @@ this.emit('open'); }; + + /** + * Attempts to load an add-on using CommonJS or RequireJS (whichever is available). + * @param {string} addon The name of the addon to load + * @static + */ + Terminal.loadAddon = function(addon, callback) { + if (typeof exports === 'object' && typeof module === 'object') { + // CommonJS + return require(__dirname + '/../addons/' + addon); + } else if (typeof define == 'function') { + // RequireJS + return require(['../addons/' + addon + '/' + addon], callback); + } else { + console.error('Cannot load a module without a CommonJS or RequireJS environment.'); + return false; + } + }; + + // XTerm mouse events // http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking // To better understand these