eslint-plugin-putout

ESLint plugin for 🐊Putout with built-in rules from @putout/eslint-config.
Installation
npm i putout eslint eslint-plugin-putout -D
☝️If you installed eslint
globally (using the -g
flag) then you must also install putout
and eslint-plugin-putout
globally.
Usage
Plugin
To use putout
as ESLint plugin you can use in eslint.config.js
import putout from 'eslint-plugin-putout';
export default [
rules: {
'putout/putout': 'error',
},
plugins: {
putout,
},
];
Preset
Also you can import one of predefined preset:
- ✅ recommended - all rules enabled;
- ✅ safe - dangerous rules disabled;
- ✅ safeAlign - dangerous rules disabled + add whitespaces on empty lines;
Here is how it can look like:
import {recommended} from 'eslint-plugin-putout';
export default recommended;
Or with defineConfig
:
import {defineConfig} from 'eslint/config';
import putout from 'eslint-plugin-putout';
export default defineConfig({
plugins: {
putout,
},
extends: [
"putout/recommended",
]
});
Then configure the rules you want to use under the rules section.
{
"rules": {
"putout/add-newlines-between-types-in-union": "error",
"putout/add-newlines-between-specifiers": "error",
"putout/add-newline-before-return": "error",
"putout/add-newline-before-function-call": "error",
"putout/add-newline-after-function-call": "error",
"putout/putout": "error",
"putout/array-element-newline": "error",
"putout/single-property-destructuring": "error",
"putout/multiple-properties-destructuring": "error",
"putout/long-properties-destructuring": "error",
"putout/destructuring-as-function-argument": "error",
"putout/align-spaces": "error",
"putout/keyword-spacing": "error",
"putout/newline-function-call-arguments": "error",
"putout/function-declaration-paren-newline": "error",
"putout/remove-newline-after-default-import": "error",
"putout/remove-newline-between-declarations": "error",
"putout/remove-newline-from-empty-object": "error",
"putout/remove-empty-newline-before-first-specifier": "error",
"putout/remove-empty-newline-after-last-specifier": "error",
"putout/remove-empty-newline-after-last-element": "error",
"putout/remove-empty-newline-after-import": "error",
"putout/remove-empty-specifiers": "error",
"putout/objects-braces-inside-array": "error",
"putout/object-property-newline": "error",
"putout/tape-add-newline-between-tests": "error",
"putout/tape-add-newline-before-assertion": "error",
"putout/tape-remove-newline-before-t-end": "error"
}
}
Rules
🐊 Putout
📼 Supertape
TypeScript
ESM
Formatting
- ✅ Add newline before return
- ✅ Add newline before function call
- ✅ Add newline after function call
- ✅ Align spaces
- ✅ Array element newline
- ✅ Single property destructuring
- ✅ Multiple properties destructuring
- ✅ For-of multiple properties destructuring
- ✅ Long properties destructuring
- ✅ Destructuring as function argument
- ✅ Keyword spacing
- ✅ Newline function call arguments
- ✅ Function declaration paren newline
- ✅ Remove newline between declarations
- ✅ Remove newline after default import
- ✅ Remove newline from empty object
- ✅ Remove empty newline before first specifier
- ✅ Remove empty newline after last specifier
- ✅ Remove empty newline after last element
- ✅ Remove empty newline after import
- ✅ Remove empty specifiers
- ✅ Objects braces inside array
- ✅ Nonblock statement body newline
Safe mode
When using 🐊Putout in IDE with --fix
on save, or when you want to disable the most dangerous rules, use:
import {safe} from 'eslint-plugin-putout';
export default safe;
Disabled ESLint rules:
Disabled 🐊Putout rules:
- ❌
apply-template-literals
; - ❌
convert-template-to-string
; - ❌
remove-empty
; - ❌
merge-duplicate-functions
; - ❌
nodejs/remove-process-exit
; - ❌
remove-unused-variables
; - ❌
typescript/remove-unused-types
; - ❌
remove-unused-expressions
; - ❌
remove-unreferenced-variables
; - ❌
remove-useless-arguments
; - ❌
return/remove-useless
; - ❌
remove-useless-spread
; - ❌
remove-useless-variables
; - ❌
tape/remove-skip
; - ❌
tape/remove-only
; - ❌
remove-console
; - ❌
remove-debugger
; - ❌
remove-unreachable-code
; - ❌
for-of/for
; - ❌
for-of/remove-useless
; - ❌
for-of/remove-unused-variables
; - ❌
maybe/noop
; - ❌
remove-useless-push
;
safeAlign
When you want to enable ability to align spaces on empty lines, while have all benefits of safe
preset: use safeAlign
.
jsx
When you need to support jsx
in files using js
extension, use:
import {jsx} from 'eslint-plugin-putout;
export default jsx;
License
MIT