Skip to content

4.0.0

Compare
Choose a tag to compare
@Torathion Torathion released this 10 Nov 23:53
· 37 commits to master since this release
57f48a3

[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 the apply option
  • Remove json profile in favor of introducing the externalConfigs 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 numbers
  • ts/no-unnecessary-parameter-property-assignment to shorten class constructor code
  • guard-for-in to not accidentally iterate through object prototype values
  • logical-assignment-operators to shorten code
  • no-constructor-return to prevent useless code
  • no-eq-null to enforce === and !== in null comparisons
  • no-eval to prevent xss
  • no-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 of rename 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 from base anymore to reduce cache file size
  • Use perfectionist import sorting instead of import's

Removed

  • unicorn/prefer-modern-maths-apis as some functions kill the performance
  • styleJsx/jsx-max-props-per-line in favor of prettier line length
  • unicorn/no-array-callback-reference as it disallowed the reuse of mapper functions
  • deprecated .eslintignore from file ignoreFiles default
  • abandoned plugin eslint-plugin-deprecation for the corresponding ts rule
  • eslint-plugin-xss for being abandoned
  • eslint-plugin-ssr-friendly for being abandoned
  • @arthurgeron/eslint-plugin-react-usememo for not supporting Eslint 9
  • eslint-plugin-redundant-undefined for ts/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