Remove the old and unneeded ts.js
This commit is contained in:
parent
239d1c60a3
commit
1fe7c697c5
96
ts.js
96
ts.js
@ -1,96 +0,0 @@
|
||||
'use strict';
|
||||
var childProcess = require('child_process');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var isTest = process.argv[2] === '--only-test';
|
||||
|
||||
// TODO: This build task should be removed upon release of TypeScript 1.5 with
|
||||
// the support for `tsconfig.json`. Invoking `tsc` from `package.json` will then
|
||||
// read the configuration and compile accordingly. It seems that `TSLint` will,
|
||||
// eventually, support this mechanism too. That prevents the need for any kind
|
||||
// of build task and will run entirely based on instructions from `npm`.
|
||||
//
|
||||
// Reference #1: https://github.com/Microsoft/TypeScript/issues/1667
|
||||
// Reference #2: https://github.com/palantir/tslint/issues/281
|
||||
|
||||
read(function(err, fileNames) {
|
||||
clean(fileNames, function() {
|
||||
var hasLintError = false;
|
||||
compile(fileNames, function(err) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return process.exit(1);
|
||||
}
|
||||
lint(fileNames, function(message) {
|
||||
process.stdout.write(message);
|
||||
hasLintError = true;
|
||||
}, function() {
|
||||
process.exit(Number(hasLintError));
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Clean the files.
|
||||
* @param {Array.<string>} filePaths
|
||||
* @param {function()} done
|
||||
*/
|
||||
function clean(filePaths, done) {
|
||||
if (isTest) return done();
|
||||
var i = -1;
|
||||
(function next() {
|
||||
i += 1;
|
||||
if (i >= filePaths.length) return done();
|
||||
var filePath = filePaths[i];
|
||||
if (/\.d\.ts$/.test(filePath)) return next();
|
||||
var mapName = filePath.substring(4, filePath.length - 2) + 'js.map';
|
||||
var mapPath = path.join('dist', mapName);
|
||||
if (fs.existsSync(mapPath)) fs.unlinkSync(mapPath);
|
||||
next();
|
||||
})();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compile the files.
|
||||
* @param {Array.<string>} filePaths
|
||||
* @param {function(Error)} done
|
||||
*/
|
||||
function compile(filePaths, done) {
|
||||
if (isTest) return done(null);
|
||||
var execPath = path.join(__dirname, 'node_modules/.bin/tsc');
|
||||
var options = '--declaration --module CommonJS --noImplicitAny --outDir dist --target ES5';
|
||||
childProcess.exec([execPath, options].concat(filePaths).join(' '), function(err, stdout) {
|
||||
if (stdout) return done(new Error(stdout));
|
||||
done(null);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Lint the files.
|
||||
* @param {Array.<string>} filePaths
|
||||
* @param {function(string)} handler
|
||||
* @param {function()} done
|
||||
*/
|
||||
function lint(filePaths, handler, done) {
|
||||
var i = -1;
|
||||
var execPath = path.join(__dirname, 'node_modules/.bin/tslint');
|
||||
(function next() {
|
||||
i += 1;
|
||||
if (i >= filePaths.length) return done();
|
||||
var filePath = filePaths[i];
|
||||
if (/\.d\.ts$/.test(filePath)) return next();
|
||||
childProcess.exec(execPath + ' -f ' + filePath, function(err, stdout) {
|
||||
if (stdout) handler(stdout);
|
||||
next();
|
||||
});
|
||||
})();
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the files from the project file.
|
||||
* @param {function(Error, Array.<string>)} done
|
||||
*/
|
||||
function read(done) {
|
||||
done(null, JSON.parse(fs.readFileSync('tsconfig.json', 'utf8')).files);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user