Releases: Rel1cx/eslint-react
Release list
v5.18.6 (2026-08-13)
What's Changed
🏗️ Internal
@eslint-react/core: addedcreateElementhelper APIs (getCreateElementChildrenArguments,getCreateElementProp,getCreateElementPropsObject,getCreateElementTypeArgument,isCreateElementChildrenArgument, andisInsideCreateElementProps) and reused them inreact-x/no-children-prop-with-children,react-x/no-children-prop,react-x/no-array-index-key, andreact-x/no-nested-component-definitions. (#1937)
Full Changelog: v5.18.5...v5.18.6
Attestation
https://github.com/Rel1cx/eslint-react/attestations/40429819
v5.18.5 (2026-08-13)
What's Changed
📝 Documentation
react-jsx/no-leaked-dollar: corrected the full rule name in the documentation from@eslint-react/no-leaked-dollarto@eslint-react/jsx-no-leaked-dollar. (#1935)
🏗️ Internal
@eslint-react/core: simplified function component detection logic.@eslint-react/core: added missing test cases for API exports, nested HOC init paths, named callback exclusion, displayName collection, indirect cleanup callbacks, and customcreateElementheuristics.- Added a script check that verifies rule docs include correct full name sections.
- Bumped
typescript-eslintto8.67.0,eslint-plugin-package-jsonto1.7.1, andglobalsto17.10.0.
Full Changelog: v5.18.4...v5.18.5
Attestation
https://github.com/Rel1cx/eslint-react/attestations/40407345
v5.18.4 (2026-08-12)
What's Changed
🐞 Fixes
react-x/no-class-component: reports are now located on the class name (falling back to theclasstoken for anonymous classes) instead of the entire class declaration. (#1934, closes #1932)
🏗️ Internal
- Bumped
eslintto10.8.1,@types/nodeto26.2.0,eslint-plugin-package-jsonto1.7.0,eslint-plugin-react-refreshto0.5.4,fumadocsto16.14.3,fumadocs-mdxto15.2.3,lucide-reactto1.31.0,postcssto8.5.26, andpnpmto11.21.0.
New Contributors
- Ankit Soni (@ankitprahladsoni) made their first contribution in #1934.
Full Changelog: v5.18.3...v5.18.4
Attestation
https://github.com/Rel1cx/eslint-react/attestations/40152188
v5.18.3 (2026-08-06)
What's Changed
🐞 Fixes
react-x/no-nested-component-definitions: narrowed thewith*HOC detection in the fallback name resolution to well-known wrappers only (react-router v5'swithRouter, Formik'swithFormik, and recompose'swithProps,withState,withHandlers, andwithLifecycle) — custom HOCs following thewith*naming convention are no longer treated as component wrappers. (#1929)
🏗️ Internal
- Bumped
typescript-eslintto8.66.0andnextto16.3.0.
Full Changelog: v5.18.2...v5.18.3
Attestation
https://github.com/Rel1cx/eslint-react/attestations/39220601
v5.18.2 (2026-08-05)
What's Changed
🐞 Fixes
react-x/no-nested-component-definitions: fixed a regression where nested components wrapped inuseCallback(e.g.const C = useCallback(() => <div />, []);) were no longer reported — the rule now resolves the component name through well-known component wrappers (memo,forwardRef,useCallback,observer, react-redux'sconnect, Relay'screate*Containerhelpers, Apollo'sgraphql, andwith*HOCs, including curried forms likeconnect(...)(Component)) up to the enclosing variable declarator, and no longer misreports array method callbacks (flatMap,forEach,reduce, etc.) in list rendering patterns. (#1928, closes #1927)
🏗️ Internal
- Bumped
effectto3.22.1,eslint-plugin-jsdocto63.3.3,textlintto15.8.0,js-yamlto4.3.1,axiosto1.19.0,nxto23.1.1,viteto8.2.0,@vitejs/plugin-reactto6.0.5,fumadocsto16.14.0,fumadocs-mdxto15.2.2,preactto10.29.8,globalsto17.9.0,lucide-reactto1.28.0,@types/reactto19.2.18,@types/react-domto19.2.4, andpnpmto11.20.0.
Full Changelog: v5.18.1...v5.18.2
Attestation
https://github.com/Rel1cx/eslint-react/attestations/38852008
v5.18.1 (2026-07-30)
What's Changed
📝 Documentation
- Documented the
additionalRefHooksshared setting in the affected rule docs.
🏗️ Internal
@eslint-react/ast: addedTraverse.findEnclosingTryBlock, extracted fromreact-x/error-boundaries.- Replaced
@eslint/compatwith@eslint/config-helpers. - Bumped
eslintto10.8.0,eslint-plugin-jsdocto63.3.2,tsdownto0.22.14,nextto16.2.12,fumadocsto16.13.0,postcssto8.5.25, andpnpmto11.18.0.
Full Changelog: v5.18.0...v5.18.1
Attestation
https://github.com/Rel1cx/eslint-react/attestations/37979913
v5.18.0 (2026-07-23)
What's Changed
✨ New
@eslint-react/core: addedisUseRefLikeCalland a newadditionalRefHookssetting for declaring custom ref-creating hooks; the following rules now recognize them: (#1922, closes #1904)react-x/refsreact-x/immutabilityreact-x/set-state-in-effectreact-naming-convention/ref-namereact-debug/is-from-ref
📝 Documentation
- Updated rule docs to match current rule sources. (#1920)
🏗️ Internal
@local/testkit: simplified internals.react-x: extracted a sharedcreateImplicitPropListenerhelper used byno-implicit-children,no-implicit-key, andno-implicit-ref. (#1923)- Bumped
tsdownto0.22.13,typescript-eslintto8.65.0,eslint-plugin-jsdocto63.2.0,import-integrity-lintto1.2.0,reactto19.2.8,nextto16.2.11, andpostcssto8.5.21. - Replaced
vite-nodewithnubfor running workspace scripts. (#1919) - Unified JSDoc comment style of exported APIs in
@eslint-react/astand@eslint-react/core.
Full Changelog: v5.17.3...v5.18.0
Attestation
https://github.com/Rel1cx/eslint-react/attestations/36633587
v5.17.3 (2026-07-20)
What's Changed
🏗️ Internal
@eslint-react/ast: reworked theExtractAPI — replacedgetRootIdentifierwith the position-basedgetIdentifierAt, renamedgetStaticPropertyNametogetPropertyName(with amin/maxeffort option), and addedfindPropertyfor finding properties in nested object expressions; addedCheck.isConditionalfor matching conditional expressions and control flow statements. (#1918)- Bumped
eslint-plugin-jsdocto63.1.0,expect-typeto1.4.0,@preact/preset-viteto2.10.6, andpnpmto11.15.0.
Full Changelog: v5.17.2...v5.17.3
Attestation
https://github.com/Rel1cx/eslint-react/attestations/36106563
v5.17.2 (2026-07-19)
What's Changed
📝 Documentation
@eslint-react/kit: added a README with quick start and API overview.
🏗️ Internal
@eslint-react/core: migratedJsxDetectionHintand related JSX detection helpers from@eslint-react/jsx. (#1913)@eslint-react/jsx: consolidated helpers into focusedattribute,children,element, andtextmodules. (#1914)@eslint-react/var: renamedcomputeObjectTypetoresolveObjectType.@local/testkit: extracted shared test helpers into a new local package. (#1915)- Bumped
tsdownto0.22.9,eslint-plugin-jsdocto63.0.14, andpnpmto11.13.1.
Full Changelog: v5.17.1...v5.17.2
Attestation
https://github.com/Rel1cx/eslint-react/attestations/36041651
v5.17.1 (2026-07-17)
What's Changed
🏗️ Internal
react-jsx/no-key-after-spread: reworked the attribute scan to a pipeline style usingdropWhileandnotfrom@local/eff,Check.isfrom@eslint-react/ast, and the newisAttributehelper from@eslint-react/jsx. (#1912)@eslint-react/jsx: addedisAttributefor matching JSX attributes by name.@local/eff: addeddropWhileandtakeWhile.- Bumped
tsdownto0.22.8,tsl-dxto0.13.3,import-integrity-lintto1.1.4,fumadocsto16.11.5, andfumadocs-mdxto15.2.0.
Full Changelog: v5.17.0...v5.17.1
Attestation
https://github.com/Rel1cx/eslint-react/attestations/35804801