Move to TypeScript build

This commit is contained in:
Daniel Imms 2016-10-01 00:11:29 -07:00
parent 8bf8147028
commit 441009d359
16 changed files with 47 additions and 62 deletions

View File

@ -1,3 +0,0 @@
{
"presets": ["es2015"]
}

View File

@ -11,12 +11,12 @@
/* /*
* CommonJS environment * CommonJS environment
*/ */
module.exports = attach(require('../../src/xterm')); module.exports = attach(require('../../build/xterm'));
} else if (typeof define == 'function') { } else if (typeof define == 'function') {
/* /*
* Require.js is available * Require.js is available
*/ */
define(['../../src/xterm'], attach); define(['../../build/xterm'], attach);
} else { } else {
/* /*
* Plain browser environment * Plain browser environment

View File

@ -16,12 +16,12 @@
/* /*
* CommonJS environment * CommonJS environment
*/ */
module.exports = fit(require('../../src/xterm')); module.exports = fit(require('../../build/xterm'));
} else if (typeof define == 'function') { } else if (typeof define == 'function') {
/* /*
* Require.js is available * Require.js is available
*/ */
define(['../../src/xterm'], fit); define(['../../build/xterm'], fit);
} else { } else {
/* /*
* Plain browser environment * Plain browser environment

View File

@ -15,12 +15,12 @@
/* /*
* CommonJS environment * CommonJS environment
*/ */
module.exports = fullscreen(require('../../src/xterm')); module.exports = fullscreen(require('../../build/xterm'));
} else if (typeof define == 'function') { } else if (typeof define == 'function') {
/* /*
* Require.js is available * Require.js is available
*/ */
define(['../../src/xterm'], fullscreen); define(['../../build/xterm'], fullscreen);
} else { } else {
/* /*
* Plain browser environment * Plain browser environment

View File

@ -3,12 +3,12 @@
/* /*
* CommonJS environment * CommonJS environment
*/ */
module.exports = linkify(require('../../src/xterm')); module.exports = linkify(require('../../build/xterm'));
} else if (typeof define == 'function') { } else if (typeof define == 'function') {
/* /*
* Require.js is available * Require.js is available
*/ */
define(['../../src/xterm'], linkify); define(['../../build/xterm'], linkify);
} else { } else {
/* /*
* Plain browser environment * Plain browser environment

View File

@ -1,38 +1,5 @@
#! /usr/bin/env node #! /usr/bin/env sh
var child_process = require('child_process'); mkdir -p build
var fs = require('fs'); browserify src/xterm.js --standalone Terminal -p [ tsify ] --outfile build/xterm.js
cp src/xterm.css build/xterm.css
var buildDir = process.env.BUILD_DIR || 'build';
if (!fs.existsSync(buildDir)){
fs.mkdirSync(buildDir);
}
// Add `node_modules/.bin` to PATH
process.env.PATH = process.cwd() + '/node_modules/.bin:' + process.env.PATH;
console.log('Building xterm.js into ' + buildDir);
// Build ES2015 modules into ES5 form, then concatenate them,
// then remove unused require calls and save in output file with source map.
console.log(' - Building ' + buildDir + '/xterm.js...');
var jsBuildCmd = 'browserify src/xterm.js -s Terminal -t [ babelify --presets [ es2015 ] ] --debug | ';
jsBuildCmd += 'derequire | exorcist ' + buildDir + '/xterm.js.map > ' + buildDir + '/xterm.js';
var jsBuildProcess = child_process.execSync(jsBuildCmd);
if (jsBuildProcess.status) {
console.log(jsBuildProcess.error);
}
console.log(' OK.');
// Copy CSS into $BUILD_DIR
console.log(' - Building ' + buildDir + '/xterm.css...');
fs.createReadStream('src/xterm.css').pipe(
fs.createWriteStream(buildDir + '/xterm.css')
);
console.log(' OK.');

View File

@ -10,14 +10,10 @@
"repository": "https://github.com/sourcelair/xterm.js", "repository": "https://github.com/sourcelair/xterm.js",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"babel-core": "6.14.0", "@types/node": "^6.0.41",
"babel-preset-es2015": "6.14.0",
"babelify": "^7.3.0",
"browserify": "^13.1.0", "browserify": "^13.1.0",
"chai": "3.5.0", "chai": "3.5.0",
"derequire": "^2.0.3",
"docdash": "0.4.0", "docdash": "0.4.0",
"exorcist": "^0.4.0",
"express": "4.13.4", "express": "4.13.4",
"express-ws": "2.0.0-rc.1", "express-ws": "2.0.0-rc.1",
"glob": "^7.0.5", "glob": "^7.0.5",
@ -25,11 +21,14 @@
"mocha": "2.5.3", "mocha": "2.5.3",
"nodemon": "1.10.2", "nodemon": "1.10.2",
"pty.js": "0.3.1", "pty.js": "0.3.1",
"sleep": "^3.0.1" "sleep": "^3.0.1",
"tsify": "^1.0.7",
"typescript": "^2.0.3",
"typings": "^1.4.0"
}, },
"scripts": { "scripts": {
"start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'", "start": "nodemon --watch src --watch addons --exec bash -c './bin/build && node demo/app'",
"test": "mocha --recursive --compilers js:babel-core/register", "test": "./bin/build && mocha --recursive",
"build:docs": "jsdoc -c jsdoc.json", "build:docs": "jsdoc -c jsdoc.json",
"build": "./bin/build" "build": "./bin/build"
} }

View File

@ -683,7 +683,7 @@ Terminal.prototype.open = function(parent) {
Terminal.loadAddon = function(addon, callback) { Terminal.loadAddon = function(addon, callback) {
if (typeof exports === 'object' && typeof module === 'object') { if (typeof exports === 'object' && typeof module === 'object') {
// CommonJS // CommonJS
return require(__dirname + '/../addons/' + addon); return require('../addons/' + addon);
} else if (typeof define == 'function') { } else if (typeof define == 'function') {
// RequireJS // RequireJS
return require(['../addons/' + addon + '/' + addon], callback); return require(['../addons/' + addon + '/' + addon], callback);

View File

@ -1,5 +1,5 @@
var assert = require('chai').assert; var assert = require('chai').assert;
var Terminal = require('../../src/xterm'); var Terminal = require('../../build/xterm');
var linkify = require('../../addons/linkify/linkify'); var linkify = require('../../addons/linkify/linkify');
describe('linkify addon', function () { describe('linkify addon', function () {

View File

@ -1,5 +1,5 @@
var assert = require('chai').assert; var assert = require('chai').assert;
var Terminal = require('../../src/xterm'); var Terminal = require('../../build/xterm');
describe('xterm.js addons', function() { describe('xterm.js addons', function() {
it('should load addons with Terminal.loadAddon', function () { it('should load addons with Terminal.loadAddon', function () {

View File

@ -1,5 +1,5 @@
var assert = require('chai').assert; var assert = require('chai').assert;
var Terminal = require('../src/xterm'); var Terminal = require('../build/xterm');
describe('CompositionHelper', function () { describe('CompositionHelper', function () {
var terminal; var terminal;

View File

@ -2,7 +2,7 @@ var glob = require('glob');
var fs = require('fs'); var fs = require('fs');
var pty = require('pty.js'); var pty = require('pty.js');
var sleep = require('sleep'); var sleep = require('sleep');
var Terminal = require('../src/xterm'); var Terminal = require('../build/xterm');
var CONSOLE_LOG = console.log; var CONSOLE_LOG = console.log;

View File

@ -1,6 +1,6 @@
var assert = require('chai').assert; var assert = require('chai').assert;
var expect = require('chai').expect; var expect = require('chai').expect;
var Terminal = require('../src/xterm'); var Terminal = require('../build/xterm');
describe('xterm.js', function() { describe('xterm.js', function() {
var xterm; var xterm;

View File

@ -1,5 +1,5 @@
var assert = require('chai').assert; var assert = require('chai').assert;
var Terminal = require('../src/xterm'); var Terminal = require('../build/xterm');
describe('Viewport', function () { describe('Viewport', function () {
var terminal; var terminal;

16
tsconfig.json Normal file
View File

@ -0,0 +1,16 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"rootDir": "src",
"allowJs": true
},
"exclude": [
"addons",
"build",
"demo",
"out",
"test",
"node_modules"
]
}

6
typings.json Normal file
View File

@ -0,0 +1,6 @@
{
"name": "xterm",
"globalDependencies": {
"node": "registry:env/node#6.0.0+20160918225031"
}
}