@openreachtech/eslint-rules-default
v2.0.2
Published
A showcasing package all the rules of ESLint.
Keywords
Readme
eslint-rules-default
Language
Overview
This package provides ESLint rules with default options.
If this package is used as a base ruleset in another ESLint config repository, all rules are enabled by default. You must explicitly turn off each rule that you want to disable.
This package is only for Flat Config.
Usage
Installing
Please add the following line to your .npmrc file.
// .npmrc
@openreachtech:registry=https://npm.pkg.github.comInstall this package alongside ESLint v9 or greater:
npm install --save-dev \
eslint \
@openreachtech/eslint-rules-defaultConfiguring
In your eslint.config.js file, import @openreachtech/eslint-rules-default and include the all rules to use it:
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'
import configurationHash from '@openreachtech/eslint-rules-default'
export default [
{
rules: {
...configurationHash.core.rules,
...stylistic.configs['disable-legacy'].rules, // TODO: Not required after v10.
'array-callback-return': [
'error',
{
allowImplicit: false,
checkForEach: true, // false
},
],
'max-classes-per-file': [
'error',
{
max: 1,
ignoreExpressions: true, // false
},
],
...
},
},
]Advanced Configuration
This package also contains stylistic plugin ruleset.
Frequently-Disabled Rules
Core rules of ESLint v9 includes stylistic-related rules.
When using @stylistic/eslint-plugin with ESLint v9, please disable stylistic-related rules in the core ruleset as follows:
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'
import configurationHash from '@openreachtech/eslint-rules-default'
export default [
// core rules
{
rules: {
...configurationHash.core.rules,
...stylistic.configs['disable-legacy'].rules, // <--- ✅
'array-callback-return': [
'error',
{
allowImplicit: false,
checkForEach: true, // false
},
],
...
},
},
// @stylistic rules
{
...configurationHash.stylistic,
rules: [
...configurationHash.stylistic.rules,
'@stylistic/indent-binary-ops': [
'error',
4, // 2
],
...
],
},
]Track of Changes with Line Comments
When overwriting default values in each ESLint Config package, we recommend leaving the default values as line comments.
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'
import configurationHash from '@openreachtech/eslint-rules-default'
export default [
{
rules: {
...configurationHash.core.rules,
...stylistic.configs['disable-legacy'].rules,
'array-callback-return': [
'error',
{
allowImplicit: false,
checkForEach: true, // false <--- ✅
},
],
'dot-notation': [
'off', // 'error' <--- ✅
{
allowKeywords: true,
allowPattern: '',
},
],
'max-classes-per-file': [
'error',
{
max: 1,
ignoreExpressions: true, // false <--- ✅
},
],
...
},
},
]License
This project is released under the Apache License 2.0.
See → LICENSE
Contributing
We welcome bug reports, feature requests, and ruleset contributions.
Please feel free to contact us through GitHub Issues or Pull Requests.
We strive to meet user expectations and your contributions are highly appreciated!
% git clone https://github.com/openreachtech/eslint-rules-default.git
% cd eslint-rules-default
% npm install
% npm run lint
% npm test