eslint-config-phun-ky
An opinionated eslint-config that someone else could also use, with more than 450 helpful ESLint rules :)
Table of Contents
Install
npm i -D eslint eslint-config-phun-ky
Requires ESLint >=9.20.0 and flat config.
Usage
// eslint.config.js
import { defineConfig } from 'eslint/config';
import customConfig from 'eslint-config-phun-ky';
export default defineConfig([
{
files: ['**/*.js'],
extends: [customConfig],
// anything from here will override customConfig
rules: {
'@stylistic/no-extra-semi': '0'
}
}
]);
Files
By default, the config covers these files:
['**/*.{js,mjs,cjs,ts,tsx,md}']
Rules
The custom rules extends/overrides these configs and plugins:
{
…,
{
...markdown.configs.recommended,
eslint.configs.recommended,
importPlugin.flatConfigs.recommended,
importPlugin.flatConfigs.typescript,
compat.configs['flat/recommended'],
...tsConfigs.recommended,
eslintPluginPrettierRecommended,
},
plugins: {
'@stylistic': stylistic
},
…
}
Extended
🔧 Automatically fixable with
--fix
CLI option.
Rule | Description | 🔧 |
---|---|---|
import/no-named-as-default | Disallows named imports that may conflict with default exports. | |
import/no-unused-modules | Reports modules without any exports or imports used elsewhere. | |
import/order | Enforces a consistent order for import statements. | 🔧 |
no-alert | Disallows alert , confirm , and prompt . |
|
no-console | Disallows use of console . |
|
no-undef | Disallows the use of undeclared variables unless mentioned in /*global */ comments. |
|
no-unreachable | Disallows unreachable code after return , throw , continue , and break . |
|
prefer-const | Suggests using const declaration for variables that are never reassigned. |
🔧 |
one-var | Enforces variables to be declared either together or separately in functions. | 🔧 |
@stylistic/array-bracket-newline | Enforces line breaks inside brackets. | 🔧 |
@stylistic/max-len | Enforces a maximum line length. | |
@stylistic/quotes | Enforces the consistent use of quotes. | 🔧 |
@stylistic/padded-blocks | Enforces or disallows padding within blocks. | 🔧 |
@stylistic/comma-dangle | Requires or disallows trailing commas. | 🔧 |
@stylistic/padding-line-between-statements | Requires or disallows blank lines between statements. | 🔧 |
@stylistic/indent | Enforces consistent indentation. | 🔧 |
@stylistic/object-curly-spacing | Enforces consistent spacing inside braces. | 🔧 |
@stylistic/no-extra-semi | Disallows unnecessary semicolons. | 🔧 |
@stylistic/no-trailing-spaces | Disallows trailing whitespace at the end of lines. | 🔧 |
@stylistic/semi | Enforces or disallows semicolons. | 🔧 |
no-irregular-whitespace | Disallows irregular whitespace. | 🔧 |
Contributing
Want to contribute? Please read the CONTRIBUTING.md and CODE_OF_CONDUCT.md
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
See the CHANGELOG.md for details on the latest updates.
Sponsor me
I'm an Open Source evangelist, creating stuff that does not exist yet to help get rid of secondary activities and to enhance systems already in place, be it documentation or web sites.
The sponsorship is an unique opportunity to alleviate more hours for me to maintain my projects, create new ones and contribute to the large community we're all part of :)
Support me on GitHub Sponsors.
p.s. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, putting pressure on your local government or companies. You can also support Ukraine by donating e.g. to Red Cross, Ukraine humanitarian organisation or donate Ambulances for Ukraine.