putout
eslint-plugin-unicorn
Our great sponsors
- SurveyJS - A Non-Cloud Alternative to Google Forms that has it all.
- Amplication - open-source Node.js backend code generator
- Appwrite - The open-source backend cloud platform
- Mergify - Updating dependencies is time-consuming.
- Sonar - Write Clean JavaScript Code. Always.
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
putout | eslint-plugin-unicorn | |
---|---|---|
3 | 39 | |
595 | 3,497 | |
- | - | |
9.9 | 8.7 | |
5 days ago | 3 days ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
putout
-
Modern, faster alternatives to ESLint
Due to its plugin-first architecture, the initial API is kept as lean as possible, preventing unnecessary bloat and allowing the developer the choice of extension. Some plugin rules are also smaller than those available in ESLint, e.g., the debugger rule. We can also use Putout with ESLint by allowing Putout to handle code transformations while ESLint handles any formatting broken after the code transformation. We can use the plugin eslint-plugin-putout to help with this integration.
-
jscodeshift VS putout - a user suggested alternative
2 projects | 16 Apr 2022
๐ Pluggable and configurable code transformer with built-in ESLint, Babel plugins support for js, jsx typescript, flow, markdown, yaml and json
eslint-plugin-unicorn
- JS Array.foreach vs for-loops, pros and cons, which do you use and why
-
Code Review chronicles: destructuring, linting and one valid reason for Typescript
Default parameters should not be passed to a function through an object literal. The foo = {a: false} parameter works fine if only used with one option. As soon as additional options are added, you risk replacing the whole foo = {a: false, b: true} object when passing only one option: {a: true}. For this reason, object destructuring should be used instead. Linter rule
-
eslint-config-canonical: 1,000+ rules ESLint rules
Another thing I should mention is that in contrast to other rulesets, Canonical is very much leaning towards cutting edge technology. It will always suggest latest syntax / APIs when there are new alternatives. Some like that because it makes them aware of better / new ways of doing things, others hate it because they are used to the old ways of doing things. A great example of this is prefer-object-from-entries, which tells you to use fromEntries over reduce when the former makes the code simpler.
-
Replacing let with const โ Even when it feels impossible
eslint-plugin-unicornโs no-array-for-each rule
-
To improve readability for numbers, you can use underscore as a separator!
We actually enforce this code style for any numbers greater than 5 digits at my workplace, using eslint-plugin-unicorn and its numeric-separators-style rule.
-
60+ useful ESLint rules
explicit-length-check - Enforce explicitly comparing the length property of a value.
I think the example in the rule is pretty clear. If you have any specific feedback, we're happy to listen.
It's definitely not for everyone, especially if you can't control how your variables are written, but that's part of the beauty of ESLint. This rule has the potential to add value to someone's codebase, so you can adopt it, disable it, or customize it with its many options.
no-for-loop - Do not use a for loop that can be replaced with a for-of.
What are some alternatives?
eslint-config-xo - ESLint shareable config for XO
eslint-plugin-react-hooks-addons - ESLint rule to check unused and potentially unnecessary dependencies in useEffect hook.
jscodeshift - A JavaScript codemod toolkit.
proposal-numeric-separator - A proposal to add numeric literal separators in JavaScript.
babel-plugin-angularjs-annotate - Add Angular 1.x dependency injection annotations to ES6 code
eslint-plugin-boundaries - Eslint plugin checking architecture boundaries between elements
babel-plugin-proposal-pattern-matching - the minimal grammar, high performance JavaScript pattern matching implementation
eslint-plugin-proper-ternary - ESLint rules to ensure proper usage of ternary/conditional expressions
moment-dayjs-codemod - A Codemod to migrate from moment.js to day.js
proposal-observable - Observables for ECMAScript
eslint-config-canonical - The most comprehensive ES code style guide.
eslint-plugin-snakecasejs - :pencil2: ESLint Plugin: enforce snake_case syntax on variables and function names