Changes to the
js
flavor are also applied to all the other flavors. Changes to thets
flavor are also applied toreact
andreact-native
flavors.
- Added
"react-refresh/only-export-components"
- Upgraded deps
- Upgraded deps
- Removed
require-extensions
plugin. Bun ftw!
- Fixed
biome
not being in overrides
- Upgraded
eslint-config-biome
; removed internals no longer required due to this upgrade. - Improved package.json sorting.
next
now extendsplugin:@next/next/core-web-vitals
.
- Add next flavor
-
You should now use this package together with Biome, for improved performance. All ESLint rules that have a Biome corresponding rules are now disabled.
-
Removed
react-native-js
andreact-js
flavors.
- Fix missing files
- Add
prefer-template
.
- Improved the bin. Now the dependency is added with the command and we are using a lighter package for the CLI parsing.
- Added
require-extensions
plugin. Let's have.js
in all imports for ESM compatibility. npx eslint-config-gev <flavor>
will have.cjs
as extension by default, instead of.js
. Dropped the--cjs
flag and added the--js
.
- Remove
no-relative-import-paths/no-relative-import-paths
- Add
arrow-body-style
- Add
'@typescript-eslint/array-type': ['warn', { default: 'generic' }]
- Add
'@typescript-eslint/prefer-string-starts-ends-with': 'warn'
- Add package
@stylistic/eslint-plugin
- Add
"padding-line-between-statements"
for multiple situations
- Revert previous minor for functions and use
'eslint-plugin-prefer-arrow-functions'
instead as it has autofix.
- Add
'func-style'
,'prefer-arrow-callback'
rules andeslint-plugin-jsdoc
package.
- Fixed .cjs extension
- Added
allowConstantLoopConditions: true
to@typescript-eslint/no-unnecessary-condition
- Reverted the 3.3.0~1 changes and made them to be 'error'. They were just being warnings by the recommended rules default.
-
Removed the following rules overrides that were allowing
any
usage:'@typescript-eslint/no-explicit-any': 'off'
'@typescript-eslint/no-unsafe-assignment': 'off'
'@typescript-eslint/no-unsafe-return': 'off'
'@typescript-eslint/no-unsafe-member-access': 'off'
'@typescript-eslint/no-unsafe-argument': 'off'
'@typescript-eslint/no-unsafe-call': 'off'
-
Removed
'@typescript-eslint/no-non-null-assertion': 'off'
-
Updated dependencies
They can still be disabled for specific lines where they may apply in a good way.
- Removed
@typescript-eslint/explicit-module-boundary-types
. Not worth the effort on most cases; typing returns is more of a good practice, shouldn't be enforced as it slows down development.
- Re-added
import/newline-after-import
withcount: 1
to be compatible with Prettier (it only removes newlines).
All formatting rules are now disabled. This is a change in this config's philosophy and I have decided this as ESLint format gets slow on larger codebases and due to this. You can still use eslint-config-gev@2 to use the formatting rules. Created prettier-config-gev.
- ts added
'no-undef': 'off'
to remove false-positives.
- Added
--cjs
option to CLI
- Added executable for creating .eslintrc.js!
- Simplified and prettified example usage
- Simplified source code (removed
js-no-extends.js
andreact-common.js
and some unused code) 'plugin:@typescript-eslint/recommended-requiring-type-checking'
is now added by default ints
flavorsextends
.
- Now this package uses itself for its own linting!
- ts: Added
"@typescript-eslint/no-unnecessary-boolean-literal-compare
- ts: Some TS rules that extended JS ones weren't being used. This is now fixed with the damn smart ts-extensions.js automatically generated file!
- Now all dependencies have fixed versions to avoid breaking CI/CD if one of them has a breaking change/bug. Before, they all had '*' as version.
js: Readded "brace-style": ["warn", "1tbs", { "allowSingleLine": true }],
js: Added "curly": ["warn", "multi", "consistent"]
react: Added "react/jsx-fragments": "warn"
.
- Import sort will now consider
~
path alias. - js: Added
"no-tabs": "warn", "no-var": "warn"
- Added
react-native-js
andreact-js
configs. - Improved README. Now each .eslintrc.js is right after their corresponding config.
- Added
"always"
as 2nd parameter to"lines-between-class-members"
.
- Removed
"considerComments": true
to"import/newline-after-import"
as it's not yet released.
"no-multiple-empty-lines": ["warn", { "max":
from5
to2
."import/newline-after-import": ["warn", { "count":
from3
to2
.
"lines-between-class-members"
- Added
"considerComments": true
to"import/newline-after-import"
js, ts: Added no-throw-literal: "warn"
and its ts variant.
js: Added "object-shorthand": ["warn", "always"]
.
react: "jsx-quotes": ["error"
to "warn"
.
ts: Added "disallowTypeAnnotations": false
to "consistent-type-imports"
.
js: Added "quote-props": ["warn", "as-needed"]
.
js: Added "block-spacing": "warn"
. Thanks, mdjermanovic!
js: Dropped "no-empty-function"
.
ts: Dropped "@typescript-eslint/no-empty-function"
.
js: Added "no-mixed-operators": "warn"
.
ts: Added "@typescript-eslint/consistent-type-imports": "warn"
.
js: Added ignoreRestSiblings
to no-unused-vars
.
Now using @rushstack/eslint-patch!
js: Added missing plugin: ["unused-imports"]
.
js: Re-enabled "unused-imports/no-unused-imports": "warn"
.
ts: "@typescript-eslint/restrict-plus-operands": "off"
as it's bugging often.
react: "jsx-quotes": ["error", "prefer-single"]
.
react-native:
"react-native/no-unused-styles": "warn"
."react-native/no-single-element-style-arrays" : "warn"
.
react: Removed "react/jsx-no-useless-fragment"
.
react: "react/jsx-curly-brace-presence": ["warn", { "props": "never", "children": "always"}]
.
react: "react/jsx-no-useless-fragment": ["warn", {"allowExpressions": true}]
.
react: Now extending "plugin:react/jsx-runtime"
for React 17 support, import React
is no longer required.
ts:
"@typescript-eslint/no-unnecessary-condition": "warn"
.
Aparently didn't work.dependencies
to peerDependencies
so they are automatically installed and no longer required to be manually installed.
js:
"import/newline-after-import": ["warn", { "count": 3 }]
."import/no-duplicates": "warn"
.
js: "array-bracket-newline"
from { "multiline": true }
to "consistent"
.
ts: "@typescript-eslint/no-unsafe-argument": "off"
.
react
"enableDangerousAutofixThisMayCauseInfiniteLoops": true
}],
(hooks deps autofix! yea)
js "arrow-spacing": "warn"
.
ts "no-empty-pattern": "off"
.
reacts "react/no-children-prop": "off"
.
- Removed
"brace-style": ["warn", "1tbs", { "allowSingleLine": true }]
because it's limited and complains when it shouldn't, like on comments on line above.
- Added "no-confusing-arrow": "warn" and "arrow-parens": "warn".
- Added "react/jsx-tag-spacing".
- Improved import sort (It's amazing now :)!).
- Added "space-in-parens", "space-before-function-paren".
- Added "simple-import-sort" plugin.
- Added GitHub Action to this package.
- Changed ?? to || in its replaceBaseRule function to be Node 12 friendly.
- Removed old 'unused-imports' plugin from js-no-extends.
- Removed
operator-linebreak
- would mess React conditional components. - Removed
unused-imports/no-unused-imports
- would sometimes remove imports when I didn't want to.
- Added
"spaced-comment": ["warn", "always", { "exceptions": ["-", "+"], "markers": ["/"] }]
. - Added
"switch-colon-spacing": "warn"
.
- Added
"unused-imports/no-unused-imports": "warn"
.
"operator-linebreak": ["warn", "before", { "overrides": {
"=": "after", "+=": "after", "-=": "after", "*=": "after", "/=": "after",
}}],
"no-useless-catch": "warn" // was error, in recommended extends
"no-whitespace-before-property": "warn",
"error" to "warn":
"no-multi-spaces": "warn",
"error" to "warn":
"no-empty": "warn",
"no-empty-function": "warn",
"no-unreachable-loop": "warn",
"no-unreachable": "warn"
"no-multiple-empty-lines": ["warn", { "max": 5, "maxEOF": 0, "maxBOF": 0 }],
"no-trailing-spaces": "warn",
"no-loss-of-precision": "error",
- Added function to better replace js based rules.
- Replaced ~5 js rules by ts rules.
"comma-dangle": "off",
"@typescript-eslint/comma-dangle": ["warn", "always-multiline"],
"semi": "off",
"@typescript-eslint/semi": ["warn"],
"@typescript-eslint/member-delimiter-style",
- Switched from
"prefer-const"
to"no-autofix/prefer-const"
. No more auto-fix forprefer-const
!
- Added
"avoidEscape": true
option to"quotes"
.
- Added
"@typescript-eslint/prefer-regexp-exec": "off"
.
- Added
"react/jsx-equals-spacing"
and"react/jsx-curly-spacing"
. - Both are now using the new shared react-common.js file.
- Added
"@typescript-eslint/explicit-module-boundary-types": ["warn", { allowArgumentsExplicitlyTypedAsAny: true }]
.
- Added
{"SwitchCase": 1}
to indent.
- Added
"brace-style"
,"array-bracket-newline"
,"object-curly-newline"
.
- Added `"settings": { "react": { "version": "detect" }} to remove those pesky warnings.
- Added
"keyword-spacing"
,"key-spacing"
,"space-unary-ops"
,"space-infix-ops"
,"rest-spread-spacing"
. I could and should have added them earlier!
- Added
"require-await": "off"
(there is already a ts equivalent rule for it).
- Added
"no-constant-condition": ["warn", { "checkLoops": false }]
.
[ts]
- Fixed the extends order. Also, we were extending"./js.js"
and it extended"eslint-recommended"
. ts is now extending the new"js-no-extends.js"
, that don't extends the"eslint-recommended"
. The"./js.js"
also extends that new file.
[ts]
- Fixed "no-unused-vars". Ref: https://stackoverflow.com/a/61555310/10247962.
[ts]
- Changed"@typescript-eslint/no-floating-promises": "off"
to"@typescript-eslint/no-floating-promises": "warn"
.
[js]
- Added"space-before-blocks": "warn"
.
[js]
- Changedno-unused-vars
from error to warn.
[js]
- Added Javascript (for a friend that still doesn't know the wonderful world of TS!).[ts]
- Now extendsjs.js
. No rules were changed, just some of its content was moved to js file.
[react]
- Reordered extends.- Reordered extends in README example.
[ts]
-@typescript-eslint/require-await
now throws a warn instead of error.
[ts]
- Added.
"@typescript-eslint/no-misused-promises": [ "error", {
"checksVoidReturn": false
}]
[react-native]
- Fixed extends order so./ts.js
have priority.
-
Added react and react-native configs.
-
Rename package from
@srbrahma/eslint-config
toeslint-config-gev
.
- Added "@typescript-eslint/no-var-requires": "off".
- Fixed "**dirname" to **dirname (no quotes).
- Release version.