eslint-config-typed 2.3.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +29 -26
  2. package/dist/configs/plugins.d.mts +1 -1
  3. package/dist/configs/plugins.d.mts.map +1 -1
  4. package/dist/configs/plugins.mjs +2 -0
  5. package/dist/configs/plugins.mjs.map +1 -1
  6. package/dist/configs/react-base.d.mts.map +1 -1
  7. package/dist/configs/react-base.mjs +2 -0
  8. package/dist/configs/react-base.mjs.map +1 -1
  9. package/dist/entry-point.d.mts +1 -1
  10. package/dist/entry-point.d.mts.map +1 -1
  11. package/dist/entry-point.mjs +2 -1
  12. package/dist/entry-point.mjs.map +1 -1
  13. package/dist/index.mjs +3 -1
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/plugins/index.d.mts +1 -0
  16. package/dist/plugins/index.d.mts.map +1 -1
  17. package/dist/plugins/index.mjs +1 -0
  18. package/dist/plugins/index.mjs.map +1 -1
  19. package/dist/plugins/react-coding-style/index.d.mts +2 -0
  20. package/dist/plugins/react-coding-style/index.d.mts.map +1 -0
  21. package/dist/plugins/react-coding-style/index.mjs +2 -0
  22. package/dist/plugins/react-coding-style/index.mjs.map +1 -0
  23. package/dist/plugins/react-coding-style/plugin.d.mts +3 -0
  24. package/dist/plugins/react-coding-style/plugin.d.mts.map +1 -0
  25. package/dist/plugins/react-coding-style/plugin.mjs +8 -0
  26. package/dist/plugins/react-coding-style/plugin.mjs.map +1 -0
  27. package/dist/plugins/react-coding-style/rules/ban-use-imperative-handle-hook.d.mts +5 -0
  28. package/dist/plugins/react-coding-style/rules/ban-use-imperative-handle-hook.d.mts.map +1 -0
  29. package/dist/plugins/react-coding-style/rules/ban-use-imperative-handle-hook.mjs +29 -0
  30. package/dist/plugins/react-coding-style/rules/ban-use-imperative-handle-hook.mjs.map +1 -0
  31. package/dist/plugins/react-coding-style/rules/component-name.d.mts +10 -0
  32. package/dist/plugins/react-coding-style/rules/component-name.d.mts.map +1 -0
  33. package/dist/plugins/react-coding-style/rules/component-name.mjs +78 -0
  34. package/dist/plugins/react-coding-style/rules/component-name.mjs.map +1 -0
  35. package/dist/plugins/react-coding-style/rules/component-var-type-annotation.d.mts +5 -0
  36. package/dist/plugins/react-coding-style/rules/component-var-type-annotation.d.mts.map +1 -0
  37. package/dist/plugins/react-coding-style/rules/component-var-type-annotation.mjs +41 -0
  38. package/dist/plugins/react-coding-style/rules/component-var-type-annotation.mjs.map +1 -0
  39. package/dist/plugins/react-coding-style/rules/import-style.d.mts +5 -0
  40. package/dist/plugins/react-coding-style/rules/import-style.d.mts.map +1 -0
  41. package/dist/plugins/react-coding-style/rules/import-style.mjs +45 -0
  42. package/dist/plugins/react-coding-style/rules/import-style.mjs.map +1 -0
  43. package/dist/plugins/react-coding-style/rules/index.d.mts +2 -0
  44. package/dist/plugins/react-coding-style/rules/index.d.mts.map +1 -0
  45. package/dist/plugins/react-coding-style/rules/index.mjs +2 -0
  46. package/dist/plugins/react-coding-style/rules/index.mjs.map +1 -0
  47. package/dist/plugins/react-coding-style/rules/props-type-annotation-style.d.mts +5 -0
  48. package/dist/plugins/react-coding-style/rules/props-type-annotation-style.d.mts.map +1 -0
  49. package/dist/plugins/react-coding-style/rules/props-type-annotation-style.mjs +44 -0
  50. package/dist/plugins/react-coding-style/rules/props-type-annotation-style.mjs.map +1 -0
  51. package/dist/plugins/react-coding-style/rules/react-memo-props-argument-name.d.mts +5 -0
  52. package/dist/plugins/react-coding-style/rules/react-memo-props-argument-name.d.mts.map +1 -0
  53. package/dist/plugins/react-coding-style/rules/react-memo-props-argument-name.mjs +55 -0
  54. package/dist/plugins/react-coding-style/rules/react-memo-props-argument-name.mjs.map +1 -0
  55. package/dist/plugins/react-coding-style/rules/react-memo-type-parameter.d.mts +5 -0
  56. package/dist/plugins/react-coding-style/rules/react-memo-type-parameter.d.mts.map +1 -0
  57. package/dist/plugins/react-coding-style/rules/react-memo-type-parameter.mjs +78 -0
  58. package/dist/plugins/react-coding-style/rules/react-memo-type-parameter.mjs.map +1 -0
  59. package/dist/plugins/react-coding-style/rules/rules.d.mts +14 -0
  60. package/dist/plugins/react-coding-style/rules/rules.d.mts.map +1 -0
  61. package/dist/plugins/react-coding-style/rules/rules.mjs +22 -0
  62. package/dist/plugins/react-coding-style/rules/rules.mjs.map +1 -0
  63. package/dist/plugins/react-coding-style/rules/shared.d.mts +5 -0
  64. package/dist/plugins/react-coding-style/rules/shared.d.mts.map +1 -0
  65. package/dist/plugins/react-coding-style/rules/shared.mjs +22 -0
  66. package/dist/plugins/react-coding-style/rules/shared.mjs.map +1 -0
  67. package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.d.mts +5 -0
  68. package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.d.mts.map +1 -0
  69. package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs +42 -0
  70. package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs.map +1 -0
  71. package/dist/rules/eslint-react-coding-style-rules.d.mts +13 -0
  72. package/dist/rules/eslint-react-coding-style-rules.d.mts.map +1 -0
  73. package/dist/rules/eslint-react-coding-style-rules.mjs +13 -0
  74. package/dist/rules/eslint-react-coding-style-rules.mjs.map +1 -0
  75. package/dist/rules/eslint-rules.d.mts +0 -57
  76. package/dist/rules/eslint-rules.d.mts.map +1 -1
  77. package/dist/rules/eslint-rules.mjs +1 -151
  78. package/dist/rules/eslint-rules.mjs.map +1 -1
  79. package/dist/rules/index.d.mts +1 -0
  80. package/dist/rules/index.d.mts.map +1 -1
  81. package/dist/rules/index.mjs +2 -1
  82. package/dist/rules/index.mjs.map +1 -1
  83. package/dist/types/define-known-rules.d.mts +2 -2
  84. package/dist/types/define-known-rules.d.mts.map +1 -1
  85. package/dist/types/define-known-rules.mjs.map +1 -1
  86. package/dist/types/rules/eslint-react-coding-style-rules.d.mts +148 -0
  87. package/dist/types/rules/eslint-react-coding-style-rules.d.mts.map +1 -0
  88. package/dist/types/rules/eslint-react-coding-style-rules.mjs +2 -0
  89. package/dist/types/rules/eslint-react-coding-style-rules.mjs.map +1 -0
  90. package/dist/types/rules/index.d.mts +1 -0
  91. package/dist/types/rules/index.d.mts.map +1 -1
  92. package/package.json +1 -5
  93. package/src/configs/plugins.mts +3 -0
  94. package/src/configs/react-base.mts +2 -0
  95. package/src/entry-point.mts +2 -1
  96. package/src/plugins/index.mts +1 -0
  97. package/src/plugins/react-coding-style/README.md +36 -0
  98. package/src/plugins/react-coding-style/index.mts +1 -0
  99. package/src/plugins/react-coding-style/plugin.mts +6 -0
  100. package/src/plugins/react-coding-style/rules/ban-use-imperative-handle-hook.mts +31 -0
  101. package/src/plugins/react-coding-style/rules/ban-use-imperative-handle-hook.test.mts +40 -0
  102. package/src/plugins/react-coding-style/rules/component-name.mts +93 -0
  103. package/src/plugins/react-coding-style/rules/component-name.test.mts +72 -0
  104. package/src/plugins/react-coding-style/rules/component-var-type-annotation.mts +54 -0
  105. package/src/plugins/react-coding-style/rules/component-var-type-annotation.test.mts +62 -0
  106. package/src/plugins/react-coding-style/rules/import-style.mts +53 -0
  107. package/src/plugins/react-coding-style/rules/import-style.test.mts +63 -0
  108. package/src/plugins/react-coding-style/rules/index.mts +1 -0
  109. package/src/plugins/react-coding-style/rules/props-type-annotation-style.mts +59 -0
  110. package/src/plugins/react-coding-style/rules/props-type-annotation-style.test.mts +71 -0
  111. package/src/plugins/react-coding-style/rules/react-memo-props-argument-name.mts +70 -0
  112. package/src/plugins/react-coding-style/rules/react-memo-props-argument-name.test.mts +56 -0
  113. package/src/plugins/react-coding-style/rules/react-memo-type-parameter.mts +102 -0
  114. package/src/plugins/react-coding-style/rules/react-memo-type-parameter.test.mts +98 -0
  115. package/src/plugins/react-coding-style/rules/rules.mts +20 -0
  116. package/src/plugins/react-coding-style/rules/shared.mts +33 -0
  117. package/src/plugins/react-coding-style/rules/use-memo-hooks-style.mts +52 -0
  118. package/src/plugins/react-coding-style/rules/use-memo-hooks-style.test.mts +72 -0
  119. package/src/rules/eslint-react-coding-style-rules.mts +12 -0
  120. package/src/rules/eslint-rules.mts +0 -181
  121. package/src/rules/index.mts +1 -0
  122. package/src/types/define-known-rules.mts +2 -0
  123. package/src/types/rules/eslint-react-coding-style-rules.mts +166 -0
  124. package/src/types/rules/index.mts +1 -0
@@ -106,156 +106,6 @@ const restrictedSyntax = [
106
106
  // "Don't use the identifier name `draft` except in immer produce function.",
107
107
  // },
108
108
  ];
109
- const restrictedSyntaxForReact = {
110
- // [These rules recommends React component style like below]
111
- //
112
- // import * as React from "react";
113
- //
114
- // type Props = Readonly<{
115
- // numList: readonly number[];
116
- // }>;
117
- //
118
- // OK
119
- // export const Ok = React.memo<Props>((props) => {
120
- // const sum = React.useMemo(
121
- // () => props.numList.reduce((a, b) => a + b, 0),
122
- // [props.numList],
123
- // );
124
- //
125
- // return <div>{sum}</div>;
126
- // });
127
- //
128
- // export const NoReturnStatementWithSpread = React.memo<Props>(({ numList }) => <div>{numList.length}</div>); // OK
129
- //
130
- // export const NoReturnStatementWithoutSpread = React.memo<Props>((props) => <div>{props.numList.length}</div>); // OK
131
- // https://typescript-eslint.io/play/#ts=5.9.3&showAST=es&fileType=.tsx&code=JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcARFDvmQNwCwAUKJLIiugDYQAmaAFnCIlyXXqj61GjGAE8wWOAAViYdAF5MObhAB2HGQB4A3ozhwdAVxAAZYKhgAuOJWTa9M81YBGWKAG0AXXoGAF8APmDGAHoouAB5AGlGLAAPFnhcXXt4gGs4DWw8GAA6ECwQCANlCFUwgAo6sBVUAEp8sLgTBjNMnWzUK3zNIuKLVCwAWXKIOtMzODq2tQ6mmtRiyxs7EspuC1wsBuQAGjgvJY7kOABqM9OABhbjubM-VdUNq1t7AOfuuBakX%2BlBgFigOjgBm4wAAbmEjAMQCEDFFoXDgiFAVIGDF4kkGKl0nBetkAHIQbCg8EAZRgyBg5SwOhgAHVgDA%2BNSmlohoV8KVplVmvU6kZPFtspj2pC0fDNt8ShwmQBzDnI1GwsJYhjRWKJZJpaAZLLwcmUsE6Wn0xnMtkciAWGBclzcXlUEplCpCtYi96taVQzVGP2fCWKlVqlGy7W6uCkgDiBqJJPgAEEoMrUzodBA6QzXQV3QKvdVag0-U5S-7lp05im4Ii3SMxpNprN-mZFtKQ-LtsVdvtDnUTmcLigbnc4I8-vM4G9mqGFb85jHgVgqRDA3CEVZ1bKMavcQmk0biSa4OnM9nc9buKnUABJPTAHQKQsjT2VKu%2B5pOMW9%2BwnBdXR9HFHx-ACOApRrLoenPRt335FspgqdtZy7Gsey%2BPsBwOI5TnOaUrluLwHieF45ywsNl3%2BVczBBC0ZSDRE901A8gSPRMCUNVh60vLMczzLA70fZ9XztPgABU5CwbACF8JkDibflP29MtGl-YY3H0YxxQVICtBAjxNnAwIoK1aVYLPPp4AQ4YkPGFCZgojCVgXACdmEwd8NHIiJ1IqdyI7Sj3Own4ZwBIF6PXRit3hFiozYxhMQ42Jj245NzyciSHRgaT5EvKwmUceySicgBRFJc2AXAAGESEgV9mQMDS1krZoxz5EoAClqQADWKcqlTKZkOkQj021a1Qxys%2Bs7K60ZHLbFyxyohV%2By8vDhwIsdiMnacKPnNZF22GizDo5wYvBJjtwSjV0WSw80q4wlT3rJyBJvfN7yzDxxuLSpkB0GQfzWGa63gwZ-uQ5bgtcuA1pwzahxHQiaz2gKDuCo6Pg8s7IuxaKNxu%2BLd0Sh7QieuMXp440bLgD7ryEkSnw4F831KgHdI8gzXCMsDfDM8Jyw6yyIfp%2Baixh1CVu7UKww2vYttR3b-LIiLXkR8KVyiy7ibinckXJiJHtS6mT14rLpk%2B5n71Z9mJPy2SsHkygdCU-7VMKbTDH-MKSuA9wBYg8zQemsX-jmqHOel5y4dW%2BX1twlGdr8kj1cOrWYHxi6GOug27v3U3sU4i26eyS9nS0YTlImkthQaP2wyg8HI8h0hoaWmX4%2BlDzFe87bfPRtXAo1uc8Yi3Ors3WVDdYimUpL57GHrSSIHXjfN637eN%2BsXRlXq8BdGK0lkDKWuue-EWwYjuCJejhbY7Q%2BZ4az-vldT4f09HzPE9OyfdZ5xnsxMm90TaUyBEAA&eslintrc=N4KABGBEBOCuA2BTAzpAXGUEKQHYHsBaaFAF2gEsBjUxAE0OQE9dSBDAD3TAG1xsciaNHzRIAGn4CsA7JGSIkNUd0gBJALYAHUaQAiiKvDbQ2pCvlw9k%2BWNCqIAdADc28WIgC8AchJsa3gC61lqGFABmFELIjgAMjqRMoQCEPpo60KQAcmwaKFr%2BiADKoVQRUdBBElKykHnIyGwA5oiqAEqI-qRgyAAWtvB0YABGiGAU2rr0YGzIYAAGExndAFQzcx1dYOEiGmC%2BnQHzjpA1EAC%2BkrKYZ3IKSqQqGOp0iKzlQjy4uYip3psBYIFEisBJJLzedK6HL1AoOEphSJCII8YFvUiONGgxKhNKTTIGIwmMwWXAorEYimOGx2BwuNweHx%2BQHVa44eqNFqqAAqvTG31hhTAArGSymQx2%2BD2By63jAGlgyG6o32ANI3hOt0uIB11xk13kikMjzEz25RQAirA3B86DDEDwkOEMSKfGqUZQmr0XT8fAAxADCVSubLqKE5rWeAFUFGA1Y48hp8AAeAAKIi0yAAfAAKHNaDPIACUYE8WcwYEcVbA5xLFFwSs6dE1121etuOHuxqeUHNVptSLtP0diGdjld-0O6uCnu94993j9sFwNFJAalOlw6ODHagHOakagMbG8cTKfT%2BEzufzhZLZYrVccNbrDdobGbp1bkl1sn1tS7yimlAACyiAaKM0AAKIcAW4akjw%2BDDAAVsa855G6U7khmQiJGhEJnuSJjomCoQAILQE0sB5KwyCeMuryRFudCBKyob7lyzynmB%2BA9P0CBDL0bDOGMOJjMCPy0NACzeBembeMcn6yG2v67oaDw9pAoHgUI0GwQ08GIShNB4RhspAthmRMCZ3gEUCRHYuC5GUdRpDIKk9GjvW9B2SCGKiU5VHojEol-Oa3LgqmxJ5JJaivmw7wkpYO5snu4YHu0U4JtxvEDAJQkieCYDidFQjSbJyDyS2SkhtIqkASaqhaRBukkPplgIchqETu65mXjhVkTrZqL2X5jkUYFNHubgDFecxw2%2BSRiABS5wXgj4YURVFiAxXFCXmElPnEf540rZiUUxPEIXrUU4WhB04RCG8DjJWxaUcVAXFJjl-FgIJwlgKJRVbZJZWFpVikCMptUpWp3ZAZpYHNTBrXIAZnXGd1mG9aElnWUNVLHc5QVTTNTGHQ5ZEnUFi3XbdiCRaYJXQLFSrxeYiVkuTo2U0TNFnYzF0094G13aOj0roghELYTE2ufzuSC6J9p4X85UvQa7GHpAn08X0uW-flAOFcV22lfMMlgwpWrfrcf4CLDgE8jdjm4AQ7D7VYBNrZCrzvEilRc-zR3e%2BRIgAO5LiuHstXBB3zcRVJe7i3gBm48Ax21nPx6CicjY4VBp4gTiGV1C49dnlJ51SBfwEgTgFn1uODdx6u1JrGVaMYDgLDreYN5mGDlXe5bAJW1a1vMYBhxQpC9D3mVnmmhbXv3xaliPY9PhPVWQzb7Yw-VGlqL75j%2B18Px-KvUvB8nof4BHy6rpYGeo3HVKIMjse4Kk5AeIH1eF2LujH06FJxmQrkHUENc66YgsrhZuSZW723bmaPkMwqasGFD8MA%2BBwjoPDtsR%2BHsgYNGmI8OMC9sp6x%2BiqbwV8d7YChtgO2dwjSO2eAAeWAZFUgklPZ51Ej4O%2BD8o6khfqSa%2BoIP56Vft-Twv9ED-zztAoujgS4YzLljCBADa6qP7v1PGLcWI1Tbm9LWvIxKFhwXgtgYAqAbksOiOxlh2D1nrE0GYYASCkDsLgHo7swJOKImAeAEwZ5kJ4rY1wlA2DDCQFgvIQxzZXytl%2BHUts6psIas8Y%2B6IPjQHPuhAA9AAPUcMAAALAAJnEOcAAJEUwOgjvAADUTAUFiUgQkxhTAmkkRiNx3MISp1ruIt%2BedBn50AWo4B1ly5UkmSo%2BucCBoLlsqxDWZieRoPsZMLcmCRQhLeE0We31BgjDGEgBoANBJ%2BOqU%2BdcDYKCvCkiQMOlBaDrAWPY18YB1x7KcZ4ChXQspJiXpebMfdbzrwrLWAA3GAaRugKz-M3EEuYRQpSIFRY4zB5w4UQ0YXvFSB8skaSajpT%2BmcOpGRARCeZKzrKKkQOkIQJJhIAAl4p0CQEguQKCQL4H%2BvGZlRQAkAx4jPOY8UHBKlEM4gFmD6yNnfAwi4JiIAsM7GS%2BGIslqu3wO7eCudpbexGenKlsj%2BmQIxEsmZtK5laJNcRO1%2Bim4LmZVpfAfL2RbNQWMaJHS4kFVCGAbkZyhgqnim7Mw0xZjzxBZ67iyZuRZknvK%2BYPylRgGcBgcNQKRUKC9TmR8RZUlKRqIEfg5wQDnCAA&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkJemy0eFYDArugDTg2RGwAqkWgALdNADW6ACYBJIjPQAPWQEFo0dCTKUO6XgF8QhoA&tokens=false
132
- // TODO: Create a separate plugin for these rules
133
- /* Restrict import style of React */
134
- importStyle: [
135
- {
136
- selector: "ImportDeclaration[source.value='react'][specifiers.0.type!='ImportNamespaceSpecifier']",
137
- message: "React should be imported as `import * as React from 'react'`.",
138
- // NOTE: React の import 方法を `import * as React from 'react'` と namespace import のみに限定するルール。
139
- // import を1回で済ませられて便利なのと、 React.* に対する以降のルールを書きやすくするため。
140
- // tree-shaking に悪影響は無い。
141
- },
142
- {
143
- selector: "Identifier[name!='React'][parent.type='ImportNamespaceSpecifier'][parent.parent.type='ImportDeclaration'][parent.parent.source.value='react']",
144
- message: "The namespace name imported from 'react' must be 'React'.",
145
- },
146
- ],
147
- /* Restrict React component definition style */
148
- componentVarTypeAnnotation: [
149
- {
150
- // Ban "React.FC"
151
- selector: "TSQualifiedName[left.name='React'][right.name='FC']",
152
- message: 'Use React.memo<Props>((props) => { ... }) instead.',
153
- // NOTE: React.FC による型注釈があれば React.memo を使うように促すルール。
154
- // React.FC で型注釈されていない React.memo 化されていないコンポーネントは別途検出する必要がある。
155
- },
156
- {
157
- // Ban "React.FunctionComponent"
158
- selector: "TSQualifiedName[left.name='React'][right.name='FunctionComponent']",
159
- message: 'Use React.memo<Props>((props) => { ... }) instead.',
160
- },
161
- ],
162
- reactMemoTypeParam: [
163
- // NOTE: React.memo の型引数を `Props` に限定する。
164
- // これは 1ファイル1コンポーネントの強制も意味する。
165
- // 前提: component が React.memo でラップされていること。
166
- {
167
- selector:
168
- // Detects `React.memo(...)`
169
- "MemberExpression[object.name='React'][property.name='memo'][parent.typeArguments=undefined]",
170
- message: "React.memo should have type parameter `'Props'`.",
171
- },
172
- {
173
- selector:
174
- // Detects `React.memo<NotProps>(...)`
175
- "MemberExpression[object.name='React'][property.name='memo'][parent.typeArguments!=undefined][parent.typeArguments.type!='TSTypeParameterInstantiation']",
176
- message: "React.memo should have type parameter `'Props'`.",
177
- },
178
- {
179
- selector:
180
- // Detects `React.memo<{ prop1: number }>(...)`
181
- "MemberExpression[object.name='React'][property.name='memo'][parent.typeArguments!=undefined][parent.typeArguments.type='TSTypeParameterInstantiation'][parent.typeArguments.params.0.type!='TSTypeReference']",
182
- message: "React.memo should have type parameter `'Props'`.",
183
- },
184
- {
185
- selector:
186
- // Detects `React.memo<NotProps>(...)`, `React.memo<Readonly<{ prop1: number }>>(...)`
187
- "MemberExpression[object.name='React'][property.name='memo'][parent.typeArguments!=undefined][parent.typeArguments.type='TSTypeParameterInstantiation'][parent.typeArguments.params.0.type='TSTypeReference'][parent.typeArguments.params.0.typeName.name!='Props']",
188
- message: "React.memo should have type parameter `'Props'`.",
189
- },
190
- ],
191
- propsTypeAnnotationStyle: [
192
- {
193
- // Restrict Props type annotation style for React.memo
194
- selector: "TSTypeAnnotation[parent.type='Identifier'][parent.parent.type='ArrowFunctionExpression'][parent.parent.parent.type='CallExpression'][parent.parent.parent.callee.object.name='React'][parent.parent.parent.callee.property.name='memo']",
195
- message: 'Replace `React.memo((props: Props) => { ... })` with `React.memo<Props>((props) => { ... })`.',
196
- // 前提: Arrow function の使用が強制されていること。
197
- },
198
- ],
199
- /* Restrict props argument name to be "props" */
200
- reactMemoPropsArgumentName: [
201
- {
202
- // Restrict props argument name to be "props"
203
- selector: "Identifier[name!='props'][parent.type='ArrowFunctionExpression'][parent.expression!=true][parent.parent.callee.object.name='React'][parent.parent.callee.property.name='memo']",
204
- message: "The argument name of arrow function passed to React.memo should be 'props'.",
205
- // NOTE: component props を "props" という名前に限定する。
206
- // 前提: component が React.memo でラップされていること。Arrow function の使用が強制されていること。
207
- },
208
- {
209
- // Restrict props argument to be "props" variable (object destructuring is not allowed)
210
- selector:
211
- // Detect `React.memo<Props>(({ prop1, prop2 }) => { ... })`
212
- "ObjectPattern[parent.type='ArrowFunctionExpression'][parent.expression!=true][parent.parent.callee.object.name='React'][parent.parent.callee.property.name='memo']",
213
- message: "The props of a component containing a return statement are limited to a variable named `'props'`.",
214
- // NOTE: return 文を含む component の props を "props" という名前の変数に限定する。
215
- // 前提: component が React.memo でラップされていること。Arrow function の使用が強制されていること。
216
- },
217
- ],
218
- componentName: {
219
- maxLength: (maxLength = 42) => [
220
- {
221
- // Limit the length of component names ${maxLength} characters
222
- selector: `Identifier[name=/^.{${maxLength},}$/][parent.type='VariableDeclarator'][parent.init.type='CallExpression'][parent.init.callee.object.name='React'][parent.init.callee.property.name='memo']`,
223
- message: `The component name length should be less than ${maxLength}. Consider rewrite as \`const Component = React.memo<Props>((props) => { }); export { Component as SomeComponent };\`.`,
224
- // NOTE:
225
- // `const Name = React.memo<Props>((props) => {`
226
- // が1行に収まるようにするためのルール。1行に収まらないとインデントが増えてコンポーネント実装の可読性が下がりやすくなるため。
227
- // component props の型名や引数名の制約と併せて、 prettier のデフォルト print-width = 80 で export を省いた場合の最大長としてデフォルト値 42 を設定している。
228
- // 抵触する場合、以下のように書き換える。
229
- //
230
- // const Component = React.memo<Props>((props) => {
231
- // ...
232
- // });
233
- //
234
- // export { Component as SomeComponent };
235
- },
236
- ],
237
- regexp: (pattern) => [
238
- {
239
- // Validate that component names match the provided pattern
240
- selector: `Identifier[name=${pattern}][parent.type='VariableDeclarator'][parent.init.type='CallExpression'][parent.init.callee.object.name='React'][parent.init.callee.property.name='memo']`,
241
- message: `The component name should match ${pattern}.`,
242
- },
243
- ],
244
- },
245
- /* Restrict React hooks definition style */
246
- reactHooksDefinitionStyle: [
247
- {
248
- // Ban "React.useImperativeHandle"
249
- selector: "MemberExpression[object.name='React'][property.name='useImperativeHandle']",
250
- message: 'Move logic to parent component instead of using React.useImperativeHandle.',
251
- },
252
- {
253
- // Restrict type annotation style for React.useMemo
254
- selector: "TSTypeAnnotation[parent.parent.type='CallExpression'][parent.parent.callee.object.name='React'][parent.parent.callee.property.name='useMemo']",
255
- message: 'The variable type T should be annotated as `React.useMemo<T>` or `const v: T = React.useMemo(...)`.',
256
- },
257
- ],
258
- };
259
109
  /** @link https://github.com/eslint/eslint/blob/main/conf/eslint-all.js */
260
110
  const eslintRules = {
261
111
  /**
@@ -631,5 +481,5 @@ const eslintRules = {
631
481
  'multiline-comment-style': 0, // disabled
632
482
  };
633
483
 
634
- export { eslintRules, restrictedGlobals, restrictedGlobalsForBrowser, restrictedSyntax, restrictedSyntaxForReact };
484
+ export { eslintRules, restrictedGlobals, restrictedGlobalsForBrowser, restrictedSyntax };
635
485
  //# sourceMappingURL=eslint-rules.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-rules.mjs","sources":["../../src/rules/eslint-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint-rules.mjs","sources":["../../src/rules/eslint-rules.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,iBAAiB,GAAG;AAC/B,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,yCAAyC;AACnD,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,qDAAqD;AAC/D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,kDAAkD;AAC5D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,OAAO,EACL,mIAAmI;AACtI,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,OAAO,EACL,+HAA+H;AAClI,KAAA;;AAGI,MAAM,2BAA2B,GAAG;AACzC,IAAA,GAAG,iBAAiB;AACpB,IAAA;;AAEE,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,gCAAgC;AAC1C,KAAA;AACD,IAAA;;AAEE,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA;AACD,IAAA;;AAEE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,iDAAiD;AAC3D,KAAA;;AAGI,MAAM,gBAAgB,GAAG;AAC9B,IAAA;;AAEE,QAAA,QAAQ,EAAE,iCAAiC;AAC3C,QAAA,OAAO,EAAE,8BAA8B;AACxC,KAAA;AACD,IAAA;;AAEE,QAAA,QAAQ,EACN,4JAA4J;AAC9J,QAAA,OAAO,EAAE,8BAA8B;AACxC,KAAA;AACD,IAAA;;AAEE,QAAA,QAAQ,EAAE,oCAAoC;AAC9C,QAAA,OAAO,EAAE,yBAAyB;AACnC,KAAA;;;;;;;;;;;;;;;AAkBH;AACO,MAAM,WAAW,GAAG;AACzB;;;;;AAKG;;;;AAKH,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,yBAAyB,EAAE,KAAK;;;AAIhC,IAAA,aAAa,EAAE,KAAK;AAEpB;;;;AAIG;IAEH,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,cAAc,EAAE,KAAK;IACrB,uBAAuB,EAAE,KAAK;IAC9B,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,kBAAkB,EAAE,KAAK;IACzB,sBAAsB,EAAE,KAAK;IAC7B,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,OAAO;AACjB,IAAA,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAC1C,oBAAoB,EAAE,OAAO;IAC7B,eAAe,EAAE,OAAO;IACxB,cAAc,EAAE,KAAK;;AAGrB,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,iBAAiB,EAAE,KAAK;AACxB,IAAA,iBAAiB,EAAE,KAAK;AACxB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,wBAAwB,EAAE,KAAK;AAC/B,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,wBAAwB,EAAE,KAAK;AAC/B,IAAA,8BAA8B,EAAE,KAAK;AACrC,IAAA,mBAAmB,EAAE,KAAK;AAE1B,IAAA,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC;;AAG5C,IAAA,uBAAuB,EAAE,KAAK;AAE9B,IAAA,kBAAkB,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;AAC1C,IAAA,kBAAkB,EAAE,OAAO;IAC3B,SAAS,EAAE,KAAK;IAChB,sBAAsB,EAAE,KAAK;IAC7B,UAAU,EAAE,KAAK;AACjB,IAAA,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC7C,IAAA,mBAAmB,EAAE,OAAO;IAC5B,cAAc,EAAE,KAAK;IAErB,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC/C,YAAY,EAAE,KAAK;AAEnB,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,oBAAoB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAChD,IAAA,YAAY,EAAE;QACZ,OAAO;QACP,QAAQ;AACR,QAAA;AACE,YAAA,UAAU,EAAE,OAAO;AACpB,SAAA;AACF,KAAA;IACD,YAAY,EAAE,KAAK;AACnB,IAAA,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACpD,IAAA,cAAc,EAAE,OAAO;AACvB,IAAA,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC;IACzC,WAAW,EAAE,KAAK;AAClB,IAAA,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACtC,IAAA,8BAA8B,EAAE;QAC9B,OAAO;QACP,QAAQ;QACR,EAAE,sBAAsB,EAAE,IAAI,EAAE;AACjC,KAAA;IACD,sBAAsB,EAAE,KAAK;IAC7B,WAAW,EAAE,KAAK;IAClB,wBAAwB,EAAE,KAAK;IAC/B,WAAW,EAAE,KAAK;AAClB,IAAA,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAClD,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,KAAK;AAChB,IAAA,2BAA2B,EAAE,OAAO;AACpC,IAAA,kBAAkB,EAAE,OAAO;IAC3B,YAAY,EAAE,KAAK;AACnB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,sBAAsB,EAAE,OAAO;AAC/B,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,qBAAqB,EAAE,OAAO;AAC9B,IAAA,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAC5C,YAAY,EAAE,KAAK;AACnB,IAAA,+BAA+B,EAAE,OAAO;AACxC,IAAA,uBAAuB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACnD,IAAA,uBAAuB,EAAE,OAAO;IAChC,aAAa,EAAE,KAAK;AACpB,IAAA,kBAAkB,EAAE,OAAO;AAC3B,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,cAAc,EAAE,OAAO;AACvB,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,mBAAmB,EAAE,OAAO;IAC5B,gBAAgB,EAAE,KAAK;AACvB,IAAA,0BAA0B,EAAE,OAAO;AACnC,IAAA,kBAAkB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC9C,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACtC,IAAA,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACrC,IAAA,cAAc,EAAE,OAAO;AACvB,IAAA,kBAAkB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC9C,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,uBAAuB,EAAE;QACvB,OAAO;AACP,QAAA;AACE,YAAA,0BAA0B,EAAE,IAAI;AACjC,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE,OAAO;AACzB,IAAA,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC5C,IAAA,kBAAkB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC9C,IAAA,sBAAsB,EAAE;QACtB,OAAO;AACP,QAAA;AACE,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,yBAAyB,EAAE,IAAI;AAC/B,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,MAAM,EAAE,IAAI;AACb,SAAA;AACF,KAAA;IACD,oBAAoB,EAAE,KAAK;AAC3B,IAAA,uBAAuB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACnD,IAAA,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC/C,IAAA,yBAAyB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACrD,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,cAAc,EAAE,OAAO;AACvB,IAAA,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;IACvC,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;AACrB,IAAA,+BAA+B,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC3D,IAAA,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC7C,IAAA,cAAc,EAAE,OAAO;IACvB,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,KAAK;AAC1B,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,8BAA8B,EAAE,OAAO;IACvC,iBAAiB,EAAE,KAAK;AACxB,IAAA,QAAQ,EAAE,OAAO;AACjB,IAAA,4BAA4B,EAAE,OAAO;AACrC,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAE/C;;;AAGG;AACH,IAAA,aAAa,EAAE;QACb,OAAO;AACP,QAAA;AACE,YAAA,yBAAyB,EAAE,IAAI;AAChC,SAAA;AACF,KAAA;AAED,IAAA,4BAA4B,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACxD,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,iBAAiB,EAAE,OAAO;IAC1B,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3E,IAAA,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC;AACxD,IAAA,0BAA0B,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAEtD;;;;;AAKG;AACH,IAAA,sBAAsB,EAAE,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;AAEtD,IAAA,kBAAkB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC9C,IAAA,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC5C,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAC1C,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACnE,IAAA,kBAAkB,EAAE,OAAO;AAC3B,IAAA,6BAA6B,EAAE,OAAO;IACtC,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,sBAAsB,EAAE,KAAK;AAC7B,IAAA,8BAA8B,EAAE,OAAO;IACvC,qBAAqB,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;AAC9D,IAAA,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACjD,IAAA,mBAAmB,EAAE,OAAO;AAC5B,IAAA,6BAA6B,EAAE;QAC7B,OAAO;QACP,EAAE,2BAA2B,EAAE,IAAI,EAAE;AACtC,KAAA;AACD,IAAA,kBAAkB,EAAE,OAAO;AAC3B,IAAA,iCAAiC,EAAE,OAAO;AAC1C,IAAA,0BAA0B,EAAE,OAAO;AACnC,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,kBAAkB,EAAE,OAAO;IAC3B,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;AACtE,IAAA,mBAAmB,EAAE,OAAO;AAC5B,IAAA,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC/C,IAAA,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC/C,IAAA,mBAAmB,EAAE,OAAO;IAC5B,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IACjD,qBAAqB,EAAE,KAAK;AAC5B,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,kBAAkB,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAC9C,SAAS,EAAE,KAAK;AAChB,IAAA,qBAAqB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC1C,IAAA,uBAAuB,EAAE;QACvB,OAAO;AACP,QAAA,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;AACxD,KAAA;IACD,sBAAsB,EAAE,KAAK;AAC7B,IAAA,gCAAgC,EAAE,OAAO;IACzC,4BAA4B,EAAE,KAAK;AACnC,IAAA,yBAAyB,EAAE,OAAO;AAClC,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,sBAAsB,EAAE,OAAO;IAC/B,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;AAEvE;;;;;;;;AAQG;AACH,IAAA,iBAAiB,EAAE,OAAO;AAE1B,IAAA,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACjC,IAAA,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAAC;;AAGpD,IAAA,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAEpD,IAAA,eAAe,EAAE,OAAO;IACxB,cAAc,EAAE,KAAK;IACrB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;AAClB,IAAA,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAClC,oBAAoB,EAAE,KAAK;AAC3B,IAAA,WAAW,EAAE;QACX,OAAO;AACP,QAAA,EAAE,iBAAiB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE;AACxD,KAAA;AACD,IAAA,aAAa,EAAE,OAAO;IACtB,IAAI,EAAE,KAAK;AAEX,IAAA,uBAAuB,EAAE,OAAO;AAChC,IAAA,oBAAoB,EAAE,OAAO;IAC7B,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;;AAGpE,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACjD,IAAA,eAAe,EAAE,OAAO;;;AAKxB,IAAA,sBAAsB,EAAE,CAAC;AACzB,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,uBAAuB,EAAE,CAAC;AAC1B,IAAA,uBAAuB,EAAE,CAAC;AAC1B,IAAA,uBAAuB,EAAE,CAAC;AAC1B,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,aAAa,EAAE,CAAC;AAChB,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,aAAa,EAAE,CAAC;AAChB,IAAA,2BAA2B,EAAE,CAAC;AAC9B,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,gCAAgC,EAAE,CAAC;AACnC,IAAA,wBAAwB,EAAE,CAAC;AAC3B,IAAA,wBAAwB,EAAE,CAAC;AAC3B,IAAA,0BAA0B,EAAE,CAAC;AAC7B,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,aAAa,EAAE,CAAC;AAChB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,0BAA0B,EAAE,CAAC;AAC7B,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,qBAAqB,EAAE,CAAC;AACxB,IAAA,0BAA0B,EAAE,CAAC;AAC7B,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,yBAAyB,EAAE,CAAC;AAC5B,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,+BAA+B,EAAE,CAAC;AAClC,IAAA,kCAAkC,EAAE,CAAC;AACrC,IAAA,sBAAsB,EAAE,CAAC;AACzB,IAAA,sBAAsB,EAAE,CAAC;AACzB,IAAA,yBAAyB,EAAE,CAAC;AAC5B,IAAA,8BAA8B,EAAE,CAAC;AACjC,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,aAAa,EAAE,CAAC;AAChB,IAAA,qBAAqB,EAAE,CAAC;AACxB,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,qBAAqB,EAAE,CAAC;AACxB,IAAA,6BAA6B,EAAE,CAAC;AAChC,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,sBAAsB,EAAE,CAAC;AACzB,IAAA,wBAAwB,EAAE,CAAC;AAC3B,IAAA,sBAAsB,EAAE,CAAC;AACzB,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,6BAA6B,EAAE,CAAC;AAChC,IAAA,iCAAiC,EAAE,CAAC;AACpC,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,yBAAyB,EAAE,CAAC;AAC5B,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,qBAAqB,EAAE,CAAC;AACxB,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,wBAAwB,EAAE,CAAC;AAC3B,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,uBAAuB,EAAE,CAAC;AAC1B,IAAA,uBAAuB,EAAE,CAAC;AAC1B,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,oBAAoB,EAAE,CAAC;AACvB,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,uBAAuB,EAAE,CAAC;AAC1B,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,gBAAgB,EAAE,CAAC;IACnB,eAAe,EAAE,CAAC;IAClB,uBAAuB,EAAE,CAAC;IAC1B,yBAAyB,EAAE,CAAC;;;;;"}
@@ -9,6 +9,7 @@ export * from './eslint-plugin-rules.mjs';
9
9
  export * from './eslint-plugin-sort-destructure-keys-rules.mjs';
10
10
  export * from './eslint-prefer-arrow-functions-rules.mjs';
11
11
  export * from './eslint-promise-rules.mjs';
12
+ export * from './eslint-react-coding-style-rules.mjs';
12
13
  export * from './eslint-react-hooks-rules.mjs';
13
14
  export * from './eslint-react-perf-rules.mjs';
14
15
  export * from './eslint-react-refresh-rules.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/rules/index.mts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/rules/index.mts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
@@ -9,11 +9,12 @@ export { eslintPluginRules } from './eslint-plugin-rules.mjs';
9
9
  export { eslintPluginSortDestructureKeysRules } from './eslint-plugin-sort-destructure-keys-rules.mjs';
10
10
  export { eslintPreferArrowFunctionRules } from './eslint-prefer-arrow-functions-rules.mjs';
11
11
  export { eslintPromiseRules } from './eslint-promise-rules.mjs';
12
+ export { eslintReactCodingStyleRules } from './eslint-react-coding-style-rules.mjs';
12
13
  export { eslintReactHooksRules } from './eslint-react-hooks-rules.mjs';
13
14
  export { eslintReactPerfRules } from './eslint-react-perf-rules.mjs';
14
15
  export { eslintReactRefreshRules } from './eslint-react-refresh-rules.mjs';
15
16
  export { eslintReactRules } from './eslint-react-rules.mjs';
16
- export { eslintRules, restrictedGlobals, restrictedGlobalsForBrowser, restrictedSyntax, restrictedSyntaxForReact } from './eslint-rules.mjs';
17
+ export { eslintRules, restrictedGlobals, restrictedGlobalsForBrowser, restrictedSyntax } from './eslint-rules.mjs';
17
18
  export { eslintSecurityRules } from './eslint-security-rules.mjs';
18
19
  export { eslintTestingLibraryRules } from './eslint-testing-library-rules.mjs';
19
20
  export { eslintTotalFunctionsRules } from './eslint-total-functions-rules.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
- import { type EslintArrayFuncRules, type EslintCustomRules, type EslintCypressRules, type EslintFunctionalRules, type EslintImportsRules, type EslintJestRules, type EslintJsxA11yRules, type EslintPlaywrightRules, type EslintPluginRules, type EslintPluginSortDestructureKeysRules, type EslintPreferArrowFunctionRules, type EslintPromiseRules, type EslintReactHooksRules, type EslintReactPerfRules, type EslintReactRefreshRules, type EslintReactRules, type EslintRules, type EslintSecurityRules, type EslintStrictDependenciesRules, type EslintTestingLibraryRules, type EslintTotalFunctionsRules, type EslintTreeShakableRules, type EslintUnicornRules, type EslintVitestRules, type TypeScriptEslintRules } from './rules/index.mjs';
2
- type KnownRules = DeepReadonly<EslintArrayFuncRules & EslintCustomRules & EslintCypressRules & EslintFunctionalRules & EslintImportsRules & EslintJestRules & EslintJsxA11yRules & EslintPlaywrightRules & EslintPluginRules & EslintPluginSortDestructureKeysRules & EslintPreferArrowFunctionRules & EslintPromiseRules & EslintReactHooksRules & EslintReactPerfRules & EslintReactRefreshRules & EslintReactRules & EslintRules & EslintSecurityRules & EslintStrictDependenciesRules & EslintTestingLibraryRules & EslintTotalFunctionsRules & EslintTreeShakableRules & EslintUnicornRules & EslintVitestRules & TypeScriptEslintRules>;
1
+ import { type EslintArrayFuncRules, type EslintCustomRules, type EslintCypressRules, type EslintFunctionalRules, type EslintImportsRules, type EslintJestRules, type EslintJsxA11yRules, type EslintPlaywrightRules, type EslintPluginRules, type EslintPluginSortDestructureKeysRules, type EslintPreferArrowFunctionRules, type EslintPromiseRules, type EslintReactCodingStyleRules, type EslintReactHooksRules, type EslintReactPerfRules, type EslintReactRefreshRules, type EslintReactRules, type EslintRules, type EslintSecurityRules, type EslintStrictDependenciesRules, type EslintTestingLibraryRules, type EslintTotalFunctionsRules, type EslintTreeShakableRules, type EslintUnicornRules, type EslintVitestRules, type TypeScriptEslintRules } from './rules/index.mjs';
2
+ type KnownRules = DeepReadonly<EslintArrayFuncRules & EslintCustomRules & EslintCypressRules & EslintFunctionalRules & EslintImportsRules & EslintJestRules & EslintJsxA11yRules & EslintPlaywrightRules & EslintPluginRules & EslintPluginSortDestructureKeysRules & EslintPreferArrowFunctionRules & EslintPromiseRules & EslintReactHooksRules & EslintReactPerfRules & EslintReactRefreshRules & EslintReactRules & EslintRules & EslintSecurityRules & EslintStrictDependenciesRules & EslintTestingLibraryRules & EslintTotalFunctionsRules & EslintTreeShakableRules & EslintUnicornRules & EslintVitestRules & EslintReactCodingStyleRules & TypeScriptEslintRules>;
3
3
  export declare const defineKnownRules: (rules: Partial<KnownRules>) => Partial<KnownRules>;
4
4
  export {};
5
5
  //# sourceMappingURL=define-known-rules.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-known-rules.d.mts","sourceRoot":"","sources":["../../src/types/define-known-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,oCAAoC,EACzC,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,KAAK,UAAU,GAAG,YAAY,CAC5B,oBAAoB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,oCAAoC,GACpC,8BAA8B,GAC9B,kBAAkB,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,uBAAuB,GACvB,gBAAgB,GAChB,WAAW,GACX,mBAAmB,GACnB,6BAA6B,GAC7B,yBAAyB,GACzB,yBAAyB,GACzB,uBAAuB,GACvB,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,CACxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,KACzB,OAAO,CAAC,UAAU,CAAU,CAAC"}
1
+ {"version":3,"file":"define-known-rules.d.mts","sourceRoot":"","sources":["../../src/types/define-known-rules.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,oCAAoC,EACzC,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,KAAK,UAAU,GAAG,YAAY,CAC5B,oBAAoB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,oCAAoC,GACpC,8BAA8B,GAC9B,kBAAkB,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,uBAAuB,GACvB,gBAAgB,GAChB,WAAW,GACX,mBAAmB,GACnB,6BAA6B,GAC7B,yBAAyB,GACzB,yBAAyB,GACzB,uBAAuB,GACvB,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,qBAAqB,CACxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,KACzB,OAAO,CAAC,UAAU,CAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"define-known-rules.mjs","sources":["../../src/types/define-known-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAwDO,MAAM,gBAAgB,GAAG,CAC9B,KAA0B,KACF;;;;"}
1
+ {"version":3,"file":"define-known-rules.mjs","sources":["../../src/types/define-known-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AA0DO,MAAM,gBAAgB,GAAG,CAC9B,KAA0B,KACF;;;;"}
@@ -0,0 +1,148 @@
1
+ import { type Linter } from 'eslint';
2
+ type SpreadOptionsIfIsArray<T extends readonly [Linter.StringSeverity, unknown]> = T[1] extends readonly unknown[] ? readonly [Linter.StringSeverity, ...T[1]] : T;
3
+ /**
4
+ * Enforces naming conventions for variables assigned to React.memo(...)
5
+ * components.
6
+ *
7
+ * ```md
8
+ * | key | value |
9
+ * | :--------- | :--------- |
10
+ * | type | suggestion |
11
+ * | deprecated | false |
12
+ * ```
13
+ */
14
+ declare namespace ComponentName {
15
+ /**
16
+ * ### schema
17
+ *
18
+ * ```json
19
+ * [
20
+ * {
21
+ * "type": "object",
22
+ * "properties": {
23
+ * "maxLength": {
24
+ * "type": "integer",
25
+ * "minimum": 1
26
+ * },
27
+ * "pattern": {
28
+ * "type": "object"
29
+ * }
30
+ * },
31
+ * "additionalProperties": false
32
+ * }
33
+ * ]
34
+ * ```
35
+ */
36
+ type Options = {
37
+ readonly maxLength?: number;
38
+ readonly pattern?: UnknownRecord;
39
+ };
40
+ type RuleEntry = Linter.Severity | SpreadOptionsIfIsArray<readonly [Linter.StringSeverity, Options]> | 'off';
41
+ }
42
+ /**
43
+ * Disallows using React.FC / React.FunctionComponent type annotations.
44
+ *
45
+ * ```md
46
+ * | key | value |
47
+ * | :--------- | :--------- |
48
+ * | type | suggestion |
49
+ * | deprecated | false |
50
+ * ```
51
+ */
52
+ declare namespace ComponentVarTypeAnnotation {
53
+ type RuleEntry = Linter.StringSeverity;
54
+ }
55
+ /**
56
+ * Enforces importing React with a single namespace import named 'React'.
57
+ *
58
+ * ```md
59
+ * | key | value |
60
+ * | :--------- | :--------- |
61
+ * | type | suggestion |
62
+ * | deprecated | false |
63
+ * ```
64
+ */
65
+ declare namespace ImportStyle {
66
+ type RuleEntry = Linter.StringSeverity;
67
+ }
68
+ /**
69
+ * Forbids annotating props directly in the arrow function passed to React.memo.
70
+ *
71
+ * ```md
72
+ * | key | value |
73
+ * | :--------- | :--------- |
74
+ * | type | suggestion |
75
+ * | deprecated | false |
76
+ * ```
77
+ */
78
+ declare namespace PropsTypeAnnotationStyle {
79
+ type RuleEntry = Linter.StringSeverity;
80
+ }
81
+ /**
82
+ * Enforces the arrow function passed to React.memo to use a single argument
83
+ * named 'props'.
84
+ *
85
+ * ```md
86
+ * | key | value |
87
+ * | :--------- | :--------- |
88
+ * | type | suggestion |
89
+ * | deprecated | false |
90
+ * ```
91
+ */
92
+ declare namespace ReactMemoPropsArgumentName {
93
+ type RuleEntry = Linter.StringSeverity;
94
+ }
95
+ /**
96
+ * Requires React.memo calls to have the type parameter 'Props'.
97
+ *
98
+ * ```md
99
+ * | key | value |
100
+ * | :--------- | :--------- |
101
+ * | type | suggestion |
102
+ * | deprecated | false |
103
+ * ```
104
+ */
105
+ declare namespace ReactMemoTypeParameter {
106
+ type RuleEntry = Linter.StringSeverity;
107
+ }
108
+ /**
109
+ * Restricts React.useMemo hook usage patterns for consistent styles.
110
+ *
111
+ * ```md
112
+ * | key | value |
113
+ * | :--------- | :--------- |
114
+ * | type | suggestion |
115
+ * | deprecated | false |
116
+ * ```
117
+ */
118
+ declare namespace UseMemoHookStyle {
119
+ type RuleEntry = Linter.StringSeverity;
120
+ }
121
+ /**
122
+ * Restricts specific React hook usage patterns for consistent component styles.
123
+ *
124
+ * ```md
125
+ * | key | value |
126
+ * | :--------- | :--------- |
127
+ * | type | suggestion |
128
+ * | deprecated | false |
129
+ * ```
130
+ */
131
+ declare namespace BanUseImperativeHandleHook {
132
+ type RuleEntry = Linter.StringSeverity;
133
+ }
134
+ export type EslintReactCodingStyleRules = {
135
+ readonly 'react-coding-style/component-name': ComponentName.RuleEntry;
136
+ readonly 'react-coding-style/component-var-type-annotation': ComponentVarTypeAnnotation.RuleEntry;
137
+ readonly 'react-coding-style/import-style': ImportStyle.RuleEntry;
138
+ readonly 'react-coding-style/props-type-annotation-style': PropsTypeAnnotationStyle.RuleEntry;
139
+ readonly 'react-coding-style/react-memo-props-argument-name': ReactMemoPropsArgumentName.RuleEntry;
140
+ readonly 'react-coding-style/react-memo-type-parameter': ReactMemoTypeParameter.RuleEntry;
141
+ readonly 'react-coding-style/use-memo-hook-style': UseMemoHookStyle.RuleEntry;
142
+ readonly 'react-coding-style/ban-use-imperative-handle-hook': BanUseImperativeHandleHook.RuleEntry;
143
+ };
144
+ export type EslintReactCodingStyleRulesOption = {
145
+ readonly 'react-coding-style/component-name': ComponentName.Options;
146
+ };
147
+ export {};
148
+ //# sourceMappingURL=eslint-react-coding-style-rules.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-react-coding-style-rules.d.mts","sourceRoot":"","sources":["../../../src/types/rules/eslint-react-coding-style-rules.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,KAAK,sBAAsB,CACzB,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,IACjD,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAC/B,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GACzC,CAAC,CAAC;AAEN;;;;;;;;;;GAUG;AACH,kBAAU,aAAa,CAAC;IACtB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAY,OAAO,GAAG;QACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;KAClC,CAAC;IAEF,KAAY,SAAS,GACjB,MAAM,CAAC,QAAQ,GACf,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,GACjE,KAAK,CAAC;CACX;AAED;;;;;;;;;GASG;AACH,kBAAU,0BAA0B,CAAC;IACnC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,kBAAU,WAAW,CAAC;IACpB,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,kBAAU,wBAAwB,CAAC;IACjC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,0BAA0B,CAAC;IACnC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,kBAAU,sBAAsB,CAAC;IAC/B,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,kBAAU,gBAAgB,CAAC;IACzB,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,kBAAU,0BAA0B,CAAC;IACnC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,mCAAmC,EAAE,aAAa,CAAC,SAAS,CAAC;IACtE,QAAQ,CAAC,kDAAkD,EAAE,0BAA0B,CAAC,SAAS,CAAC;IAClG,QAAQ,CAAC,iCAAiC,EAAE,WAAW,CAAC,SAAS,CAAC;IAClE,QAAQ,CAAC,gDAAgD,EAAE,wBAAwB,CAAC,SAAS,CAAC;IAC9F,QAAQ,CAAC,mDAAmD,EAAE,0BAA0B,CAAC,SAAS,CAAC;IACnG,QAAQ,CAAC,8CAA8C,EAAE,sBAAsB,CAAC,SAAS,CAAC;IAC1F,QAAQ,CAAC,wCAAwC,EAAE,gBAAgB,CAAC,SAAS,CAAC;IAC9E,QAAQ,CAAC,mDAAmD,EAAE,0BAA0B,CAAC,SAAS,CAAC;CACpG,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,CAAC,mCAAmC,EAAE,aAAa,CAAC,OAAO,CAAC;CACrE,CAAC"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=eslint-react-coding-style-rules.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-react-coding-style-rules.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -10,6 +10,7 @@ export * from './eslint-plugin-rules.mjs';
10
10
  export * from './eslint-plugin-sort-destructure-keys-rules.mjs';
11
11
  export * from './eslint-prefer-arrow-functions-rules.mjs';
12
12
  export * from './eslint-promise-rules.mjs';
13
+ export * from './eslint-react-coding-style-rules.mjs';
13
14
  export * from './eslint-react-hooks-rules.mjs';
14
15
  export * from './eslint-react-perf-rules.mjs';
15
16
  export * from './eslint-react-refresh-rules.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/types/rules/index.mts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/types/rules/index.mts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-typed",
3
- "version": "2.3.2",
3
+ "version": "3.0.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -35,8 +35,6 @@
35
35
  "check-all": "tsx ./scripts/cmd/check-all.mts",
36
36
  "check:ext": "tsx ./scripts/cmd/check-ext.mts",
37
37
  "cspell": "cspell \"**\" --gitignore --gitignore-root ./ --no-progress",
38
- "doc": "tsx ./scripts/cmd/gen-docs.mts",
39
- "doc:embed": "tsx ./scripts/cmd/embed-samples.mts",
40
38
  "fmt": "format-uncommitted",
41
39
  "fmt:diff": "format-diff-from origin/main",
42
40
  "fmt:full": "prettier --write .",
@@ -147,8 +145,6 @@
147
145
  "ts-type-forge": "^2.3.0",
148
146
  "tslib": "^2.8.1",
149
147
  "tsx": "^4.20.6",
150
- "typedoc": "^0.28.14",
151
- "typedoc-plugin-markdown": "^4.9.0",
152
148
  "typescript": "^5.9.3",
153
149
  "vitest": "^4.0.4"
154
150
  },
@@ -48,6 +48,7 @@ import eslintPluginEslintPlugin from 'eslint-plugin-eslint-plugin';
48
48
  // import eslintPluginTreeShakable from 'eslint-plugin-tree-shakable';
49
49
  import {
50
50
  eslintPluginCustom,
51
+ eslintPluginReactCodingStyle,
51
52
  eslintPluginStrictDependencies,
52
53
  eslintPluginTotalFunctions,
53
54
  eslintPluginTreeShakable,
@@ -71,6 +72,7 @@ export const plugins: Record<
71
72
  | 'react-hooks'
72
73
  | 'react-refresh'
73
74
  | 'react-perf'
75
+ | 'react-coding-style'
74
76
  | 'security'
75
77
  | 'strict-dependencies'
76
78
  | 'testing-library'
@@ -104,6 +106,7 @@ export const plugins: Record<
104
106
  'react-refresh': eslintPluginReactRefresh,
105
107
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
106
108
  'react-perf': eslintPluginReactPerf,
109
+ 'react-coding-style': eslintPluginReactCodingStyle,
107
110
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
108
111
  security: eslintPluginSecurity,
109
112
  'strict-dependencies': eslintPluginStrictDependencies,
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  eslintJsxA11yRules,
3
+ eslintReactCodingStyleRules,
3
4
  eslintReactHooksRules,
4
5
  eslintReactPerfRules,
5
6
  eslintReactRefreshRules,
@@ -28,6 +29,7 @@ export const eslintConfigForReactBase = (
28
29
  ...eslintReactRefreshRules,
29
30
  ...eslintJsxA11yRules,
30
31
  ...eslintReactPerfRules,
32
+ ...eslintReactCodingStyleRules,
31
33
  }),
32
34
  },
33
35
  ] as const;
@@ -42,10 +42,10 @@ export {
42
42
  restrictedGlobals,
43
43
  restrictedGlobalsForBrowser,
44
44
  restrictedSyntax,
45
- restrictedSyntaxForReact,
46
45
 
47
46
  // Custom plugins
48
47
  eslintPluginCustom,
48
+ eslintPluginReactCodingStyle,
49
49
  eslintPluginTotalFunctions,
50
50
  eslintPluginTreeShakable,
51
51
 
@@ -78,6 +78,7 @@ export {
78
78
  type EslintImportsRulesOption,
79
79
  type EslintStrictDependenciesRules,
80
80
  type EslintStrictDependenciesRulesOption,
81
+ type EslintReactCodingStyleRules,
81
82
  type EslintSecurityRules,
82
83
  type EslintTreeShakableRules,
83
84
  type EslintReactRules,
@@ -1,4 +1,5 @@
1
1
  export * from './custom/index.mjs';
2
+ export * from './react-coding-style/index.mjs';
2
3
  export * from './strict-dependencies/index.mjs';
3
4
  export * from './total-functions/index.mjs';
4
5
  export * from './tree-shakable/index.mjs';
@@ -0,0 +1,36 @@
1
+ # eslint-plugin-react-coding-style
2
+
3
+ Lint rules to recommends React component style like below:
4
+
5
+ ```tsx
6
+ import * as React from 'react';
7
+
8
+ type Props = Readonly<{
9
+ numList: readonly number[];
10
+ }>;
11
+
12
+ OK;
13
+ export const Ok = React.memo<Props>((props) => {
14
+ const sum = React.useMemo(
15
+ () => props.numList.reduce((a, b) => a + b, 0),
16
+ [props.numList],
17
+ );
18
+
19
+ return <div>{sum}</div>;
20
+ });
21
+
22
+ // OK
23
+ export const NoReturnStatementWithDestructedProps = React.memo<Props>(
24
+ ({ numList }) => <div>{numList.length}</div>,
25
+ );
26
+
27
+ // OK
28
+ export const NoReturnStatementWithoutDestructedProps = React.memo<Props>(
29
+ (props) => <div>{props.numList.length}</div>,
30
+ );
31
+
32
+ // OK
33
+ export const MemoWithoutProps = React.memo(() => <div>{1}</div>);
34
+ ```
35
+
36
+ [typescript-eslint PlayGround](https://typescript-eslint.io/play/#ts=5.9.3&showAST=es&fileType=.tsx&code=JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcARFDvmQNwCwAUKJLIiugDYQAmaAFnCIlyXXqj61GjGAE8wWOAAViYdAF5MObhAB2HGQB4A3ozhwdAVxAAZYKhgAuOJWTa9M81YBGWKAG0AXXoGAF8APmDGAHoouAB5AGlGLAAPFnhcXXt4gGs4DWw8GAA6ECwQCANlCFUwgAo6sBVUAEp8sLgTBjNMnWzUK3zNIuKLVCwAWXKIOtMzODq2tQ6mmtRiyxs7EspuC1wsBuQAGjgvJY7kOABqM9OABhbjubM-VdUNq1t7AOfuuBakX%2BlBgFigOjgBm4wAAbmEjAMQCEDFFoXDgiFAVIGDF4kkGKl0nBetkAHIQbCg8EAZRgyBg5SwOhgAHVgDA%2BNSmlohoV8KVplVmvU6kZPFtspj2pC0fDNt8ShwmQBzDnI1GwsJYhjRWKJZJpaAZLLwcmUsE6Wn0xnMtkciAWGBclzcXlUEplCpCtYi96taVQzVGP2fCWKlVqlGy7W6uCkgDiBqJJPgAEEoMrUzodBA6QzXQV3QKvdVag0-U5S-7lp05im4Ii3SMxpNprN-mZFtKQ-LtsVdvtDnUTmcLigbnc4I8-vM4G9mqGFb85jHgVgqRDA3CEVZ1bKMavcQmk0biSa4OnM9nc9buKnUABJPTAHQKQsjT2VKu%2B5pOMW9%2BwnBdXR9HFHx-ACOApRrLoenPRt335FspgqdtZy7Gsey%2BPsBwOI5TnOaUrluLwHieF45ywsNl3%2BVczBBC0ZSDRE901A8gSPRMCUNVh60vLMczzLA70fZ9XztPgABU5CwbACF8JkDibflP29MtGl-YY3H0YxxQVICtBAjxNnAwIoK1aVYLPPp4AQ4YkPGFCZgojCVgXACdmEwd8NHIiJ1IqdyI7Sj3Own4ZwBIF6PXRit3hFiozYxhMQ42Jj245NzyciSHRgaT5EvKwmUceySicgBRFJc2AXAAGESEgV9mQMDS1krZoxz5EoAClqQADWKcqlTKZkOkQj021a1Qxys%2Bs7K60ZHLbFyxyohV%2By8vDhwIsdiMnacKPnNZF22GizDo5wYvBJjtwSjV0WSw80q4wlT3rJyBJvfN7yzDxxuLSpkB0GQfzWGa63gwZ-uQ5bgtcuA1pwzahxHQiaz2gKDuCo6Pg8s7IuxaKNxu%2BLd0Sh7QieuMXp440bLgD7ryEkSnw4F831KgHdI8gzXCMsDfDM8Jyw6yyIfp%2Baixh1CVu7UKww2vYttR3b-LIiLXkR8KVyiy7ibinckXJiJHtS6mT14rLpk%2B5n71Z9mJPy2SsHkygdCU-7VMKbTDH-MKSuA9wBYg8zQemsX-jmqHOel5y4dW%2BX1twlGdr8kj1cOrWYHxi6GOug27v3U3sU4i26eyS9nS0YTlImkthQaP2wyg8HI8h0hoaWmX4%2BlDzFe87bfPRtXAo1uc8Yi3Ors3WVDdYimUpL57GHrSSIHXjfN637eN%2BsXRlXq8BdGK0lkDKWuue-EWwYjuCJejhbY7Q%2BZ4az-vldT4f09HzPE9OyfdZ5xnsxMm90TaUyBEAA&eslintrc=N4KABGBEBOCuA2BTAzpAXGUEKQHYHsBaaFAF2gEsBjUxAE0OQE9dSBDAD3TAG1xsciaNHzRIAGn4CsA7JGSIkNUd0gBJALYAHUaQAiiKvDbQ2pCvlw9k%2BWNCqIAdADc28WIgC8AchJsa3gC61lqGFABmFELIjgAMjqRMoQCEPpo60KQAcmwaKFr%2BiADKoVQRUdBBElKykHnIyGwA5oiqAEqI-qRgyAAWtvB0YABGiGAU2rr0YGzIYAAGExndAFQzcx1dYOEiGmC%2BnQHzjpA1EAC%2BkrKYZ3IKSqQqGOp0iKzlQjy4uYip3psBYIFEisBJJLzedK6HL1AoOEphSJCII8YFvUiONGgxKhNKTTIGIwmMwWXAorEYimOGx2BwuNweHx%2BQHVa44eqNFqqAAqvTG31hhTAArGSymQx2%2BD2By63jAGlgyG6o32ANI3hOt0uIB11xk13kikMjzEz25RQAirA3B86DDEDwkOEMSKfGqUZQmr0XT8fAAxADCVSubLqKE5rWeAFUFGA1Y48hp8AAeAAKIi0yAAfAAKHNaDPIACUYE8WcwYEcVbA5xLFFwSs6dE1121etuOHuxqeUHNVptSLtP0diGdjld-0O6uCnu94993j9sFwNFJAalOlw6ODHagHOakagMbG8cTKfT%2BEzufzhZLZYrVccNbrDdobGbp1bkl1sn1tS7yimlAACyiAaKM0AAKIcAW4akjw%2BDDAAVsa855G6U7khmQiJGhEJnuSJjomCoQAILQE0sB5KwyCeMuryRFudCBKyob7lyzynmB%2BA9P0CBDL0bDOGMOJjMCPy0NACzeBembeMcn6yG2v67oaDw9pAoHgUI0GwQ08GIShNB4RhspAthmRMCZ3gEUCRHYuC5GUdRpDIKk9GjvW9B2SCGKiU5VHojEol-Oa3LgqmxJ5JJaivmw7wkpYO5snu4YHu0U4JtxvEDAJQkieCYDidFQjSbJyDyS2SkhtIqkASaqhaRBukkPplgIchqETu65mXjhVkTrZqL2X5jkUYFNHubgDFecxw2%2BSRiABS5wXgj4YURVFiAxXFCXmElPnEf540rZiUUxPEIXrUU4WhB04RCG8DjJWxaUcVAXFJjl-FgIJwlgKJRVbZJZWFpVikCMptUpWp3ZAZpYHNTBrXIAZnXGd1mG9aElnWUNVLHc5QVTTNTGHQ5ZEnUFi3XbdiCRaYJXQLFSrxeYiVkuTo2U0TNFnYzF0094G13aOj0roghELYTE2ufzuSC6J9p4X85UvQa7GHpAn08X0uW-flAOFcV22lfMMlgwpWrfrcf4CLDgE8jdjm4AQ7D7VYBNrZCrzvEilRc-zR3e%2BRIgAO5LiuHstXBB3zcRVJe7i3gBm48Ax21nPx6CicjY4VBp4gTiGV1C49dnlJ51SBfwEgTgFn1uODdx6u1JrGVaMYDgLDreYN5mGDlXe5bAJW1a1vMYBhxQpC9D3mVnmmhbXv3xaliPY9PhPVWQzb7Yw-VGlqL75j%2B18Px-KvUvB8nof4BHy6rpYGeo3HVKIMjse4Kk5AeIH1eF2LujH06FJxmQrkHUENc66YgsrhZuSZW723bmaPkMwqasGFD8MA%2BBwjoPDtsR%2BHsgYNGmI8OMC9sp6x%2BiqbwV8d7YChtgO2dwjSO2eAAeWAZFUgklPZ51Ej4O%2BD8o6khfqSa%2BoIP56Vft-Twv9ED-zztAoujgS4YzLljCBADa6qP7v1PGLcWI1Tbm9LWvIxKFhwXgtgYAqAbksOiOxlh2D1nrE0GYYASCkDsLgHo7swJOKImAeAEwZ5kJ4rY1wlA2DDCQFgvIQxzZXytl%2BHUts6psIas8Y%2B6IPjQHPuhAA9AAPUcMAAALAAJnEOcAAJEUwOgjvAADUTAUFiUgQkxhTAmkkRiNx3MISp1ruIt%2BedBn50AWo4B1ly5UkmSo%2BucCBoLlsqxDWZieRoPsZMLcmCRQhLeE0We31BgjDGEgBoANBJ%2BOqU%2BdcDYKCvCkiQMOlBaDrAWPY18YB1x7KcZ4ChXQspJiXpebMfdbzrwrLWAA3GAaRugKz-M3EEuYRQpSIFRY4zB5w4UQ0YXvFSB8skaSajpT%2BmcOpGRARCeZKzrKKkQOkIQJJhIAAl4p0CQEguQKCQL4H%2BvGZlRQAkAx4jPOY8UHBKlEM4gFmD6yNnfAwi4JiIAsM7GS%2BGIslqu3wO7eCudpbexGenKlsj%2BmQIxEsmZtK5laJNcRO1%2Bim4LmZVpfAfL2RbNQWMaJHS4kFVCGAbkZyhgqnim7Mw0xZjzxBZ67iyZuRZknvK%2BYPylRgGcBgcNQKRUKC9TmR8RZUlKRqIEfg5wQDnCAA&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkJemy0eFYDArugDTg2RGwAqkWgALdNADW6ACYBJIjPQAPWQEFo0dCTKUO6XgF8QhoA&tokens=false)
@@ -0,0 +1 @@
1
+ export * from './plugin.mjs';
@@ -0,0 +1,6 @@
1
+ import { type ESLintPlugin } from '../../types/index.mjs';
2
+ import { reactCodingStyleRules } from './rules/index.mjs';
3
+
4
+ export const eslintPluginReactCodingStyle: Omit<ESLintPlugin, 'configs'> = {
5
+ rules: reactCodingStyleRules,
6
+ } as const;