sindresorhus / eslint-plugin-unicorn

Compare 7c8abf5 ... +0 ... 4b61c92

Coverage Reach
rules/utils/is-number.js rules/utils/is-same-reference.js rules/utils/rule.js rules/utils/avoid-capture.js rules/utils/needs-semicolon.js rules/utils/boolean.js rules/utils/parentheses.js rules/utils/global-reference-tracker.js rules/utils/numeric.js rules/utils/is-node-matches.js rules/utils/should-add-parentheses-to-logical-expression-child.js rules/utils/should-add-parentheses-to-member-expression-object.js rules/utils/is-function-self-used-inside.js rules/utils/builtins.js rules/utils/is-shadowed.js rules/utils/assert-token.js rules/utils/should-add-parentheses-to-new-expression-callee.js rules/utils/is-new-expression-with-parentheses.js rules/utils/should-add-parentheses-to-expression-statement-expression.js rules/utils/create-deprecated-rules.js rules/utils/cartesian-product-samples.js rules/utils/get-class-head-location.js rules/utils/should-add-parentheses-to-spread-element-argument.js rules/utils/to-location.js rules/utils/get-call-expression-arguments-text.js rules/utils/get-switch-case-head-location.js rules/utils/resolve-variable-name.js rules/utils/singular.js rules/utils/quote-string.js rules/utils/should-add-parentheses-to-conditional-expression-child.js rules/utils/is-logical-expression.js rules/utils/get-scopes.js rules/utils/is-left-hand-side.js rules/utils/get-indent-string.js rules/utils/is-shorthand-property-assignment-pattern-left.js rules/utils/get-documentation-url.js rules/utils/get-references.js rules/utils/is-method-named.js rules/utils/is-shorthand-import-local.js rules/utils/is-shorthand-export-local.js rules/utils/is-shorthand-property-value.js rules/utils/get-variable-identifiers.js rules/utils/get-builtin-rule.js rules/utils/has-same-range.js rules/utils/is-on-same-line.js rules/utils/escape-template-element-raw.js rules/utils/is-value-not-usable.js rules/utils/is-valid-variable-name.js rules/shared/dom-events.js rules/shared/abbreviations.js rules/shared/simple-array-search-rule.js rules/shared/event-keys.js rules/shared/negative-index.js rules/shared/typed-array.js rules/prevent-abbreviations.js rules/selectors/call-or-new-expression-selector.js rules/selectors/member-expression-selector.js rules/selectors/reference-identifier-selector.js rules/selectors/method-call-selector.js rules/selectors/prototype-method-selector.js rules/selectors/not-function.js rules/selectors/not-dom-node.js rules/selectors/index.js rules/selectors/matches-any.js rules/selectors/not-left-hand-side.js rules/selectors/require-selector.js rules/selectors/empty-object-selector.js rules/selectors/empty-array-selector.js rules/selectors/negation.js rules/expiring-todo-comments.js rules/prefer-spread.js rules/no-array-for-each.js rules/no-for-loop.js rules/prefer-array-find.js rules/prefer-export-from.js rules/import-style.js rules/fix/fix-space-around-keywords.js rules/fix/replace-reference-identifier.js rules/fix/switch-new-expression-to-call-expression.js rules/fix/remove-argument.js rules/fix/index.js rules/fix/replace-node-or-token-and-spaces-before.js rules/fix/add-parenthesizes-to-return-or-throw-expression.js rules/fix/append-argument.js rules/fix/remove-method-call.js rules/fix/switch-call-expression-to-new-expression.js rules/fix/extend-fix-range.js rules/fix/remove-spaces-after.js rules/fix/remove-parentheses.js rules/fix/remove-member-expression-property.js rules/fix/replace-template-element.js rules/fix/replace-string-literal.js rules/fix/rename-variable.js rules/fix/replace-argument.js rules/prefer-at.js rules/prefer-switch.js rules/prefer-module.js rules/prefer-ternary.js rules/prefer-object-from-entries.js rules/prefer-array-flat.js rules/filename-case.js rules/no-array-callback-reference.js rules/no-unused-properties.js rules/no-useless-undefined.js rules/no-static-only-class.js rules/no-useless-spread.js rules/prefer-default-parameters.js rules/consistent-function-scoping.js rules/explicit-length-check.js rules/no-useless-promise-resolve-reject.js rules/no-keyword-prefix.js rules/custom-error-definition.js rules/prefer-set-has.js rules/prefer-string-starts-ends-with.js rules/string-content.js rules/prefer-keyboard-event-key.js rules/prefer-string-slice.js rules/prefer-negative-index.js rules/prefer-native-coercion-functions.js rules/numeric-separators-style.js rules/prefer-add-event-listener.js rules/no-array-method-this-argument.js rules/template-indent.js rules/consistent-destructuring.js rules/relative-url-style.js rules/prefer-logical-operator-over-ternary.js rules/prefer-json-parse-buffer.js rules/prefer-type-error.js rules/no-useless-length-check.js rules/no-lonely-if.js rules/no-array-push-push.js rules/prefer-array-some.js rules/better-regex.js rules/prefer-modern-math-apis.js rules/prefer-modern-dom-apis.js rules/prefer-top-level-await.js rules/prefer-query-selector.js rules/catch-error-name.js rules/no-thenable.js rules/prefer-number-properties.js rules/no-null.js rules/prefer-math-trunc.js rules/prefer-date-now.js rules/text-encoding-identifier-case.js rules/switch-case-braces.js rules/no-array-reduce.js rules/no-unnecessary-await.js rules/ast/literal.js rules/ast/index.js rules/ast/is-empty-node.js rules/ast/is-static-require.js rules/ast/is-arrow-function-body.js rules/ast/is-undefined.js rules/no-new-array.js rules/prefer-includes.js rules/error-message.js rules/no-new-buffer.js rules/prefer-reflect-apply.js rules/no-process-exit.js rules/prefer-dom-node-dataset.js rules/no-await-expression-member.js rules/new-for-builtins.js rules/prefer-dom-node-remove.js rules/no-console-spaces.js rules/no-unreadable-array-destructuring.js rules/no-zero-fractions.js rules/prefer-prototype-methods.js rules/prefer-optional-catch-binding.js rules/prefer-string-replace-all.js rules/no-useless-switch-case.js rules/no-useless-fallback-in-spread.js rules/no-unsafe-regex.js rules/require-post-message-target-origin.js rules/prefer-array-flat-map.js rules/prefer-dom-node-text-content.js rules/no-instanceof-array.js rules/escape-case.js rules/empty-brace-spaces.js rules/no-empty-file.js rules/prefer-code-point.js rules/require-array-join-separator.js rules/no-invalid-remove-event-listener.js rules/prefer-node-protocol.js rules/throw-new-error.js rules/require-number-to-fixed-digits-argument.js rules/number-literal-case.js rules/no-abusive-eslint-disable.js rules/no-unreadable-iife.js rules/no-nested-ternary.js rules/no-object-as-default-parameter.js rules/no-this-assignment.js rules/no-hex-escape.js rules/prefer-string-trim-start-end.js rules/prefer-dom-node-append.js rules/prefer-event-target.js rules/prefer-array-index-of.js rules/no-document-cookie.js configs/recommended.js configs/all.js scripts/utils.mjs scripts/rules-table.mjs scripts/rule-notices.mjs index.js

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -218,7 +218,7 @@
Loading
218 218
	const filename = context.getFilename().toLowerCase();
219 219
220 220
	if (filename.endsWith('.cjs')) {
221 -
		return {};
221 +
		return;
222 222
	}
223 223
224 224
	const sourceCode = context.getSourceCode();

@@ -147,7 +147,7 @@
Loading
147 147
	const filenameWithExtension = context.getPhysicalFilename();
148 148
149 149
	if (filenameWithExtension === '<input>' || filenameWithExtension === '<text>') {
150 -
		return {};
150 +
		return;
151 151
	}
152 152
153 153
	return {

@@ -70,7 +70,7 @@
Loading
70 70
	const replacements = getReplacements(patterns);
71 71
72 72
	if (replacements.length === 0) {
73 -
		return {};
73 +
		return;
74 74
	}
75 75
76 76
	return {

@@ -71,10 +71,18 @@
Loading
71 71
		return create;
72 72
	}
73 73
74 -
	const wrapped = context => Object.fromEntries(
75 -
		Object.entries(create(context))
76 -
			.map(([selector, listener]) => [selector, reportListenerProblems(listener, context)]),
77 -
	);
74 +
	const wrapped = context => {
75 +
		const listeners = create(context);
76 +
77 +
		if (!listeners) {
78 +
			return {};
79 +
		}
80 +
81 +
		return Object.fromEntries(
82 +
			Object.entries(listeners)
83 +
				.map(([selector, listener]) => [selector, reportListenerProblems(listener, context)]),
84 +
		);
85 +
	};
78 86
79 87
	wrappedFunctions.add(wrapped);
80 88

@@ -20,7 +20,7 @@
Loading
20 20
	const filename = context.getPhysicalFilename().toLowerCase();
21 21
22 22
	if (!/\.(?:js|mjs|cjs|ts|mts|cts)$/.test(filename)) {
23 -
		return {};
23 +
		return;
24 24
	}
25 25
26 26
	return {

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Coverage
ast 100.00%
fix 100.00%
selectors 99.32%
shared 100.00%
utils +<.01% 99.41%
better-regex.js 100.00%
catch-error-name.js 100.00%
consistent-destructuring.js 100.00%
consistent-function-scoping.js 100.00%
custom-error-definition.js 100.00%
empty-brace-spaces.js 100.00%
error-message.js 100.00%
escape-case.js 100.00%
expiring-todo-comments.js 99.82%
explicit-length-check.js 100.00%
filename-case.js 100.00%
import-style.js 98.92%
new-for-builtins.js 100.00%
no-abusive-eslint-disable.js 100.00%
no-array-callback-reference.js 100.00%
no-array-for-each.js 100.00%
no-array-method-this-argument.js 100.00%
no-array-push-push.js 99.31%
no-array-reduce.js 100.00%
no-await-expression-member.js 100.00%
no-console-spaces.js 100.00%
no-document-cookie.js 100.00%
no-empty-file.js 100.00%
no-for-loop.js 100.00%
no-hex-escape.js 100.00%
no-instanceof-array.js 100.00%
no-invalid-remove-event-listener.js 100.00%
no-keyword-prefix.js 100.00%
no-lonely-if.js 100.00%
no-nested-ternary.js 100.00%
no-new-array.js 100.00%
no-new-buffer.js 100.00%
no-null.js 100.00%
no-object-as-default-parameter.js 100.00%
no-process-exit.js 100.00%
no-static-only-class.js 100.00%
no-thenable.js 100.00%
no-this-assignment.js 100.00%
no-unnecessary-await.js 100.00%
no-unreadable-array-destructuring.js 100.00%
no-unreadable-iife.js 100.00%
no-unsafe-regex.js 100.00%
no-unused-properties.js 100.00%
no-useless-fallback-in-spread.js 100.00%
no-useless-length-check.js 100.00%
no-useless-promise-resolve-reject.js 100.00%
no-useless-spread.js 100.00%
no-useless-switch-case.js 100.00%
no-useless-undefined.js 100.00%
no-zero-fractions.js 100.00%
number-literal-case.js 100.00%
numeric-separators-style.js 100.00%
prefer-add-event-listener.js 100.00%
prefer-array-find.js 100.00%
prefer-array-flat-map.js 100.00%
prefer-array-flat.js 100.00%
prefer-array-index-of.js 100.00%
prefer-array-some.js 100.00%
prefer-at.js 100.00%
prefer-code-point.js 100.00%
prefer-date-now.js 100.00%
prefer-default-parameters.js 100.00%
prefer-dom-node-append.js 100.00%
prefer-dom-node-dataset.js 100.00%
prefer-dom-node-remove.js 100.00%
prefer-dom-node-text-content.js 100.00%
prefer-event-target.js 100.00%
prefer-export-from.js 100.00%
prefer-includes.js 100.00%
prefer-json-parse-buffer.js 100.00%
prefer-keyboard-event-key.js 98.40%
prefer-logical-operator-over-ternary.js 100.00%
prefer-math-trunc.js 100.00%
prefer-modern-dom-apis.js 100.00%
prefer-modern-math-apis.js 100.00%
prefer-module.js 100.00%
prefer-native-coercion-functions.js 100.00%
prefer-negative-index.js 100.00%
prefer-node-protocol.js 100.00%
prefer-number-properties.js 100.00%
prefer-object-from-entries.js 100.00%
prefer-optional-catch-binding.js 100.00%
prefer-prototype-methods.js 100.00%
prefer-query-selector.js 100.00%
prefer-reflect-apply.js 100.00%
prefer-set-has.js 100.00%
prefer-spread.js 99.60%
prefer-string-replace-all.js 100.00%
prefer-string-slice.js 100.00%
prefer-string-starts-ends-with.js 100.00%
prefer-string-trim-start-end.js 100.00%
prefer-switch.js 100.00%
prefer-ternary.js 100.00%
prefer-top-level-await.js 100.00%
prefer-type-error.js 100.00%
prevent-abbreviations.js 100.00%
relative-url-style.js 100.00%
require-array-join-separator.js 100.00%
require-number-to-fixed-digits-argument.js 100.00%
require-post-message-target-origin.js 100.00%
string-content.js 100.00%
switch-case-braces.js 100.00%
template-indent.js 100.00%
text-encoding-identifier-case.js 100.00%
throw-new-error.js 100.00%
Folder Totals (110 files) 99.87%
Project Totals (203 files) 99.70%
Loading