in modules/core/validator.js [188:224]
validator.getEntityIssues = function(entityID, options) {
var cache = _headCache;
var issueIDs = cache.issuesByEntityID[entityID];
if (!issueIDs) return [];
var opts = options || {};
return Array.from(issueIDs)
.map(function(id) { return cache.issuesByIssueID[id]; })
.filter(function(issue) {
if (opts.includeDisabledRules === 'only' && !_disabledRules[issue.type]) return false;
if (!opts.includeDisabledRules && _disabledRules[issue.type]) return false;
if (opts.includeIgnored === 'only' && !_ignoredIssueIDs[issue.id]) return false;
if (!opts.includeIgnored && _ignoredIssueIDs[issue.id]) return false;
return true;
}).sort(function(issue1, issue2) {
if (issue1.type === issue2.type) {
// issues of the same type, sort deterministically
return issue1.id < issue2.id ? -1 : 1;
}
var index1 = orderedIssueTypes.indexOf(issue1.type);
var index2 = orderedIssueTypes.indexOf(issue2.type);
if (index1 !== -1 && index2 !== -1) {
// both issue types have explicit sort orders
return index1 - index2;
} else if (index1 === -1 && index2 === -1) {
// neither issue type has an explicit sort order, sort by type
return issue1.type < issue2.type ? -1 : 1;
} else {
// order explicit types before everything else
return index1 !== -1 ? -1 : 1;
}
});
};