mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 19:26:42 +08:00
Move expect.exp for travis
This commit is contained in:
@ -1,13 +1,43 @@
|
||||
"use strict";
|
||||
var ts = require("typescript");
|
||||
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, options) {
|
||||
console.time("program");
|
||||
var program = ts.createProgram(fileNames, options);
|
||||
console.timeEnd("program");
|
||||
var sourceFiles = program.getSourceFiles().filter(function (f) { return f.fileName.lastIndexOf(".d.ts") !== f.fileName.length - 5; });
|
||||
// sourceFiles.forEach(sf => console.log(" - " + sf.fileName));
|
||||
var emitResults = [];
|
||||
var allDiagnostics = [];
|
||||
sourceFiles.forEach(function (srcFile) { return emitResults.push(program.emit(srcFile)); });
|
||||
console.time("transpile");
|
||||
if (isIncremental) {
|
||||
sourceFiles = sourceFiles.filter(function (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(function (srcFile) {
|
||||
console.log(" - " + srcFile.fileName);
|
||||
emitResults.push(program.emit(srcFile));
|
||||
});
|
||||
}
|
||||
else {
|
||||
sourceFiles.forEach(function (srcFile) { return emitResults.push(program.emit(srcFile)); });
|
||||
}
|
||||
console.timeEnd("transpile");
|
||||
console.time("diagnostics");
|
||||
sourceFiles.forEach(function (srcFile) { return allDiagnostics = allDiagnostics.concat(ts.getPreEmitDiagnostics(program, srcFile)); });
|
||||
emitResults.forEach(function (er) { return allDiagnostics = allDiagnostics.concat(er.diagnostics); });
|
||||
allDiagnostics.forEach(function (diagnostic) {
|
||||
@ -18,6 +48,7 @@ function compile(fileNames, options) {
|
||||
var code = diagnostic.code;
|
||||
console.log(diagnostic.file.fileName + "(" + (line + 1) + "," + (character + 1) + "): TS" + code + ": " + message);
|
||||
});
|
||||
console.timeEnd("diagnostics");
|
||||
var exitCode = emitResults.some(function (er) { return er.emitSkipped; }) ? 1 : 0;
|
||||
console.log("Process exiting with code " + exitCode + ".");
|
||||
process.exit(exitCode);
|
||||
|
Reference in New Issue
Block a user