1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
"use strict";
var gutil = require('gulp-util');
function emptyCompilationResult() {
return {
transpileErrors: 0,
optionsErrors: 0,
syntaxErrors: 0,
globalErrors: 0,
semanticErrors: 0,
declarationErrors: 0,
emitErrors: 0,
emitSkipped: false
};
}
exports.emptyCompilationResult = emptyCompilationResult;
function defaultFinishHandler(results) {
var hasError = false;
var showErrorCount = function (count, type) {
if (count === 0)
return;
gutil.log('TypeScript:', gutil.colors.magenta(count.toString()), (type !== '' ? type + ' ' : '') + (count === 1 ? 'error' : 'errors'));
hasError = true;
};
showErrorCount(results.transpileErrors, '');
showErrorCount(results.optionsErrors, 'options');
showErrorCount(results.syntaxErrors, 'syntax');
showErrorCount(results.globalErrors, 'global');
showErrorCount(results.semanticErrors, 'semantic');
showErrorCount(results.declarationErrors, 'declaration');
showErrorCount(results.emitErrors, 'emit');
if (results.emitSkipped) {
gutil.log('TypeScript: emit', gutil.colors.red('failed'));
}
else if (hasError) {
gutil.log('TypeScript: emit', gutil.colors.cyan('succeeded'), '(with errors)');
}
}
function nullReporter() {
return {};
}
exports.nullReporter = nullReporter;
function defaultReporter() {
return {
error: function (error) {
console.error(error.message);
},
finish: defaultFinishHandler
};
}
exports.defaultReporter = defaultReporter;
function longReporter() {
var typescript = require('typescript');
return {
error: function (error) {
if (error.tsFile) {
console.error('[' + gutil.colors.gray('gulp-typescript') + '] ' + gutil.colors.red(error.fullFilename
+ '(' + error.startPosition.line + ',' + error.startPosition.character + '): ')
+ 'error TS' + error.diagnostic.code + ' ' + typescript.flattenDiagnosticMessageText(error.diagnostic.messageText, '\n'));
}
else {
console.error(error.message);
}
},
finish: defaultFinishHandler
};
}
exports.longReporter = longReporter;
function fullReporter(fullFilename) {
if (fullFilename === void 0) { fullFilename = false; }
var typescript = require('typescript');
return {
error: function (error, typescript) {
console.error('[' + gutil.colors.gray('gulp-typescript') + '] '
+ gutil.colors.bgRed(error.diagnostic.code + '')
+ ' ' + gutil.colors.red(typescript.flattenDiagnosticMessageText(error.diagnostic.messageText, '\n')));
if (error.tsFile) {
console.error('> ' + gutil.colors.gray('file: ') + (fullFilename ? error.fullFilename : error.relativeFilename) + gutil.colors.gray(':'));
var lines_1 = error.tsFile.text.split(/(\r\n|\r|\n)/);
var logLine = function (lineIndex, errorStart, errorEnd) {
var line = lines_1[lineIndex];
if (errorEnd === undefined)
errorEnd = line.length;
console.error('> ' + gutil.colors.gray('[' + lineIndex + '] ')
+ line.substring(0, errorStart)
+ gutil.colors.red(line.substring(errorStart, errorEnd))
+ line.substring(errorEnd));
};
for (var i = error.startPosition.line; i <= error.endPosition.line; i++) {
logLine(i, i === error.startPosition.line ? error.startPosition.character - 1 : 0, i === error.endPosition.line ? error.endPosition.character - 1 : undefined);
}
}
},
finish: defaultFinishHandler
};
}
exports.fullReporter = fullReporter;
|