UNPKG

ts-lit-plugin

Version:

Typescript plugin that adds type checking and code completion to lit-html

56 lines (55 loc) 2.55 kB
"use strict"; 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, ")") }); }