Skip to content

Releases: Torathion/eslint-config-shiny

4.1.0

12 Jan 19:45
2325ac0
Compare
Choose a tag to compare

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 to format

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 of ts/no-unnecessary-condition
  • promise/prefer-await-to-callbacks as this rule saw callback as a reserved keyword to ALWAYS flag it as an issue.
  • styleTs/no-extra-parens to prefer the way prettier applies parens
  • unicorn/prefer-math-min-max as ternaries are faster. (Math.min and Math.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

10 Nov 23:53
57f48a3
Compare
Choose a tag to compare

[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

3.2.1

20 May 22:47
Compare
Choose a tag to compare

[3.2.1] 2024-05-21

Changed

  • Properly added eslint-plugin-security-node again

3.2.0

20 May 22:34
0725ebe
Compare
Choose a tag to compare

[3.2.0] 2024-05-21

Added

  • eslint-plugin-react-refresh for faster development
  • eslint-plugin-no-secrets for saver development
  • eslint-plugin-no-unsanitized to reduce security vulnerabilities
  • eslint-plugin-xss to reduce security vulnerabilities
  • eslint-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

01 May 19:42
b54e0cb
Compare
Choose a tag to compare

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 to ts rules
  • Renamed @microsoft/sdl rules to sdl rules
  • Moved SDL rules from base to web
  • 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

18 Apr 22:33
1a269ec
Compare
Choose a tag to compare

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 to esling-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 config
  • eslint-plugin-yml as it already features a flat config
  • @shopify/eslint-plugin as it's unmaintained and mostly useless

2.4.0

25 Mar 01:38
6e18204
Compare
Choose a tag to compare

[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

19 Mar 18:59
9306173
Compare
Choose a tag to compare

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 in browser-testing-vue profile as its a false positive.

2.2.0

14 Mar 01:00
0f1c82a
Compare
Choose a tag to compare

Changed

  • Speedup config merging
  • Remove unnecessary configuration from the test profiles
  • replace perfectionist/sort-imports with import/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

13 Mar 00:31
954707b
Compare
Choose a tag to compare

[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 average
  • eslint-config-prettier as it blocked too many style rules that prettier does not format
  • @typescript-eslint/max-params as it's too restrictive