Make toString function on LintResults object non-enumerable (hide it from for..in).

This commit is contained in:
David Anson 2020-09-07 20:05:36 -07:00
parent 5ab938a6ab
commit 2851a691ba
2 changed files with 72 additions and 55 deletions

View file

@ -85,14 +85,13 @@ function validateRuleList(ruleList) {
* @returns {LintResults} New LintResults instance.
*/
function newResults(ruleList) {
const lintResults = {};
// eslint-disable-next-line jsdoc/require-jsdoc
function Results() {}
Results.prototype.toString = function toString(useAlias) {
const that = this;
function toString(useAlias) {
let ruleNameToRule = null;
const results = [];
Object.keys(that).forEach(function forFile(file) {
const fileResults = that[file];
Object.keys(lintResults).forEach(function forFile(file) {
const fileResults = lintResults[file];
if (Array.isArray(fileResults)) {
fileResults.forEach(function forResult(result) {
const ruleMoniker = result.ruleNames ?
@ -134,9 +133,10 @@ function newResults(ruleList) {
}
});
return results.join("\n");
};
}
Object.defineProperty(lintResults, "toString", { "value": toString });
// @ts-ignore
return new Results();
return lintResults;
}
/**