Help us test this pre-release 🙏
Breaking
- Requires Node.js 18.20
- Requires ESLint flat config
- Configuration now only through
package.json
andxo.config.{js,cjs,mjs,ts,cts,mts}
files - Switched from
eslint-plugin-import
toeslint-plugin-import-x
(since it's better maintained)- You will have to update ignore comments and config from
import
toimport-x
- You will have to update ignore comments and config from
- CLI flags removed:
--plugin
: Configurable via config file--extend
: Configurable via config file--global
: Configurable via config file--extension
: Configurable via config file--env
: No longer relevant with new config system--node-version
: Removed as it only affected unsupported Node.js versions--reporter
: Removed due to potential lookup reliability issues
- Node.js engines check removed
- Was only active in unsupported Node.js versions
- Webpack lookup and import resolution removed
- Considered too niche for core functionality
Improvements
- React support
- Prettier compatibility mode with
{prettier: 'compat'}
option- Disables all Prettier-affected stylistic rules, and maintains existing Prettier functionality otherwise
- Enhanced stdin handling:
--stdin-filename
now optional- Supports TypeScript files via stdin
New rules
@typescript-eslint/no-wrapper-object-types
@typescript-eslint/no-unsafe-function-type
@typescript-eslint/no-deprecated
@stylistic/type-named-tuple-spacing
@stylistic/type-generic-spacing
unicorn/consistent-date-clone
unicorn/no-named-default
unicorn/consistent-assert
unicorn/no-instanceof-builtins
unicorn/no-accessor-recursion
Thanks
Huge thanks to @spence-s for doing most of the work for this 🎉