Move expect.exp for travis

This commit is contained in:
Panayot Cankov
2016-05-26 15:12:42 +03:00
parent 7118e117c8
commit 212e5373f3
4 changed files with 76 additions and 12 deletions

View File

@ -1,17 +1,51 @@
import * as ts from "typescript";
declare var process, require;
var fs = require("fs");
var path = require("path");
var arg1 = process.argv.length > 2 ? process.argv[2] : "";
var isIncremental = arg1.indexOf("i") >= 0;
if (isIncremental) {
console.log("incremental");
}
function compile(fileNames: string[], options: ts.CompilerOptions) {
console.time("program");
var program = ts.createProgram(fileNames, options);
console.timeEnd("program");
var sourceFiles = program.getSourceFiles().filter(f => f.fileName.lastIndexOf(".d.ts") !== f.fileName.length - 5);
// sourceFiles.forEach(sf => console.log(" - " + sf.fileName));
var emitResults = [];
var allDiagnostics = [];
sourceFiles.forEach(srcFile => emitResults.push(program.emit(srcFile)));
console.time("transpile");
if (isIncremental) {
sourceFiles = sourceFiles.filter(srcFile => {
try {
var tsName = srcFile.fileName;
var jsName = path.join(path.dirname(tsName), path.basename(tsName, ".ts")) + ".js";
var tsTime = fs.statSync(tsName).mtime.getTime();
var jsTime = fs.statSync(jsName).mtime.getTime();
return jsTime < tsTime;
} catch(e) {
return true;
}
});
sourceFiles.forEach(srcFile => {
console.log(" - " + srcFile.fileName);
emitResults.push(program.emit(srcFile));
});
} else {
sourceFiles.forEach(srcFile => emitResults.push(program.emit(srcFile)));
}
console.timeEnd("transpile");
console.time("diagnostics");
sourceFiles.forEach(srcFile => allDiagnostics = allDiagnostics.concat(ts.getPreEmitDiagnostics(program, srcFile)));
emitResults.forEach(er => allDiagnostics = allDiagnostics.concat(er.diagnostics));
@ -23,6 +57,7 @@ function compile(fileNames: string[], options: ts.CompilerOptions) {
var code = diagnostic.code;
console.log(diagnostic.file.fileName + "(" + (line + 1) + "," + (character + 1) + "): TS" + code + ": " + message);
});
console.timeEnd("diagnostics");
var exitCode = emitResults.some(er => er.emitSkipped) ? 1 : 0;