eslint-plugin-react-dom 2.0.0-next.47 → 2.0.0-next.48
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/index.d.ts +6 -2
- package/dist/index.js +21 -3
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { CamelCase } from 'string-ts';
|
|
1
2
|
import * as _typescript_eslint_utils_ts_eslint from '@typescript-eslint/utils/ts-eslint';
|
|
2
3
|
import { RulePreset } from '@eslint-react/kit';
|
|
3
4
|
|
|
5
|
+
declare const RULE_NAME = "no-missing-button-type";
|
|
6
|
+
type MessageID = CamelCase<typeof RULE_NAME> | "addButtonType";
|
|
7
|
+
|
|
4
8
|
declare const _default: {
|
|
5
9
|
configs: {
|
|
6
10
|
recommended: {
|
|
@@ -16,7 +20,7 @@ declare const _default: {
|
|
|
16
20
|
readonly "no-find-dom-node": _typescript_eslint_utils_ts_eslint.RuleModule<"noFindDomNode", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
17
21
|
readonly "no-flush-sync": _typescript_eslint_utils_ts_eslint.RuleModule<"noFlushSync", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
18
22
|
readonly "no-hydrate": _typescript_eslint_utils_ts_eslint.RuleModule<"noHydrate", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
19
|
-
readonly "no-missing-button-type": _typescript_eslint_utils_ts_eslint.RuleModule<
|
|
23
|
+
readonly "no-missing-button-type": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
20
24
|
readonly "no-missing-iframe-sandbox": _typescript_eslint_utils_ts_eslint.RuleModule<"noMissingIframeSandbox", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
21
25
|
readonly "no-namespace": _typescript_eslint_utils_ts_eslint.RuleModule<"noNamespace", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
22
26
|
readonly "no-render": _typescript_eslint_utils_ts_eslint.RuleModule<"noRender", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
@@ -48,7 +52,7 @@ declare const _default: {
|
|
|
48
52
|
readonly "no-find-dom-node": _typescript_eslint_utils_ts_eslint.RuleModule<"noFindDomNode", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
49
53
|
readonly "no-flush-sync": _typescript_eslint_utils_ts_eslint.RuleModule<"noFlushSync", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
50
54
|
readonly "no-hydrate": _typescript_eslint_utils_ts_eslint.RuleModule<"noHydrate", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
51
|
-
readonly "no-missing-button-type": _typescript_eslint_utils_ts_eslint.RuleModule<
|
|
55
|
+
readonly "no-missing-button-type": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
52
56
|
readonly "no-missing-iframe-sandbox": _typescript_eslint_utils_ts_eslint.RuleModule<"noMissingIframeSandbox", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
53
57
|
readonly "no-namespace": _typescript_eslint_utils_ts_eslint.RuleModule<"noNamespace", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
|
54
58
|
readonly "no-render": _typescript_eslint_utils_ts_eslint.RuleModule<"noRender", [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
|
package/dist/index.js
CHANGED
|
@@ -44,7 +44,7 @@ var settings = {
|
|
|
44
44
|
|
|
45
45
|
// package.json
|
|
46
46
|
var name2 = "eslint-plugin-react-dom";
|
|
47
|
-
var version = "2.0.0-next.
|
|
47
|
+
var version = "2.0.0-next.48";
|
|
48
48
|
function createJsxElementResolver(context) {
|
|
49
49
|
const { components, polymorphicPropName } = getSettingsFromContext(context);
|
|
50
50
|
return {
|
|
@@ -324,6 +324,7 @@ function getFix(context, node) {
|
|
|
324
324
|
}
|
|
325
325
|
var RULE_NAME6 = "no-missing-button-type";
|
|
326
326
|
var RULE_FEATURES6 = [];
|
|
327
|
+
var BUTTON_TYPES = ["button", "submit", "reset"];
|
|
327
328
|
var no_missing_button_type_default = createRule({
|
|
328
329
|
meta: {
|
|
329
330
|
type: "problem",
|
|
@@ -331,7 +332,9 @@ var no_missing_button_type_default = createRule({
|
|
|
331
332
|
description: "Enforces explicit `type` attribute for `button` elements.",
|
|
332
333
|
[Symbol.for("rule_features")]: RULE_FEATURES6
|
|
333
334
|
},
|
|
335
|
+
hasSuggestions: true,
|
|
334
336
|
messages: {
|
|
337
|
+
addButtonType: "Add 'type' attribute with value '{{type}}'.",
|
|
335
338
|
noMissingButtonType: "Add missing 'type' attribute on 'button' component."
|
|
336
339
|
},
|
|
337
340
|
schema: []
|
|
@@ -363,7 +366,10 @@ function create6(context) {
|
|
|
363
366
|
if (attributeValue.kind === "some" && typeof attributeValue.value !== "string") {
|
|
364
367
|
context.report({
|
|
365
368
|
messageId: "noMissingButtonType",
|
|
366
|
-
node: attributeNode
|
|
369
|
+
node: attributeNode,
|
|
370
|
+
suggest: getSuggest((type) => (fixer) => {
|
|
371
|
+
return fixer.replaceText(node, `${propNameOnJsx}="${type}"`);
|
|
372
|
+
})
|
|
367
373
|
});
|
|
368
374
|
}
|
|
369
375
|
return;
|
|
@@ -371,12 +377,24 @@ function create6(context) {
|
|
|
371
377
|
if (typeof customComponentProp?.defaultValue !== "string") {
|
|
372
378
|
context.report({
|
|
373
379
|
messageId: "noMissingButtonType",
|
|
374
|
-
node
|
|
380
|
+
node,
|
|
381
|
+
suggest: getSuggest((type) => (fixer) => {
|
|
382
|
+
const lastToken = context.sourceCode.getLastToken(node.openingElement);
|
|
383
|
+
if (lastToken == null) return null;
|
|
384
|
+
return fixer.insertTextBefore(lastToken, ` type="${type}"`);
|
|
385
|
+
})
|
|
375
386
|
});
|
|
376
387
|
}
|
|
377
388
|
}
|
|
378
389
|
};
|
|
379
390
|
}
|
|
391
|
+
function getSuggest(getFix4) {
|
|
392
|
+
return BUTTON_TYPES.map((type) => ({
|
|
393
|
+
messageId: "addButtonType",
|
|
394
|
+
data: { type },
|
|
395
|
+
fix: getFix4(type)
|
|
396
|
+
}));
|
|
397
|
+
}
|
|
380
398
|
var RULE_NAME7 = "no-missing-iframe-sandbox";
|
|
381
399
|
var RULE_FEATURES7 = [];
|
|
382
400
|
var validTypes = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-dom",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.48",
|
|
4
4
|
"description": "ESLint React's ESLint plugin for React DOM related rules.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"compare-versions": "^6.1.1",
|
|
42
42
|
"string-ts": "^2.2.1",
|
|
43
43
|
"ts-pattern": "^5.7.1",
|
|
44
|
-
"@eslint-react/ast": "2.0.0-next.
|
|
45
|
-
"@eslint-react/eff": "2.0.0-next.
|
|
46
|
-
"@eslint-react/
|
|
47
|
-
"@eslint-react/
|
|
48
|
-
"@eslint-react/var": "2.0.0-next.
|
|
49
|
-
"@eslint-react/
|
|
44
|
+
"@eslint-react/ast": "2.0.0-next.48",
|
|
45
|
+
"@eslint-react/eff": "2.0.0-next.48",
|
|
46
|
+
"@eslint-react/shared": "2.0.0-next.48",
|
|
47
|
+
"@eslint-react/kit": "2.0.0-next.48",
|
|
48
|
+
"@eslint-react/var": "2.0.0-next.48",
|
|
49
|
+
"@eslint-react/core": "2.0.0-next.48"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/react": "^19.1.8",
|