eslint-unicorn weekly downloads statistics
By sindresorhus (6 listings) · npm · ESLint plugins
More than 100 powerful ESLint rules
eslint-unicorn has 28,681 recorded weekly downloads on npm, a decrease of 47.6% over the past 30 days.
It ranks #670 of 2,251 tracked npm listings by weekly downloads.
Over 90 days, weekly downloads changed by +39.2%.
PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.
About eslint-unicorn
eslint-plugin-unicorn
More than 100 powerful ESLint rules
You might want to check out XO, which includes this plugin.
Propose or contribute a new rule ➡
Install
Usage (eslint.config.js)
Requires ESLint >=8.56.0.
Use a preset config or configure each rule in eslint.config.js.
If you don't use the preset, ensure you use the same languageOptions config as below.
ES Module (Recommended)
CommonJS
Usage (legacy: .eslintrc.* or package.json)
Use a preset config or configure each rule in package.json.
If you don't use the preset, ensure you use the same env and parserOptions config as below.
Rules
💼 Configurations enabled in.\ ✅ Set in the recommended configuration.\ 🔧 Automatically fixable by the --fix CLI option.\ 💡 Manually fixable by editor suggestions.
| Name | Description | 💼 | 🔧 | 💡 |
| better-regex | Improve regexes by making them shorter, consistent, and safer. | ✅ | 🔧 | | | catch-error-name | Enforce a specific parameter name in catch clauses. | ✅ | 🔧 | | | consistent-destructuring | Use destructured variables over properties. | | 🔧 | 💡 | | consistent-empty-array-spread | Prefer consistent types when spreading a ternary in an array literal. | ✅ | 🔧 | | | consistent-function-scoping | Move function definitions to the highest possible scope. | ✅ | | | | custom-error-definition | Enforce correct Error subclassing. | | 🔧 | | | empty-brace-spaces | Enforce no spaces between braces. | ✅ | 🔧 | | | error-message | Enforce passing a message value when creating a built-in error. | ✅ | | | | escape-case | Require escape sequences to use uppercase values. | ✅ | 🔧 | | | expiring-todo-comments | Add expiration conditions to TODO comments. | ✅ | | | | explicit-length-check | Enforce explicitly comparing the length or size property of a value. | ✅ | 🔧 | 💡 | | filename-case | Enforce a case style for filenames. | ✅ | | | | import-style | Enforce specific import styles per module. | ✅ | | | | new-for-builtins | Enforce the use of new for all builtins, except String, Number, Boolean, Symbol and BigInt. | ✅ | 🔧 | | | no-abusive-eslint-disable | Enforce specifying rules to disable in eslint-disable comments. | ✅ | | | | no-anonymous-default-export | Disallow anonymous functions and classes as the default export. | ✅ | | 💡 | | no-array-callback-reference | Prevent passing a function reference directly to iterator methods. | ✅ | | 💡 | | no-array-for-each | Prefer for…of over the forEach method. | ✅ | 🔧 | 💡 | | no-array-method-this-argument | Disallow using the this argument in array methods. | ✅ | 🔧 | 💡 | | no-array-push-push | Enforce combining multiple Array#push() into one call. | ✅ | 🔧 | 💡 | | no-array-reduce | Disallow Array#reduce() and Array#reduceRight(). | ✅ | | | | no-await-expression-member | Disallow member access from await expression. | ✅ | 🔧 | | | no-await-in-promise-methods | Disallow using await in Promise method parameters. | ✅ | | 💡 | | no-console-spaces | Do not use leading/trailing space between console.log parameters. | ✅ | 🔧 | | | no-document-cookie | Do not use document.cookie directly. | ✅ | | | | no-empty-file | Disallow empty files. | ✅ | | | | no-for-loop | Do not use a for loop that can be replaced with a for-of loop. | ✅ | 🔧 | 💡 | | no-hex-escape | Enforce the use of Unicode escapes instead of hexadecimal escapes. | ✅ | 🔧 | | | no-instanceof-array | Require Array.isArray() instead of instanceof Array. | ✅ | 🔧 | | | no-invalid-fetch-options | Disallow invalid options in fetch() and new Request(). | ✅ | | | | no-invalid-remove-event-listener | Prevent calling EventTarget#removeEventListener() with the result of an expression. | ✅ | | | | no-keyword-prefix | Disallow identifiers starting with new or class. | | | | | no-length-as-slice-end | Disallow using .length as the end argument of {Array,String,TypedArray}#slice(). | ✅ | 🔧 | | | no-lonely-if | Disallow if statements as the only statement in if blocks without else. | ✅ | 🔧 | | | no-magic-array-flat-depth | Disallow a magic number as the depth argument in Array#flat(…). | ✅ | | | | no-negated-condition | Disallow negated conditions. | ✅ | 🔧 | | | no-negation-in-equality-check | Disallow negated expression in equality check. | ✅ | | 💡 | | no-nested-ternary | Disallow nested ternary expressions. | ✅ | 🔧 | | | no-new-array | Disallow new Array(). | ✅ | 🔧 | 💡 | | no-new-buffer | Enforce the use of Buffer.from() and Buffer.alloc() instead of the deprecated new Buffer(). | ✅ | 🔧 | 💡 | | no-null | Disallow the use of the null literal. | ✅ | 🔧 | 💡 | | no-object-as-default-parameter | Disallow the use of objects as default parameters. | ✅ | | | | no-process-exit | Disallow process.exit(). | ✅ | | | | no-single-promise-in-promise-methods | Disallow passing single-element arrays to Promise methods. | ✅ | 🔧 | 💡 | | no-static-only-class | Disallow classes that only have static members. | ✅ | 🔧 | | | no-thenable | Disallow then property. | ✅ | | | | no-this-assignment | Disallow assigning this to a variable. | ✅ | | | | no-typeof-undefined | Disallow comparing undefined using typeof. | ✅ | 🔧 | 💡 | | no-unnecessary-await | Disallow awaiting non-promise values. | ✅ | 🔧 | | | no-unnecessary-polyfills | Enforce the use of built-in methods instead of unnecessary polyfills. | ✅ | | | | no-unreadable-array-destructuring | Disallow unreadable array destructuring. | ✅ | 🔧 | | | no-unreadable-iife | Disallow unreadable IIFEs. | ✅ | | | | no-unused-properties | Disallow unused object properties. | | | | | no-useless-fallback-in-spread | Disallow useless fallback when spreading in object literals. | ✅ | 🔧 | | | no-useless-length-check | Disallow useless array length check. | ✅ | 🔧 | | | no-useless-promise-resolve-reject | Disallow returning/yielding Promise.resolve/reject() in async functions or promise callbacks | ✅ | 🔧 | | | no-useless-spread | Disallow unnecessary spread. | ✅ | 🔧 | | | no-useless-switch-case | Disallow useless case in switch statements. | ✅ | | 💡 | |…
Description from the npm listing.
- eslint
- eslintplugin
- eslint-plugin
- unicorn
- linter
- lint
- style
- xo
Where eslint-unicorn sits in the listing
Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Recent observations
Full history (121)Similar npm ESLint plugins plugins
Data source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/eslint-unicorn. First seen Oct 16, 2026; last successful collection Oct 18, 2026. See the methodology.