"use strict";
|
var __importStar = (this && this.__importStar) || function (mod) {
|
if (mod && mod.__esModule) return mod;
|
var result = {};
|
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
result["default"] = mod;
|
return result;
|
};
|
Object.defineProperty(exports, "__esModule", { value: true });
|
const os = __importStar(require("os"));
|
const issue_1 = require("../../issue");
|
function createIssueFromTsDiagnostic(typescript, diagnostic) {
|
let file;
|
let location;
|
if (diagnostic.file) {
|
file = diagnostic.file.fileName;
|
if (diagnostic.start && diagnostic.length) {
|
const { line: startLine, character: startCharacter, } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
|
const { line: endLine, character: endCharacter, } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start + diagnostic.length);
|
location = {
|
start: {
|
line: startLine + 1,
|
column: startCharacter + 1,
|
},
|
end: {
|
line: endLine + 1,
|
column: endCharacter + 1,
|
},
|
};
|
}
|
}
|
return {
|
origin: 'typescript',
|
code: 'TS' + String(diagnostic.code),
|
// we don't handle Suggestion and Message diagnostics
|
severity: diagnostic.category === 0 ? 'warning' : 'error',
|
message: typescript.flattenDiagnosticMessageText(diagnostic.messageText, os.EOL),
|
file,
|
location,
|
};
|
}
|
function createIssuesFromTsDiagnostics(typescript, diagnostics) {
|
return issue_1.deduplicateAndSortIssues(diagnostics.map((diagnostic) => createIssueFromTsDiagnostic(typescript, diagnostic)));
|
}
|
exports.createIssuesFromTsDiagnostics = createIssuesFromTsDiagnostics;
|