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.
- package/dist/configs/typescript.d.mts.map +1 -1
- package/dist/configs/typescript.mjs +2 -0
- package/dist/configs/typescript.mjs.map +1 -1
- package/dist/plugins/react-coding-style/rules/display-name.d.mts +2 -2
- package/dist/plugins/react-coding-style/rules/display-name.d.mts.map +1 -1
- package/dist/plugins/react-coding-style/rules/display-name.mjs +110 -30
- package/dist/plugins/react-coding-style/rules/display-name.mjs.map +1 -1
- package/dist/plugins/react-coding-style/rules/rules.d.mts +2 -2
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs +18 -9
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs.map +1 -1
- package/dist/rules/eslint-react-coding-style-rules.d.mts +1 -3
- package/dist/rules/eslint-react-coding-style-rules.d.mts.map +1 -1
- package/dist/rules/eslint-react-coding-style-rules.mjs +1 -1
- package/dist/rules/eslint-react-coding-style-rules.mjs.map +1 -1
- package/dist/rules/eslint-react-rules.d.mts +1 -1
- package/dist/rules/eslint-react-rules.mjs +1 -1
- package/dist/rules/eslint-react-rules.mjs.map +1 -1
- package/dist/types/rules/eslint-react-coding-style-rules.d.mts +21 -6
- package/dist/types/rules/eslint-react-coding-style-rules.d.mts.map +1 -1
- package/package.json +11 -9
- package/src/configs/typescript.mts +4 -0
- package/src/plugins/react-coding-style/README.md +4 -3
- package/src/plugins/react-coding-style/rules/display-name.mts +160 -38
- package/src/plugins/react-coding-style/rules/display-name.test.mts +70 -6
- package/src/plugins/react-coding-style/rules/shared.test.mts +148 -0
- package/src/plugins/react-coding-style/rules/use-memo-hooks-style-named.test.mts +47 -11
- package/src/plugins/react-coding-style/rules/use-memo-hooks-style-namespace.test.mts +47 -11
- package/src/plugins/react-coding-style/rules/use-memo-hooks-style.mts +24 -9
- package/src/rules/eslint-react-coding-style-rules.mts +1 -1
- package/src/rules/eslint-react-rules.mts +1 -1
- 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,
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
62
|
+
if (!isComponentDisplayNameAssignment(assignment, componentName)) {
|
|
63
|
+
context.report({
|
|
64
|
+
node: castDeepMutable(node),
|
|
65
|
+
messageId: 'missingDisplayName',
|
|
66
|
+
});
|
|
51
67
|
return;
|
|
52
68
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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: [{
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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":";;;;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,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;
|
|
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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"}
|
|
@@ -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
|
|
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', {
|
|
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;
|
|
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':
|
|
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':
|
|
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":";;AAEO,MAAM,gBAAgB,GAAG;AAC9B;;;;AAIG;AACH,IAAA,iCAAiC,EAAE,KAAK;AACxC,IAAA,oCAAoC,EAAE,KAAK;AAC3C,IAAA,gCAAgC,EAAE,KAAK;AACvC,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,yBAAyB,EAAE,KAAK;AAChC,IAAA,0BAA0B,EAAE,KAAK;AACjC,IAAA,+BAA+B,EAAE,KAAK;AACtC,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,wBAAwB,EAAE,KAAK;AAC/B,IAAA,8BAA8B,EAAE,KAAK;AACrC,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,mCAAmC,EAAE,KAAK;AAC1C,IAAA,iCAAiC,EAAE,KAAK;AACxC,IAAA,uBAAuB,EAAE,KAAK;AAC9B,IAAA,2BAA2B,EAAE,KAAK;AAElC,IAAA,2BAA2B,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACvD,IAAA,uBAAuB,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACnD,IAAA,sCAAsC,EAAE,iBAAiB,CAAC,OAAO,CAAC;;AAGlE,IAAA,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,CAAC;
|
|
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
|
|
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
|
-
* "
|
|
183
|
-
* "
|
|
184
|
-
* "
|
|
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
|
-
/**
|
|
194
|
-
|
|
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":"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,QAAQ,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC,CAAC;IAEH,KAAY,SAAS,GACjB,KAAK,GACL,MAAM,CAAC,QAAQ,GACf,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;CACvE;AAED;;;;;;;;;GASG;AACH,kBAAU,0BAA0B,CAAC;IACnC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,kBAAU,WAAW,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAY,OAAO,GAAG,QAAQ,CAAC;QAC7B;;;WAGG;QACH,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;KACrC,CAAC,CAAC;IAEH,KAAY,SAAS,GACjB,KAAK,GACL,MAAM,CAAC,QAAQ,GACf,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;CACvE;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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
- `
|
|
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
|
|
56
|
+
// ✅ Good (mismatch allowed with ignoreName)
|
|
57
57
|
const MyComponent = React.memo(() => <div>Hello</div>);
|
|
58
|
+
MyComponent.displayName = 'SomeOtherName';
|
|
58
59
|
```
|