Releases: Torathion/eslint-config-shiny
Releases · Torathion/eslint-config-shiny
4.1.0
Added
- Easier process interrupt
strict
option to increase the the strictness of typechecking rules. This means, all strict rules have been finally and properly removed from the base config.empty
profile to fallback to, when issues arise.- Message to inform when no rules has been found to lint with. This falls back to the
empty
profile.
Fixed
- Properly overwrite renamed rules.
- Removed
knip
from devDependencies as this rarely caused package manager resolution errors. - Indentation rules that were supposed to only half indent actually half indent now.
- Properly separated config fetching and plugin steps visually
- Rare crash on empty plugin array
Changed
- Updated perfectionist import sorting.
- Does not process the prettier file, if no
format
profile has been specified - Moved stylistic rules from
base
toformat
Removed
eslint-plugin-sonarjs
as this was most redundant and bloated the eslint config.eslint-plugin-security
completely as it's very situational and can be easily applied outside.no-constant-condition
in favor ofts/no-unnecessary-condition
promise/prefer-await-to-callbacks
as this rule sawcallback
as a reserved keyword to ALWAYS flag it as an issue.styleTs/no-extra-parens
to prefer the way prettier applies parensunicorn/prefer-math-min-max
as ternaries are faster. (Math.min
andMath.max
are designed to work with arrays = extra overhead)- Properly remove
unicorn/prefer-math-apis
instead of the type version introduced in the last version
Misc
- Updated dependencies
- Cleaned up project by removing unused stuff
- Reworked display output
- Migrated to typestar
4.0.0
[4.0.0] 2024-11-11
BREAKING
- UPDATED TO ESLINT 9
- Removed
angular
profile as I'm not using this framework anymore - Removed
cypress
profile for the same reason - Removed
fp
profile in favor of introducing theapply
option - Remove
json
profile in favor of introducing theexternalConfigs
option - Removed
storybook
support as I'm not using it and can be easily added externally, because of it's minimal configuration
Added
- more rules and changed deprecated rules in VSCode file patching.
no-loss-of-precision
as the JS interpreter can only read a specific precision of numbersts/no-unnecessary-parameter-property-assignment
to shorten class constructor codeguard-for-in
to not accidentally iterate through object prototype valueslogical-assignment-operators
to shorten codeno-constructor-return
to prevent useless codeno-eq-null
to enforce===
and!==
innull
comparisonsno-eval
to prevent xssno-extend-native
as it's a memory and performance consuming anti-pattern- Way more promise rules for safer
Promise
development - Emit error if an unknown profile has been given
- Enabled
eslint-plugin-jsx-a11y
back again - Using the new
projectService
property of TypeScript-Eslint 8 - Manual
tsconfigPath
option for tsconfig project resolving trim
option as a partner ofrename
to permanently remove a part of a plugin name- More errors for clearer troubleshooting
Fixed
- Properly finish tool if an error has been encountered
- Crash upon not giving an option object
- Adjusted profile merging to not overwrite settings
Changed
- Overhauled plugin re-importing from cache to both consider the current project and
eslint-config-shiny
's dependencies - Overhauled project structure to support the caching of plugins importing sub plugins. Internally for now.
- Overhauled
parseIgnoreFiles
to go up the file tree to find ignore files - Overhauled
DisplayTaskHandler
to support the branching routes of the tool - increase tolerance in
no-secrets/no-secrets
- Disabled void return checks in
ts/no-misused-promises
for async html event handlers - Updated
perfectionist
rules - Updated
stylistic
rules - Optimized the size of cache files
- Further optimization in renaming and parsing rules
- Migrated back to
eslint-plugin-import
- Reduced the number of resolved extensions in the base config and distributed the rest to the corresponding profiles
- Migrated from
eslint-plugin-vitest
to@vitest/eslint-plugin
test
profile does not extend frombase
anymore to reduce cache file size- Use
perfectionist
import sorting instead ofimport
's
Removed
unicorn/prefer-modern-maths-apis
as some functions kill the performancestyleJsx/jsx-max-props-per-line
in favor of prettier line lengthunicorn/no-array-callback-reference
as it disallowed the reuse of mapper functions- deprecated
.eslintignore
from fileignoreFiles
default - abandoned plugin
eslint-plugin-deprecation
for the corresponding ts rule eslint-plugin-xss
for being abandonedeslint-plugin-ssr-friendly
for being abandoned@arthurgeron/eslint-plugin-react-usememo
for not supporting Eslint 9eslint-plugin-redundant-undefined
forts/no-duplicate-type-constituents
eslint-plugin-node-security
for being abandoned- the parsing of duplicate
eslint-plugin-sdl
rules - Migrated
eslint-plugin-eslint-comments
to the@eslint-community
one
Misc
- Updated dependencies
- Updated types
- Removed the rule replacement concept as this only bloated the cache file and most of those replaced rules are already deprecated
- Added resolutions to the package.json
- Updated package manager
- Cleanup
3.2.1
3.2.0
[3.2.0] 2024-05-21
Added
eslint-plugin-react-refresh
for faster developmenteslint-plugin-no-secrets
for saver developmenteslint-plugin-no-unsanitized
to reduce security vulnerabilitieseslint-plugin-xss
to reduce security vulnerabilitieseslint-plugin-autofix
to automatically fix some rules eslint doesn't fix- Option to automatically update the browserslist for
eslint-plugin-compat
Changed
- updated Dependencies
- Migrated from
eslint-plugin-react
to@eslint-react
- Made VSCode patching more robust
- Made renaming more robust
- Made caching more robust
- Overhauled react styling rules
- Fixed task display bugs
- Tweaked some styling rules
- Fixed the edge case of handling array profiles
Removed
- Disabled
@typescript/no-unsafe-return
for real this time
3.1.0
Added
- New rules for node config
- New option to rename plugins
- New option to specify project root
- New option to cache the fully parsed config array
- New option to enable indentation rules
- Globals for vue config
- Globals for window api
- Use vue-accessibility rules
- Enabled
@stylistic/jsx/jsx-curly-brace-presence
- Enabled
@typescript-eslint/no-unnecessary-qualifier
to reduce ts code - Enabled
@athurgeron/eslint-plugin-react-usememo
Changed
- Fixed eslint errors when using the node config
- Update Dependencies
- Modified
@typescript-eslint/no-unused-vars
to allow unused parameters - Fixed problems when applying plugins. The prettier and ignore plugins work properly now
- Fixed VSCode patch to correctly merge with pre-existing
setting.json
file - Renamed
@typescript-eslint
rules tots
rules - Renamed
@microsoft/sdl
rules tosdl
rules - Moved SDL rules from
base
toweb
- Fix path normalization issues
Removed
eslint-plugin-styled-components-a11y
from dependency list- Disabled
@typescript-eslint/no-use-before-define
as bundlers will manage this - Disabled
unicorn/import-style
as it wants the default imports of node packages - Disabled
@typescript/no-unsafe-return
3.0.0
Added
- Exposed Types
- Add progress to see the tool working
- Option to patch VSCode native linting to fit the tool
- Arbitrary ignore file support
Changed
- Converted profiles to TypeScript
- Overhauled and reformated every profile and fixed a lot of config bugs
- Complete Rewrite of config merging and fetching
- Updated Vue rules
- Added more autofixable base ESLint rules
- Manually activated eslint-plugin-sdl rules as the configs are still legacy
- Migrated from
eslint-plugin-import-i
toesling-plugin-import-x
- Reduced duplicate eslint-rules that were already included from extended configs
- Enabled
@eslint-react
rules, but not fully as it sill depends on legacy features - Reenabled some old disabled
eslint-plugin-unicorn
rules - Overhauled README.md
Removed
eslint-plugin-toml
as it already features a flat configeslint-plugin-yml
as it already features a flat config@shopify/eslint-plugin
as it's unmaintained and mostly useless
2.4.0
[2.4.0] 2024-03-25
Added
- Dynamic tsconfig file parsing. It only reads the file names of the files in the root directory. Further support with extending configs will be added later.
Changed
- Updated dependencies
- Sped up prettier file parsing
- Sped up config merging
- Replaced
eslint-merge-processors
with own faster implementation - Replaced
eslint-config-flat-gitignore
with own faster implementation
2.3.0
Added
- This config now parses your prettier config file if one is found. It has to be in the format
.prettierrc
- Enabled
unicorn/no-null
as the deactivation reason was too specific - Enabled
unicorn/prefer-module
as the deactivation reason is no longer valid (electron 29 finally supports es6 syntax)
Changed
- Update dependencies
- Speedup rule and globals merging and file gathering
- The engine is now strict and mirrors the engine needed for the newest eslint version
- Improve globs
Removed
- Disabled
import/no-cycle
as it complicated dynamic imports too much - Disabled
import/no-named-as-default
as it does not understand subpackages - Disabled
testing-library/no-await-sync-events
inbrowser-testing-vue
profile as its a false positive.
2.2.0
Changed
- Speedup config merging
- Remove unnecessary configuration from the test profiles
- replace
perfectionist/sort-imports
withimport/order
Removed
- remove
@babel/eslint-plugin
as it's no longer maintained - remove
@stylistic/js/dot-location
as I realized the preferred style is ugly
2.1.0
[2.1.0] 2024-03-11
Fixed
- block
no-extra-parens
completely now
Removed
eslint-plugin-prettier
as it took 40 - 60 % of the linting time on averageeslint-config-prettier
as it blocked too many style rules that prettier does not format@typescript-eslint/max-params
as it's too restrictive