ts-lit-plugin
Version:
Typescript plugin that adds type checking and code completion to lit-html
56 lines (55 loc) • 2.55 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateDiagnostics = void 0;
var translate_range_js_1 = require("./translate-range.js");
function translateDiagnostics(reports, file, context) {
return reports.map(function (report) { return translateDiagnostic(report, file, context); });
}
exports.translateDiagnostics = translateDiagnostics;
/**
* Convert a diagnostic into a "message" that can be shown to the user.
* @param diagnostic
*/
function getMessageTextFromDiagnostic(diagnostic) {
return "".concat(diagnostic.message).concat(diagnostic.fixMessage == null ? "" : " ".concat(diagnostic.fixMessage));
}
function translateDiagnostic(diagnostic, file, context) {
var _a;
var span = (0, translate_range_js_1.translateRange)(diagnostic.location);
var category = diagnostic.severity === "error" ? context.ts.DiagnosticCategory.Error : context.ts.DiagnosticCategory.Warning;
var code = (_a = diagnostic.code) !== null && _a !== void 0 ? _a : 0;
var messageText = !context.config.dontShowSuggestions && diagnostic.suggestion
? {
messageText: getMessageTextFromDiagnostic(diagnostic),
code: code,
category: category,
next: [
{
messageText: diagnostic.suggestion,
code: 0,
category: context.ts.DiagnosticCategory.Suggestion
}
]
}
: getMessageTextFromDiagnostic(diagnostic);
if (Number(context.ts.versionMajorMinor) < 3.6 && typeof messageText !== "string") {
// The format of DiagnosticMessageChain#next changed in 3.6 to be an array.
// This check for backwards compatibility
if (messageText.next != null && Array.isArray(messageText.next)) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
messageText.next = messageText.next[0];
}
}
return __assign(__assign({}, span), { file: file, messageText: messageText, category: category, code: code, source: diagnostic.source == null ? undefined : "lit-plugin(".concat(diagnostic.source, ")") });
}