]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Implement addon loader (CommonJS + RequireJS)
authorParis <paris@sourcelair.com>
Mon, 13 Jun 2016 16:07:29 +0000 (19:07 +0300)
committerParis <paris@sourcelair.com>
Mon, 13 Jun 2016 16:07:29 +0000 (19:07 +0300)
Closes #96

src/xterm.js

index 3d29a66f9c9b200a3e78ddba253d8f42b4b1c8f8..5c20dccfcb0bdc8ef0842510b6c1c53f48776ffa 100644 (file)
       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