What's Changed
💥 Breaking Changes
Core API Refactoring (@eslint-react/core)
- Performed a large-scale flattening refactor of the core package's internal structure, merging modules previously scattered across subdirectories like
component/,function/,hook/,semantic/, andapi/into the root directory. - Renamed several core APIs:
isReactAPI→isAPIisReactAPICall→isAPICallisInitializedFromReact→isAPIFromReactisInitializedFromReactNative→isAPIFromReactNativeComponentDetectionHint→FunctionComponentDetectionHintComponentFlag→FunctionComponentFlaggetComponentCollector→getFunctionComponentCollectorgetComponentCollectorLegacy→getClassComponentCollector
- Migrated type utilities
type-is,type-name, andtype-variantfromeslint-plugin-react-xto@eslint-react/core. - Updated the
Toolkitinterface in@eslint-react/kitto reflect the naming changes above.
Removed Rules
@eslint-react/no-redundant-should-component-update: This rule, along with its documentation and tests, has been removed fromeslint-plugin-react-xand all configuration presets (all,x,recommended,strict, etc.).debug/class-component: This debug rule has been removed fromeslint-plugin-react-debugand thedebug/allconfiguration.
Class Component Support Deprecation
- All Class Component-related detection functions in the core package (such as
isClassComponent,isPureComponent, and various lifecycle checkers) have been marked as@deprecated, retaining only minimal compatibility support for existing rules. - Rules in
eslint-plugin-react-web-api, includingno-leaked-event-listener,no-leaked-interval, andno-leaked-timeout, have removed detection for Class Component lifecycles (componentDidMount/componentWillUnmount) and now only report on Hook Effects (useEffect, etc.).
📝 Documentation
- Added an Examples page (
/docs/examples), listing all official example projects and links. - Removed redundant Overview headings in several places throughout the documentation.
- Updated the migration guide and roadmap.
🏗️ Internal Improvements
- Unified the import style for
@typescript-eslint/typesacross the codebase, mergingTSESTreetypes andAST_NODE_TYPESconstants into single-line imports. - Removed
scripts/prepare-release.tsand the accompanyingprepare:releasenpm script. - Updated dependency versions for
esbuild,@eslint/compat,@types/node,undici, etc.