123456789101112131415161718192021222324252627282930313233343536373839404142 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const IssueSeverity_1 = require("./IssueSeverity");
- const IssueLocation_1 = require("./IssueLocation");
- function isIssue(value) {
- return (!!value &&
- typeof value === 'object' &&
- !!value.origin &&
- IssueSeverity_1.isIssueSeverity(value.severity) &&
- !!value.code &&
- !!value.message);
- }
- exports.isIssue = isIssue;
- function compareStrings(stringA, stringB) {
- if (stringA === stringB) {
- return 0;
- }
- if (stringA === undefined || stringA === null) {
- return -1;
- }
- if (stringB === undefined || stringB === null) {
- return 1;
- }
- return stringA.toString().localeCompare(stringB.toString());
- }
- function compareIssues(issueA, issueB) {
- return (IssueSeverity_1.compareIssueSeverities(issueA.severity, issueB.severity) ||
- compareStrings(issueA.origin, issueB.origin) ||
- compareStrings(issueA.file, issueB.file) ||
- IssueLocation_1.compareIssueLocations(issueA.location, issueB.location) ||
- compareStrings(issueA.code, issueB.code) ||
- compareStrings(issueA.message, issueB.message) ||
- 0 /* EqualTo */);
- }
- function equalsIssues(issueA, issueB) {
- return compareIssues(issueA, issueB) === 0;
- }
- function deduplicateAndSortIssues(issues) {
- const sortedIssues = issues.filter(isIssue).sort(compareIssues);
- return sortedIssues.filter((issue, index) => index === 0 || !equalsIssues(issue, sortedIssues[index - 1]));
- }
- exports.deduplicateAndSortIssues = deduplicateAndSortIssues;
|