From 1f250468e1ea399f42a8ed97c41a05039d1c4341 Mon Sep 17 00:00:00 2001 From: fisker Date: Tue, 17 Mar 2020 20:09:10 +0800 Subject: [PATCH] Simplify `no-unreadable-array-destructuring` --- rules/no-unreadable-array-destructuring.js | 17 ++++++----------- test/no-unreadable-array-destructuring.js | 11 +++++++++-- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/rules/no-unreadable-array-destructuring.js b/rules/no-unreadable-array-destructuring.js index e60c92c24a..553bd59594 100644 --- a/rules/no-unreadable-array-destructuring.js +++ b/rules/no-unreadable-array-destructuring.js @@ -1,22 +1,17 @@ 'use strict'; const getDocumentationUrl = require('./utils/get-documentation-url'); -const isCommaFollowedWithComma = (element, index, array) => { - return element === null && array[index + 1] === null; -}; +const message = 'Array destructuring may not contain consecutive ignored values.'; +const isCommaFollowedWithComma = (element, index, array) => + element === null && array[index + 1] === null; const create = context => { return { - ArrayPattern(node) { - const {elements} = node; - if (!elements || elements.length === 0) { - return; - } - - if (elements.some(isCommaFollowedWithComma)) { + 'ArrayPattern[elements.length>1]': node => { + if (node.elements.some(isCommaFollowedWithComma)) { context.report({ node, - message: 'Array destructuring may not contain consecutive ignored values.' + message }); } } diff --git a/test/no-unreadable-array-destructuring.js b/test/no-unreadable-array-destructuring.js index 716188852d..9ff6a0c033 100644 --- a/test/no-unreadable-array-destructuring.js +++ b/test/no-unreadable-array-destructuring.js @@ -30,7 +30,9 @@ ruleTester.run('no-unreadable-array-destructuring', rule, { 'function foo([bar,]) {}', 'function foo([bar,,]) {}', 'function foo([bar,, baz,, qux]) {}', - 'const [, ...rest] = parts;' + 'const [, ...rest] = parts;', + // This is stupid, but valid code + 'const [,] = parts;' ], invalid: [ { @@ -68,6 +70,11 @@ ruleTester.run('no-unreadable-array-destructuring', rule, { { code: 'const [,,...rest] = parts;', errors - } + }, + // This is stupid, but valid code + { + code: 'const [,,] = parts;', + errors + }, ] });