Skip to content

Commit a8b6a02

Browse files
authored
Merge pull request #92 from ai/export-const2
Fix ignoring export const cases
2 parents b1e82fc + 96078a2 commit a8b6a02

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

.changes/fix-export-const2.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-prefer-let": patch
3+
---
4+
5+
Fix ignoring `export const` cases

packages/eslint-plugin-prefer-let/lib/rules/prefer-let.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ module.exports = {
122122
});
123123
} else if (node.kind === 'const') {
124124
if (isTopLevelScope(node)) {
125-
if (forceUpperCaseConst && !allDeclaratorsUpperCase(node)) {
125+
if (forceUpperCaseConst && !allDeclaratorsUpperCase(node) && !(node.parent && node.parent.type === 'ExportNamedDeclaration')) {
126126
let constToken = sourceCode.getFirstToken(node);
127127
context.report({
128128
message: '`const` declaration for non-constant names at top-level scope. Use `let` or rename to UPPER_CASE',

packages/eslint-plugin-prefer-let/tests/lib/rules/prefer-let.js

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ ruleTester.run("prefer-let", rule, {
8282
code: "export const FOO_BAR = 'baz';",
8383
options: [{ forceUpperCaseConst: true }]
8484
},
85+
// forceUpperCaseConst: export const with non-upper-case name does not create an issue
86+
{
87+
code: "export const foo = 'bar';",
88+
options: [{ forceUpperCaseConst: true }]
89+
},
8590
// forceUpperCaseConst: let with non-upper-case at top level is valid
8691
{
8792
code: "let fooBar = 'baz';",
@@ -154,14 +159,6 @@ ruleTester.run("prefer-let", rule, {
154159
message: "`const` declaration for non-constant names at top-level scope. Use `let` or rename to UPPER_CASE"
155160
}]
156161
},
157-
{
158-
code: "export const AlsoObject = Object;",
159-
output: "export let AlsoObject = Object;",
160-
options: [{ forceUpperCaseConst: true }],
161-
errors: [{
162-
message: "`const` declaration for non-constant names at top-level scope. Use `let` or rename to UPPER_CASE"
163-
}]
164-
},
165162
// forceUpperCaseConst: let with UPPER_CASE at top level is invalid
166163
{
167164
code: "let FOO_BAR = 'baz';",

0 commit comments

Comments
 (0)