UNPKG

tsd

Version:

Check TypeScript type definitions

45 lines (44 loc) 1.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const eslint_formatter_pretty_1 = __importDefault(require("eslint-formatter-pretty")); const jest_diff_1 = require("jest-diff"); /** * Format the TypeScript diagnostics to a human readable output. * * @param diagnostics - List of TypeScript diagnostics. * @param showDiff - Display difference between expected and received types. * @returns Beautiful diagnostics output */ exports.default = (diagnostics, showDiff = false) => { const fileMap = new Map(); for (const diagnostic of diagnostics) { let entry = fileMap.get(diagnostic.fileName); if (!entry) { entry = { filePath: diagnostic.fileName, errorCount: 0, warningCount: 0, messages: [] }; fileMap.set(diagnostic.fileName, entry); } if (showDiff && diagnostic.diff) { let difference = (0, jest_diff_1.diffStringsUnified)(diagnostic.diff.expected, diagnostic.diff.received, { omitAnnotationLines: true }); if (difference) { difference = difference.split('\n').map(line => ` ${line}`).join('\n'); diagnostic.message = `${diagnostic.message}\n\n${difference}`; } } if (diagnostic.severity === 'error') { entry.errorCount++; } else if (diagnostic.severity === 'warning') { entry.warningCount++; } entry.messages.push(diagnostic); } return String((0, eslint_formatter_pretty_1.default)([...fileMap.values()])); };