sindresorhus/eslint-plugin-unicorn

Rule proposal: `no-negated-some-every`

Closed

#1,704 opened on Jan 25, 2022

 (7 comments) (4 reactions) (0 assignees)JavaScript (468 forks)user submission
help wantednew rule

Repository metrics

Stars
 (5,022 stars)
PR merge metrics
 (Avg merge 1d 16h) (399 merged PRs in 30d)

Description

Description

I believe all negative Array.every() can write in positive Array.some()

[
    ![].every(() => true) === [].some(() => !true),
    ![0].every(() => true) === [0].some(() => !true),
    ![1].every(() => true) === [1].some(() => !true),
    ![].every(() => false) === [].some(() => !false),
    ![0].every(() => false) === [0].some(() => !false),
    ![1].every(() => false) === [1].some(() => !false),
]

Fail

if (!array.some(element => test(element)));
if (!array.every(element => test(element)));

Pass

if (array.every(element => !test(element)));
if (array.some(element => !test(element)));
if (!array.every(Boolean));

Extra

I'm not sure about this, maybe only simple cases?

if (
	  !array.some(element => {
	  	if (foo) {
			return true;
		}

	  	if (bar) {
			return false;
		}

		return baz;
	  })
);

Contributor guide