From 5ce416947e823992b344d051496c119dc8920d27 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Mon, 19 Feb 2024 21:27:13 +0800 Subject: [PATCH] `no-anonymous-default-export`: Uppercase class name (#2282) --- rules/no-anonymous-default-export.js | 2 +- .../no-anonymous-default-export.mjs.md | 20 +++++++++--------- .../no-anonymous-default-export.mjs.snap | Bin 2613 -> 2603 bytes 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/rules/no-anonymous-default-export.js b/rules/no-anonymous-default-export.js index f520801af5..8195ec7796 100644 --- a/rules/no-anonymous-default-export.js +++ b/rules/no-anonymous-default-export.js @@ -50,7 +50,7 @@ function getSuggestionName(node, filename, sourceCode) { return; } - name = node.type === 'ClassDeclaration' ? upperFirst(name) : name; + name = node.type === 'ClassDeclaration' || node.type === 'ClassExpression' ? upperFirst(name) : name; name = avoidCapture(name, getScopes(sourceCode.getScope(node))); return name; diff --git a/test/snapshots/no-anonymous-default-export.mjs.md b/test/snapshots/no-anonymous-default-export.mjs.md index d016aec97d..ac7848ef7a 100644 --- a/test/snapshots/no-anonymous-default-export.mjs.md +++ b/test/snapshots/no-anonymous-default-export.mjs.md @@ -506,9 +506,9 @@ Generated by [AVA](https://avajs.dev). | ^^^^^ The class should be named.␊ ␊ --------------------------------------------------------------------------------␊ - Suggestion 1/1: Name it as \`foo__\`.␊ + Suggestion 1/1: Name it as \`Foo__\`.␊ 1 | let Foo, Foo_, foo, foo_␊ - 2 | export default (class foo__{})␊ + 2 | export default (class Foo__{})␊ ` ## invalid(24): export default (class extends class {} {}) @@ -532,8 +532,8 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^^^^^^^^^^^^^^^^ The class should be named.␊ ␊ --------------------------------------------------------------------------------␊ - Suggestion 1/1: Name it as \`foo\`.␊ - 1 | export default (class foo extends class {} {})␊ + Suggestion 1/1: Name it as \`Foo\`.␊ + 1 | export default (class Foo extends class {} {})␊ ` ## invalid(25): let Exports, Exports_, exports, exports_ exports = class {} @@ -559,9 +559,9 @@ Generated by [AVA](https://avajs.dev). | ^^^^^ The class should be named.␊ ␊ --------------------------------------------------------------------------------␊ - Suggestion 1/1: Name it as \`exports__\`.␊ + Suggestion 1/1: Name it as \`Exports__\`.␊ 1 | let Exports, Exports_, exports, exports_␊ - 2 | exports = class exports__ {}␊ + 2 | exports = class Exports__ {}␊ ` ## invalid(26): module.exports = class {} @@ -585,8 +585,8 @@ Generated by [AVA](https://avajs.dev). | ^^^^^ The class should be named.␊ ␊ --------------------------------------------------------------------------------␊ - Suggestion 1/1: Name it as \`module_\`.␊ - 1 | module.exports = class module_ {}␊ + Suggestion 1/1: Name it as \`Module\`.␊ + 1 | module.exports = class Module {}␊ ` ## invalid(27): export default function () {} @@ -1405,8 +1405,8 @@ Generated by [AVA](https://avajs.dev). | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The class should be named.␊ ␊ --------------------------------------------------------------------------------␊ - Suggestion 1/1: Name it as \`foo\`.␊ - 1 | module.exports = @decorator(class {}) class foo extends class {} {}␊ + Suggestion 1/1: Name it as \`Foo\`.␊ + 1 | module.exports = @decorator(class {}) class Foo extends class {} {}␊ ` ## invalid(4): @decorator @decorator(class {}) export default class {} diff --git a/test/snapshots/no-anonymous-default-export.mjs.snap b/test/snapshots/no-anonymous-default-export.mjs.snap index 5d4237c13aabef49691413cb90cf9830c43f5350..86dcd70aca41e328ccf99a7caf5d5633d522393b 100644 GIT binary patch literal 2603 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 N{{eU@zCGb^004ZY)?5Gp literal 2613 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