validator.getEntityIssues = function()

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;
                }
            });
    };