From 370480171e99241980f7251a19049c1973fcaad9 Mon Sep 17 00:00:00 2001 From: Chiawen Chen Date: Sat, 24 Aug 2019 23:24:23 +0800 Subject: [PATCH] [fix] `prefer-default-export`: fix cases when exporting array destructuring Fixes #706 --- src/rules/prefer-default-export.js | 5 ++++- tests/src/rules/prefer-default-export.js | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/rules/prefer-default-export.js b/src/rules/prefer-default-export.js index 59c26d11e..f0af00d02 100644 --- a/src/rules/prefer-default-export.js +++ b/src/rules/prefer-default-export.js @@ -23,7 +23,10 @@ module.exports = { .forEach(function(property) { captureDeclaration(property.value) }) - } else { + } else if (identifierOrPattern.type === 'ArrayPattern') { + identifierOrPattern.elements + .forEach(captureDeclaration) + } else { // assume it's a single standard identifier specifierExportCount++ } diff --git a/tests/src/rules/prefer-default-export.js b/tests/src/rules/prefer-default-export.js index adca4b602..d0b46530a 100644 --- a/tests/src/rules/prefer-default-export.js +++ b/tests/src/rules/prefer-default-export.js @@ -43,6 +43,10 @@ ruleTester.run('prefer-default-export', rule, { code: ` export const { foo: { bar, baz } } = item;`, }), + test({ + code: ` + export const [a, b] = item;`, + }), test({ code: ` let item; @@ -127,6 +131,14 @@ ruleTester.run('prefer-default-export', rule, { message: 'Prefer default export.', }], }), + test({ + code: ` + export const [a] = ["foo"]`, + errors: [{ + ruleId: 'ExportNamedDeclaration', + message: 'Prefer default export.', + }], + }), ], })