Skip to content

Commit 19c0127

Browse files
authored
fix: improve message for no-console suggestions (#19483)
1 parent fbdeff0 commit 19c0127

2 files changed

Lines changed: 41 additions & 11 deletions

File tree

lib/rules/no-console.js

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ module.exports = {
5050
messages: {
5151
unexpected: "Unexpected console statement.",
5252
limited: "Unexpected console statement. Only these console methods are allowed: {{ allowed }}.",
53-
removeConsole: "Remove the console.{{ propertyName }}()."
53+
removeConsole: "Remove the console.{{ propertyName }}().",
54+
removeMethodCall: "Remove the console method call."
5455
}
5556
},
5657

@@ -165,22 +166,29 @@ module.exports = {
165166
function report(reference) {
166167
const node = reference.identifier.parent;
167168

168-
const propertyName = astUtils.getStaticPropertyName(node);
169+
const suggest = [];
170+
171+
if (canProvideSuggestions(node)) {
172+
const suggestion = {
173+
fix(fixer) {
174+
return fixer.remove(node.parent.parent);
175+
}
176+
};
169177

178+
if (node.computed) {
179+
suggestion.messageId = "removeMethodCall";
180+
} else {
181+
suggestion.messageId = "removeConsole";
182+
suggestion.data = { propertyName: node.property.name };
183+
}
184+
suggest.push(suggestion);
185+
}
170186
context.report({
171187
node,
172188
loc: node.loc,
173189
messageId: allowed.length ? "limited" : "unexpected",
174190
data: { allowed: allowed.join(", ") },
175-
suggest: canProvideSuggestions(node)
176-
? [{
177-
messageId: "removeConsole",
178-
data: { propertyName },
179-
fix(fixer) {
180-
return fixer.remove(node.parent.parent);
181-
}
182-
}]
183-
: []
191+
suggest
184192
});
185193
}
186194

tests/lib/rules/no-console.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,28 @@ ruleTester.run("no-console", rule, {
426426
}]
427427
}]
428428
},
429+
{
430+
code: "console[foo](bar)",
431+
errors: [{
432+
messageId: "unexpected",
433+
type: "MemberExpression",
434+
suggestions: [{
435+
messageId: "removeMethodCall",
436+
output: ""
437+
}]
438+
}]
439+
},
440+
{
441+
code: "console[0](foo)",
442+
errors: [{
443+
messageId: "unexpected",
444+
type: "MemberExpression",
445+
suggestions: [{
446+
messageId: "removeMethodCall",
447+
output: ""
448+
}]
449+
}]
450+
},
429451

430452
// In case that implicit global variable of 'console' exists
431453
{

0 commit comments

Comments
 (0)