eslint-config-typed 4.0.6 → 4.0.8

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 (31) hide show
  1. package/dist/configs/typescript.d.mts.map +1 -1
  2. package/dist/configs/typescript.mjs +2 -0
  3. package/dist/configs/typescript.mjs.map +1 -1
  4. package/dist/plugins/react-coding-style/rules/display-name.d.mts +2 -2
  5. package/dist/plugins/react-coding-style/rules/display-name.d.mts.map +1 -1
  6. package/dist/plugins/react-coding-style/rules/display-name.mjs +110 -30
  7. package/dist/plugins/react-coding-style/rules/display-name.mjs.map +1 -1
  8. package/dist/plugins/react-coding-style/rules/rules.d.mts +2 -2
  9. package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs +18 -9
  10. package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs.map +1 -1
  11. package/dist/rules/eslint-react-coding-style-rules.d.mts +1 -3
  12. package/dist/rules/eslint-react-coding-style-rules.d.mts.map +1 -1
  13. package/dist/rules/eslint-react-coding-style-rules.mjs +1 -1
  14. package/dist/rules/eslint-react-coding-style-rules.mjs.map +1 -1
  15. package/dist/rules/eslint-react-rules.d.mts +1 -1
  16. package/dist/rules/eslint-react-rules.mjs +1 -1
  17. package/dist/rules/eslint-react-rules.mjs.map +1 -1
  18. package/dist/types/rules/eslint-react-coding-style-rules.d.mts +21 -6
  19. package/dist/types/rules/eslint-react-coding-style-rules.d.mts.map +1 -1
  20. package/package.json +11 -9
  21. package/src/configs/typescript.mts +4 -0
  22. package/src/plugins/react-coding-style/README.md +4 -3
  23. package/src/plugins/react-coding-style/rules/display-name.mts +160 -38
  24. package/src/plugins/react-coding-style/rules/display-name.test.mts +70 -6
  25. package/src/plugins/react-coding-style/rules/shared.test.mts +148 -0
  26. package/src/plugins/react-coding-style/rules/use-memo-hooks-style-named.test.mts +47 -11
  27. package/src/plugins/react-coding-style/rules/use-memo-hooks-style-namespace.test.mts +47 -11
  28. package/src/plugins/react-coding-style/rules/use-memo-hooks-style.mts +24 -9
  29. package/src/rules/eslint-react-coding-style-rules.mts +1 -1
  30. package/src/rules/eslint-react-rules.mts +1 -1
  31. package/src/types/rules/eslint-react-coding-style-rules.mts +21 -6
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.mts","sourceRoot":"","sources":["../../src/configs/typescript.mts"],"names":[],"mappings":"AAkBA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,yBAAyB,GAAI,8EAMvC,QAAQ,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC,KAAG,SAAS,UAAU,EAyFZ,CAAC"}
1
+ {"version":3,"file":"typescript.d.mts","sourceRoot":"","sources":["../../src/configs/typescript.mts"],"names":[],"mappings":"AAkBA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,yBAAyB,GAAI,8EAMvC,QAAQ,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC,KAAG,SAAS,UAAU,EA6FZ,CAAC"}
@@ -66,6 +66,8 @@ const eslintConfigForTypeScript = ({ files, packageDirs, tsconfigFileName, tscon
66
66
  files: ['**/*.d.{ts,mts,cts}'],
67
67
  rules: defineKnownRules({
68
68
  '@typescript-eslint/triple-slash-reference': 'off',
69
+ // Because interface is often used
70
+ '@typescript-eslint/consistent-type-definitions': 'off',
69
71
  'import-x/unambiguous': 'off',
70
72
  }),
71
73
  },
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.mjs","sources":["../../src/configs/typescript.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBO,MAAM,yBAAyB,GAAG,CAAC,EACxC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAOhB,KACA;AACE,IAAA,GAAG,qCAAqC,CAAC;QACvC,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACF,IAAA;AACE,QAAA,KAAK,EAAE,KAAK,IAAI,CAAC,sCAAsC,CAAC;QACxD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,8BAA8B;AACjC,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,WAAW;AACd,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,mBAAmB;AACtB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,uBAAuB;AAC1B,YAAA,GAAG,oCAAoC;AACvC,YAAA,GAAG,yBAAyB;AAE5B,YAAA,yCAAyC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAExD,YAAA,qCAAqC,EAAE;gBACrC,OAAO;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,WAAW;AACxB,iBAAA;AACF,aAAA;YACD,IAAI,gBAAgB,KAAK;AACvB,kBAAE;AACE,oBAAA,iDAAiD,EAAE,KAAK;AACxD,oBAAA,2DAA2D,EACzD,KAAK;AACR;kBACD,EAAE,CAAC;SACR,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,uBAAuB,CAAC;QAChC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,kDAAkD,EAAE,KAAK;AACzD,YAAA,8BAA8B,EAAE,KAAK;SACtC,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,qBAAqB,CAAC;QAC9B,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,2CAA2C,EAAE,KAAK;AAClD,YAAA,sBAAsB,EAAE,KAAK;SAC9B,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC,CAAA,UAAA,EAAa,gBAAgB,GAAG,CAAC;QACzC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,4CAA4C,EAAE,KAAK;SACpD,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE;;;;;;;;YASL,qCAAqC;YAErC,uCAAuC;YAEvC,4CAA4C;YAC5C,gDAAgD;YAChD,qCAAqC;AACtC,SAAA;QACD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,0CAA0C,EAAE,KAAK;AACjD,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,sCAAsC,EAAE,KAAK;AAC7C,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,oBAAoB,EAAE,KAAK;SAC5B,CAAC;AACH,KAAA;;;;;"}
1
+ {"version":3,"file":"typescript.mjs","sources":["../../src/configs/typescript.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBO,MAAM,yBAAyB,GAAG,CAAC,EACxC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAOhB,KACA;AACE,IAAA,GAAG,qCAAqC,CAAC;QACvC,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACF,IAAA;AACE,QAAA,KAAK,EAAE,KAAK,IAAI,CAAC,sCAAsC,CAAC;QACxD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,8BAA8B;AACjC,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,WAAW;AACd,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,mBAAmB;AACtB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,uBAAuB;AAC1B,YAAA,GAAG,oCAAoC;AACvC,YAAA,GAAG,yBAAyB;AAE5B,YAAA,yCAAyC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAExD,YAAA,qCAAqC,EAAE;gBACrC,OAAO;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,WAAW;AACxB,iBAAA;AACF,aAAA;YACD,IAAI,gBAAgB,KAAK;AACvB,kBAAE;AACE,oBAAA,iDAAiD,EAAE,KAAK;AACxD,oBAAA,2DAA2D,EACzD,KAAK;AACR;kBACD,EAAE,CAAC;SACR,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,uBAAuB,CAAC;QAChC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,kDAAkD,EAAE,KAAK;AACzD,YAAA,8BAA8B,EAAE,KAAK;SACtC,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,qBAAqB,CAAC;QAC9B,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,2CAA2C,EAAE,KAAK;;AAGlD,YAAA,gDAAgD,EAAE,KAAK;AAEvD,YAAA,sBAAsB,EAAE,KAAK;SAC9B,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC,CAAA,UAAA,EAAa,gBAAgB,GAAG,CAAC;QACzC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,4CAA4C,EAAE,KAAK;SACpD,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE;;;;;;;;YASL,qCAAqC;YAErC,uCAAuC;YAEvC,4CAA4C;YAC5C,gDAAgD;YAChD,qCAAqC;AACtC,SAAA;QACD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,0CAA0C,EAAE,KAAK;AACjD,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,sCAAsC,EAAE,KAAK;AAC7C,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,oBAAoB,EAAE,KAAK;SAC5B,CAAC;AACH,KAAA;;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { type TSESLint } from '@typescript-eslint/utils';
2
2
  type Options = readonly [
3
3
  Readonly<{
4
- ignoreTranspilerName?: boolean;
4
+ ignoreName?: string | readonly string[];
5
5
  }>?
6
6
  ];
7
- type MessageIds = 'missingDisplayName';
7
+ type MessageIds = 'missingDisplayName' | 'mismatchedDisplayName';
8
8
  /**
9
9
  * Rule to require displayName property for React components
10
10
  * This helps with debugging and component identification in React DevTools
@@ -1 +1 @@
1
- {"version":3,"file":"display-name.d.mts","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAIlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,oBAAoB,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAkGpE,CAAC"}
1
+ {"version":3,"file":"display-name.d.mts","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAIlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;KACzC,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA6GpE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AST_NODE_TYPES } from '@typescript-eslint/utils';
2
- import 'ts-data-forge';
2
+ import { castDeepMutable } from 'ts-data-forge';
3
3
  import { isReactApiCall } from './shared.mjs';
4
4
 
5
5
  /**
@@ -10,15 +10,22 @@ const displayNameRule = {
10
10
  meta: {
11
11
  type: 'suggestion',
12
12
  docs: {
13
- description: 'Require displayName property for React components created with React.memo',
13
+ description: 'Require React.memo components to define displayName matching the component name',
14
14
  },
15
15
  schema: [
16
16
  {
17
17
  type: 'object',
18
18
  properties: {
19
- ignoreTranspilerName: {
20
- type: 'boolean',
21
- description: 'When true, ignores components that get displayName from variable name',
19
+ ignoreName: {
20
+ description: 'Component names allowed to have displayName different from the variable name.',
21
+ oneOf: [
22
+ { type: 'string' },
23
+ {
24
+ type: 'array',
25
+ items: { type: 'string' },
26
+ minItems: 0,
27
+ },
28
+ ],
22
29
  },
23
30
  },
24
31
  additionalProperties: false,
@@ -26,11 +33,13 @@ const displayNameRule = {
26
33
  ],
27
34
  messages: {
28
35
  missingDisplayName: 'Component should have a displayName property for better debugging',
36
+ mismatchedDisplayName: 'displayName should match the component name "{{componentName}}"',
29
37
  },
30
38
  },
31
39
  create: (context) => {
32
40
  const options = context.options[0] ?? {};
33
- const ignoreTranspilerName = options.ignoreTranspilerName ?? false;
41
+ const ignoreNameSet = normalizeNames(options.ignoreName);
42
+ const shouldIgnoreMismatch = (componentName) => ignoreNameSet.has(componentName);
34
43
  const checkComponent = (node) => {
35
44
  if (node.id.type !== AST_NODE_TYPES.Identifier) {
36
45
  return;
@@ -42,36 +51,38 @@ const displayNameRule = {
42
51
  return;
43
52
  }
44
53
  const componentName = node.id.name;
45
- if (ignoreTranspilerName) {
54
+ const assignment = getDisplayNameAssignment(node);
55
+ if (assignment === undefined) {
56
+ context.report({
57
+ node: castDeepMutable(node),
58
+ messageId: 'missingDisplayName',
59
+ });
46
60
  return;
47
61
  }
48
- const parent = node.parent;
49
- const grandParent = parent.parent;
50
- if (grandParent.type !== AST_NODE_TYPES.Program) {
62
+ if (!isComponentDisplayNameAssignment(assignment, componentName)) {
63
+ context.report({
64
+ node: castDeepMutable(node),
65
+ messageId: 'missingDisplayName',
66
+ });
51
67
  return;
52
68
  }
53
- const program = grandParent;
54
- const componentIndex = program.body.indexOf(parent);
55
- if (componentIndex === -1) {
69
+ const displayName = extractDisplayName(assignment.right);
70
+ if (displayName === undefined) {
71
+ context.report({
72
+ node: assignment.right,
73
+ messageId: 'mismatchedDisplayName',
74
+ data: { componentName },
75
+ });
56
76
  return;
57
77
  }
58
- const nextStatement = program.body[componentIndex + 1];
59
- const hasDisplayName = nextStatement !== undefined &&
60
- nextStatement.type === AST_NODE_TYPES.ExpressionStatement &&
61
- nextStatement.expression.type === AST_NODE_TYPES.AssignmentExpression &&
62
- nextStatement.expression.left.type ===
63
- AST_NODE_TYPES.MemberExpression &&
64
- nextStatement.expression.left.object.type ===
65
- AST_NODE_TYPES.Identifier &&
66
- nextStatement.expression.left.object.name === componentName &&
67
- nextStatement.expression.left.property.type ===
68
- AST_NODE_TYPES.Identifier &&
69
- nextStatement.expression.left.property.name === 'displayName';
70
- if (!hasDisplayName) {
78
+ if (shouldIgnoreMismatch(componentName)) {
79
+ return;
80
+ }
81
+ if (displayName !== componentName) {
71
82
  context.report({
72
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
73
- node: node.id,
74
- messageId: 'missingDisplayName',
83
+ node: assignment.right,
84
+ messageId: 'mismatchedDisplayName',
85
+ data: { componentName },
75
86
  });
76
87
  }
77
88
  };
@@ -79,7 +90,76 @@ const displayNameRule = {
79
90
  VariableDeclarator: checkComponent,
80
91
  };
81
92
  },
82
- defaultOptions: [{ ignoreTranspilerName: false }],
93
+ defaultOptions: [{ ignoreName: [] }],
94
+ };
95
+ const normalizeNames = (names) => {
96
+ if (names === undefined) {
97
+ return new Set();
98
+ }
99
+ if (typeof names === 'string') {
100
+ return new Set([names]);
101
+ }
102
+ return new Set(names);
103
+ };
104
+ const getDisplayNameAssignment = (node) => {
105
+ let mut_current = node.parent;
106
+ let mut_statement = undefined;
107
+ while (mut_current !== undefined) {
108
+ if (mut_current.type === AST_NODE_TYPES.VariableDeclaration ||
109
+ mut_current.type === AST_NODE_TYPES.ExportNamedDeclaration) {
110
+ mut_statement = mut_current;
111
+ }
112
+ if (mut_current.type === AST_NODE_TYPES.Program) {
113
+ break;
114
+ }
115
+ mut_current = mut_current.parent;
116
+ }
117
+ if (mut_current === undefined || mut_statement === undefined) {
118
+ return undefined;
119
+ }
120
+ const program = mut_current;
121
+ const componentIndex = program.body.indexOf(
122
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
123
+ mut_statement);
124
+ if (componentIndex === -1) {
125
+ return undefined;
126
+ }
127
+ const nextStatement = program.body[componentIndex + 1];
128
+ if (nextStatement === undefined) {
129
+ return undefined;
130
+ }
131
+ if (nextStatement.type !== AST_NODE_TYPES.ExpressionStatement) {
132
+ return undefined;
133
+ }
134
+ if (nextStatement.expression.type !== AST_NODE_TYPES.AssignmentExpression) {
135
+ return undefined;
136
+ }
137
+ return nextStatement.expression;
138
+ };
139
+ const isComponentDisplayNameAssignment = (assignment, componentName) => {
140
+ if (assignment.left.type !== AST_NODE_TYPES.MemberExpression) {
141
+ return false;
142
+ }
143
+ if (assignment.left.object.type !== AST_NODE_TYPES.Identifier) {
144
+ return false;
145
+ }
146
+ if (assignment.left.object.name !== componentName) {
147
+ return false;
148
+ }
149
+ return (assignment.left.property.type === AST_NODE_TYPES.Identifier &&
150
+ assignment.left.property.name === 'displayName');
151
+ };
152
+ const extractDisplayName = (expression) => {
153
+ if (expression.type === AST_NODE_TYPES.Literal &&
154
+ typeof expression.value === 'string') {
155
+ return expression.value;
156
+ }
157
+ if (expression.type === AST_NODE_TYPES.TemplateLiteral &&
158
+ expression.expressions.length === 0 &&
159
+ expression.quasis.length === 1) {
160
+ return expression.quasis[0]?.value.cooked ?? undefined;
161
+ }
162
+ return undefined;
83
163
  };
84
164
 
85
165
  export { displayNameRule };
@@ -1 +1 @@
1
- {"version":3,"file":"display-name.mjs","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAgBA;;;AAGG;AACI,MAAM,eAAe,GAA6C;AACvE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EACT,2EAA2E;AAC9E,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,UAAU,EAAE;AACV,oBAAA,oBAAoB,EAAE;AACpB,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,WAAW,EACT,uEAAuE;AAC1E,qBAAA;AACF,iBAAA;AACD,gBAAA,oBAAoB,EAAE,KAAK;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,kBAAkB,EAChB,mEAAmE;AACtE,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE,CAAC,OAAO,KAAI;QAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;AAExC,QAAA,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,KAAK;AAElE,QAAA,MAAM,cAAc,GAAG,CACrB,IAA+C,KACvC;YACR,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE;gBAC9C;;YAGF,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE;gBACrD;;AAGF,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBAC/C;;AAGF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;YAElC,IAAI,oBAAoB,EAAE;gBACxB;;AAGF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAI1B,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;YAEjC,IAAI,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,EAAE;gBAC/C;;YAGF,MAAM,OAAO,GAAG,WAAW;YAE3B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAEnD,YAAA,IAAI,cAAc,KAAK,EAAE,EAAE;gBACzB;;YAGF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAEtD,YAAA,MAAM,cAAc,GAClB,aAAa,KAAK,SAAS;AAC3B,gBAAA,aAAa,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB;AACzD,gBAAA,aAAa,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,oBAAoB;AACrE,gBAAA,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;AAChC,oBAAA,cAAc,CAAC,gBAAgB;AACjC,gBAAA,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;AACvC,oBAAA,cAAc,CAAC,UAAU;gBAC3B,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;AAC3D,gBAAA,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;AACzC,oBAAA,cAAc,CAAC,UAAU;gBAC3B,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa;YAE/D,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC;;oBAEb,IAAI,EAAE,IAAI,CAAC,EAAW;AACtB,oBAAA,SAAS,EAAE,oBAAoB;AAChC,iBAAA,CAAC;;AAEN,QAAA,CAAC;QAED,OAAO;AACL,YAAA,kBAAkB,EAAE,cAAc;SACnC;KACF;AACD,IAAA,cAAc,EAAE,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;;;;;"}
1
+ {"version":3,"file":"display-name.mjs","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -12,8 +12,8 @@ export declare const reactCodingStyleRules: {
12
12
  readonly 'react-memo-type-parameter': import("@typescript-eslint/utils/ts-eslint").RuleModule<"requirePropsTypeParameter" | "omitTypeParameterWhenPropsEmpty", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
13
13
  readonly 'use-memo-hook-style': import("@typescript-eslint/utils/ts-eslint").RuleModule<"disallowUseMemoTypeAnnotation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
14
14
  readonly 'ban-use-imperative-handle-hook': import("@typescript-eslint/utils/ts-eslint").RuleModule<"disallowUseImperativeHandle", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
15
- readonly 'display-name': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingDisplayName", readonly [(Readonly<{
16
- ignoreTranspilerName?: boolean;
15
+ readonly 'display-name': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingDisplayName" | "mismatchedDisplayName", readonly [(Readonly<{
16
+ ignoreName?: string | readonly string[];
17
17
  }> | undefined)?], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
18
18
  };
19
19
  //# sourceMappingURL=rules.d.mts.map
@@ -19,9 +19,9 @@ const useMemoHooksStyleRule = {
19
19
  return;
20
20
  }
21
21
  const parent = node.parent;
22
- if (parent.type === AST_NODE_TYPES.TSAsExpression ||
23
- parent.type === AST_NODE_TYPES.TSTypeAssertion ||
24
- parent.type === AST_NODE_TYPES.TSSatisfiesExpression) {
22
+ if ((parent.type === AST_NODE_TYPES.TSAsExpression ||
23
+ parent.type === AST_NODE_TYPES.TSTypeAssertion) &&
24
+ !isConstAssertion(parent.typeAnnotation)) {
25
25
  context.report({
26
26
  node: castDeepMutable(parent),
27
27
  messageId: 'disallowUseMemoTypeAnnotation',
@@ -50,12 +50,13 @@ const useMemoHooksStyleRule = {
50
50
  };
51
51
  const checkNodeForTypeAnnotations = (context, node) => {
52
52
  if (node.type === AST_NODE_TYPES.TSAsExpression ||
53
- node.type === AST_NODE_TYPES.TSTypeAssertion ||
54
- node.type === AST_NODE_TYPES.TSSatisfiesExpression) {
55
- context.report({
56
- node: castDeepMutable(node),
57
- messageId: 'disallowUseMemoTypeAnnotation',
58
- });
53
+ node.type === AST_NODE_TYPES.TSTypeAssertion) {
54
+ if (!isConstAssertion(node.typeAnnotation)) {
55
+ context.report({
56
+ node: castDeepMutable(node),
57
+ messageId: 'disallowUseMemoTypeAnnotation',
58
+ });
59
+ }
59
60
  return;
60
61
  }
61
62
  if (hasKey(node, 'body')) {
@@ -80,6 +81,14 @@ const checkNodeForTypeAnnotations = (context, node) => {
80
81
  nodeWithArgument.argument);
81
82
  }
82
83
  };
84
+ const isConstAssertion = (node) => {
85
+ if (node === undefined) {
86
+ return false;
87
+ }
88
+ return (node.type === AST_NODE_TYPES.TSTypeReference &&
89
+ node.typeName.type === AST_NODE_TYPES.Identifier &&
90
+ node.typeName.name === 'const');
91
+ };
83
92
 
84
93
  export { useMemoHooksStyleRule };
85
94
  //# sourceMappingURL=use-memo-hooks-style.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-memo-hooks-style.mjs","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-memo-hooks-style.mjs","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAUO,MAAM,qBAAqB,GAAoC;AACpE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EACT,oEAAoE;AACvE,SAAA;AACD,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,6BAA6B,EAC3B,qGAAqG;AACxG,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE,CAAC,OAAO,MAAM;AACpB,QAAA,cAAc,EAAE,CAAC,IAA2C,KAAI;YAC9D,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE;gBAC7C;YACF;AAEA,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAE1B,YAAA,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;AAC5C,gBAAA,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;AAChD,gBAAA,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,EACxC;gBACA,OAAO,CAAC,MAAM,CAAC;AACb,oBAAA,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;AAC7B,oBAAA,SAAS,EAAE,+BAA+B;AAC3C,iBAAA,CAAC;YACJ;YAEA,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAAE;gBACnD,OAAO,CAAC,MAAM,CAAC;AACb,oBAAA,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;AAC7B,oBAAA,SAAS,EAAE,+BAA+B;AAC3C,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS;YAEjC,IAAI,QAAQ,EAAE,IAAI,KAAK,cAAc,CAAC,uBAAuB,EAAE;AAC7D,gBAAA,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,QAAQ;AAErC,gBAAA,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC5B,OAAO,CAAC,MAAM,CAAC;AACb,wBAAA,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC;AACjC,wBAAA,SAAS,EAAE,+BAA+B;AAC3C,qBAAA,CAAC;gBACJ;AAEA,gBAAA,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC;YAC5C;QACF,CAAC;KACF,CAAC;AACF,IAAA,cAAc,EAAE,EAAE;;AAGpB,MAAM,2BAA2B,GAAG,CAClC,OAAoE,EACpE,IAAiC,KACzB;AACR,IAAA,IACE,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;AAC3C,QAAA,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAC5C;QACA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC;AACb,gBAAA,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;AAC3B,gBAAA,SAAS,EAAE,+BAA+B;AAC3C,aAAA,CAAC;QACJ;QAEA;IACF;AAEA,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;QACxB,MAAM,YAAY,GAAG,IAAI;AAEzB,QAAA,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE;AACjE,YAAA,2BAA2B,CACzB,OAAO;;YAEP,YAAY,CAAC,IAAmC,CACjD;QACH;IACF;AAEA,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;QAC9B,MAAM,kBAAkB,GAAG,IAAI;AAE/B,QAAA,2BAA2B,CACzB,OAAO;;QAEP,kBAAkB,CAAC,UAAyC,CAC7D;IACH;AAEA,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;QAC5B,MAAM,gBAAgB,GAAG,IAAI;AAE7B,QAAA,2BAA2B,CACzB,OAAO;;;QAGP,gBAAgB,CAAC,QAAuC,CACzD;IACH;AACF,CAAC;AAED,MAAM,gBAAgB,GAAG,CACvB,IAA6C,KACT;AACpC,IAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,QACE,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;AAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO;AAElC,CAAC;;;;"}
@@ -11,8 +11,6 @@ export declare const eslintReactCodingStyleRules: {
11
11
  readonly 'react-coding-style/react-memo-type-parameter': "error";
12
12
  readonly 'react-coding-style/ban-use-imperative-handle-hook': "error";
13
13
  readonly 'react-coding-style/use-memo-hook-style': "error";
14
- readonly 'react-coding-style/display-name': readonly ["error", {
15
- readonly ignoreTranspilerName: false;
16
- }];
14
+ readonly 'react-coding-style/display-name': readonly ["error", {}];
17
15
  };
18
16
  //# sourceMappingURL=eslint-react-coding-style-rules.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-react-coding-style-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-react-coding-style-rules.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;CAYQ,CAAC"}
1
+ {"version":3,"file":"eslint-react-coding-style-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-react-coding-style-rules.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;CAYQ,CAAC"}
@@ -8,7 +8,7 @@ const eslintReactCodingStyleRules = {
8
8
  'react-coding-style/react-memo-type-parameter': 'error',
9
9
  'react-coding-style/ban-use-imperative-handle-hook': 'error',
10
10
  'react-coding-style/use-memo-hook-style': 'error',
11
- 'react-coding-style/display-name': ['error', { ignoreTranspilerName: false }],
11
+ 'react-coding-style/display-name': ['error', {}],
12
12
  };
13
13
 
14
14
  export { eslintReactCodingStyleRules };
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-react-coding-style-rules.mjs","sources":["../../src/rules/eslint-react-coding-style-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,2BAA2B,GAAG;;IAEzC,iCAAiC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IAE1E,mCAAmC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AACjE,IAAA,kDAAkD,EAAE,OAAO;AAC3D,IAAA,gDAAgD,EAAE,OAAO;AACzD,IAAA,mDAAmD,EAAE,OAAO;AAC5D,IAAA,8CAA8C,EAAE,OAAO;AACvD,IAAA,mDAAmD,EAAE,OAAO;AAC5D,IAAA,wCAAwC,EAAE,OAAO;IACjD,iCAAiC,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;;;;;"}
1
+ {"version":3,"file":"eslint-react-coding-style-rules.mjs","sources":["../../src/rules/eslint-react-coding-style-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,2BAA2B,GAAG;;IAEzC,iCAAiC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IAE1E,mCAAmC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AACjE,IAAA,kDAAkD,EAAE,OAAO;AAC3D,IAAA,gDAAgD,EAAE,OAAO;AACzD,IAAA,mDAAmD,EAAE,OAAO;AAC5D,IAAA,8CAA8C,EAAE,OAAO;AACvD,IAAA,mDAAmD,EAAE,OAAO;AAC5D,IAAA,wCAAwC,EAAE,OAAO;AACjD,IAAA,iCAAiC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;;;;;"}
@@ -24,7 +24,7 @@ export declare const eslintReactRules: {
24
24
  readonly 'react/default-props-match-prop-types': 2 | 1;
25
25
  /** Enforce consistent usage of props destructuring. */
26
26
  readonly 'react/destructuring-assignment': 2 | 1;
27
- readonly 'react/display-name': 2 | 1;
27
+ readonly 'react/display-name': "off";
28
28
  readonly 'react/forbid-component-props': readonly ["error", {
29
29
  readonly forbid: readonly ["className"];
30
30
  }];
@@ -26,7 +26,7 @@ const eslintReactRules = {
26
26
  'react/default-props-match-prop-types': withDefaultOption('error'),
27
27
  /** Enforce consistent usage of props destructuring. */
28
28
  'react/destructuring-assignment': withDefaultOption('error'),
29
- 'react/display-name': withDefaultOption('error'),
29
+ 'react/display-name': 'off', // Covered by react-coding-style/display-name
30
30
  'react/forbid-component-props': ['error', { forbid: ['className'] }],
31
31
  'react/forbid-dom-props': withDefaultOption('error'),
32
32
  'react/forbid-elements': withDefaultOption('error'),
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-react-rules.mjs","sources":["../../src/rules/eslint-react-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint-react-rules.mjs","sources":["../../src/rules/eslint-react-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -161,7 +161,8 @@ declare namespace BanUseImperativeHandleHook {
161
161
  type RuleEntry = Linter.StringSeverity;
162
162
  }
163
163
  /**
164
- * Require displayName property for React components created with React.memo
164
+ * Require React.memo components to define displayName matching the component
165
+ * name
165
166
  *
166
167
  * ```md
167
168
  * | key | value |
@@ -179,9 +180,20 @@ declare namespace DisplayName {
179
180
  * {
180
181
  * "type": "object",
181
182
  * "properties": {
182
- * "ignoreTranspilerName": {
183
- * "type": "boolean",
184
- * "description": "When true, ignores components that get displayName from variable name"
183
+ * "ignoreName": {
184
+ * "description": "Component names allowed to have displayName different from the variable name.",
185
+ * "oneOf": [
186
+ * {
187
+ * "type": "string"
188
+ * },
189
+ * {
190
+ * "type": "array",
191
+ * "items": {
192
+ * "type": "string"
193
+ * },
194
+ * "minItems": 0
195
+ * }
196
+ * ]
185
197
  * }
186
198
  * },
187
199
  * "additionalProperties": false
@@ -190,8 +202,11 @@ declare namespace DisplayName {
190
202
  * ```
191
203
  */
192
204
  type Options = Readonly<{
193
- /** When true, ignores components that get displayName from variable name */
194
- ignoreTranspilerName?: boolean;
205
+ /**
206
+ * Component names allowed to have displayName different from the variable
207
+ * name.
208
+ */
209
+ ignoreName?: string | readonly string[];
195
210
  }>;
196
211
  type RuleEntry = 'off' | Linter.Severity | SpreadOptionsIfIsArray<readonly [Linter.StringSeverity, Options]>;
197
212
  }
@@ -1 +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":"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"}
1
+ {"version":3,"file":"eslint-react-coding-style-rules.d.mts","sourceRoot":"","sources":["../../../src/types/rules/eslint-react-coding-style-rules.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-typed",
3
- "version": "4.0.6",
3
+ "version": "4.0.8",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -40,6 +40,7 @@
40
40
  "check-all": "tsx ./scripts/cmd/check-all.mts",
41
41
  "check:ext": "tsx ./scripts/cmd/check-ext.mts",
42
42
  "cspell": "cspell \"**\" --gitignore --gitignore-root ./ --no-progress",
43
+ "doc": "tsx ./scripts/cmd/gen-docs.mts",
43
44
  "doc:embed": "tsx ./scripts/cmd/embed-samples.mts",
44
45
  "fmt": "format-uncommitted",
45
46
  "fmt:diff": "format-diff-from origin/main",
@@ -57,16 +58,17 @@
57
58
  "lint": "eslint .",
58
59
  "lint:fix": "eslint . --fix",
59
60
  "md": "markdownlint-cli2",
60
- "test": "pnpm run z:vitest run",
61
- "test:cov": "pnpm run z:vitest run --coverage",
61
+ "test": "pnpm run z:vitest:node run",
62
+ "test:cov": "pnpm run z:vitest:node run --coverage",
62
63
  "test:cov:ui": "vite preview --outDir ./coverage",
63
- "test:ui": "pnpm run z:vitest --ui",
64
- "testw": "pnpm run z:vitest watch",
64
+ "test:ui": "pnpm run z:vitest:node --ui",
65
+ "testw": "pnpm run z:vitest:node watch",
65
66
  "tsc": "tsc --noEmit",
66
67
  "tscw": "tsc --noEmit --watch -p ./tsconfig.json",
67
68
  "type-check": "tsc --noEmit",
68
69
  "update-packages": "pnpm update --latest",
69
- "z:vitest": "vitest --config ./configs/vitest.config.mts"
70
+ "z:vitest": "vitest --config ./configs/vitest.config.mts",
71
+ "z:vitest:node": "vitest --config ./configs/vitest.config.mts --project='Node.js'"
70
72
  },
71
73
  "dependencies": {
72
74
  "@eslint/js": "9.39.1",
@@ -137,14 +139,14 @@
137
139
  "jiti": "2.6.1",
138
140
  "json-schema": "0.4.0",
139
141
  "json-schema-to-typescript": "15.0.4",
140
- "markdownlint": "0.39.0",
142
+ "markdownlint": "0.40.0",
141
143
  "markdownlint-cli2": "0.19.1",
142
144
  "npm-run-all2": "8.0.4",
143
145
  "prettier": "3.7.4",
144
146
  "prettier-plugin-jsdoc": "1.7.0",
145
147
  "prettier-plugin-organize-imports": "4.3.0",
146
148
  "prettier-plugin-packagejson": "2.5.20",
147
- "react": "19.2.0",
149
+ "react": "19.2.1",
148
150
  "rollup": "4.53.3",
149
151
  "semantic-release": "25.0.2",
150
152
  "ts-fortress": "6.1.0",
@@ -165,6 +167,6 @@
165
167
  "node": ">=18.0.0"
166
168
  },
167
169
  "volta": {
168
- "node": "25.0.0"
170
+ "node": "25.2.1"
169
171
  }
170
172
  }
@@ -84,6 +84,10 @@ export const eslintConfigForTypeScript = ({
84
84
  files: ['**/*.d.{ts,mts,cts}'],
85
85
  rules: defineKnownRules({
86
86
  '@typescript-eslint/triple-slash-reference': 'off',
87
+
88
+ // Because interface is often used
89
+ '@typescript-eslint/consistent-type-definitions': 'off',
90
+
87
91
  'import-x/unambiguous': 'off',
88
92
  }),
89
93
  },
@@ -37,11 +37,11 @@ export const MemoWithoutProps = React.memo(() => <div>{1}</div>);
37
37
 
38
38
  ## `display-name`
39
39
 
40
- Requires React components created with `React.memo` to have a `displayName` property for better debugging in React DevTools.
40
+ Requires React components created with `React.memo` to have a `displayName` property that matches the component name for better debugging in React DevTools.
41
41
 
42
42
  **Options:**
43
43
 
44
- - `ignoreTranspilerName` (boolean, default: `false`): When true, ignores components that get displayName from variable name (many transpilers add this automatically).
44
+ - `ignoreName` (string | string[], default: `[]`): Component names allowed to have a `displayName` different from their variable name.
45
45
 
46
46
  **Examples:**
47
47
 
@@ -53,6 +53,7 @@ const MyComponent = React.memo(() => <div>Hello</div>);
53
53
  const MyComponent = React.memo(() => <div>Hello</div>);
54
54
  MyComponent.displayName = 'MyComponent';
55
55
 
56
- // ✅ Good (with ignoreTranspilerName: true)
56
+ // ✅ Good (mismatch allowed with ignoreName)
57
57
  const MyComponent = React.memo(() => <div>Hello</div>);
58
+ MyComponent.displayName = 'SomeOtherName';
58
59
  ```