@agilebot/eslint-config 0.4.0 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cli.js +1 -1
- package/dist/index.js +28 -19
- package/package.json +3 -3
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license @agilebot/eslint-config v0.4.
|
2
|
+
* @license @agilebot/eslint-config v0.4.2
|
3
3
|
*
|
4
4
|
* Copyright (c) Agilebot, Inc. and its affiliates.
|
5
5
|
*
|
@@ -335,7 +335,7 @@ function imports(opts) {
|
|
335
335
|
noUselessIndex: true
|
336
336
|
}
|
337
337
|
],
|
338
|
-
"import-x/no-cycle": "error",
|
338
|
+
"import-x/no-cycle": (0, import_eslint_utils2.isInEditor)() ? "off" : "error",
|
339
339
|
"import-x/newline-after-import": "error",
|
340
340
|
"import-x/first": "error",
|
341
341
|
"import-x/no-import-module-exports": "error",
|
@@ -460,15 +460,7 @@ function react(opts) {
|
|
460
460
|
extends: ["plugin:jsx-a11y/recommended"],
|
461
461
|
rules: {
|
462
462
|
// recommended rules from eslint-plugin-react
|
463
|
-
"react/jsx-no-duplicate-props": "error",
|
464
|
-
"react/jsx-no-undef": "error",
|
465
|
-
"react/jsx-uses-react": "error",
|
466
|
-
"react/jsx-uses-vars": "error",
|
467
463
|
"react/no-is-mounted": "error",
|
468
|
-
"react/no-unescaped-entities": "error",
|
469
|
-
"react/no-unknown-property": "error",
|
470
|
-
"react/react-in-jsx-scope": "error",
|
471
|
-
"react/require-render-return": "error",
|
472
464
|
// recommended rules from @eslint-react
|
473
465
|
"@eslint-react/no-direct-mutation-state": "error",
|
474
466
|
// Children API
|
@@ -504,6 +496,8 @@ function react(opts) {
|
|
504
496
|
"@eslint-react/no-access-state-in-setstate": "error",
|
505
497
|
"@eslint-react/prefer-shorthand-fragment": "error",
|
506
498
|
"@eslint-react/no-missing-component-display-name": "error",
|
499
|
+
"@eslint-react/no-prop-types": "error",
|
500
|
+
"@eslint-react/no-useless-fragment": "error",
|
507
501
|
// recommended rules from @eslint-react/dom
|
508
502
|
"@eslint-react/dom/no-children-in-void-dom-elements": "error",
|
509
503
|
"@eslint-react/dom/no-unsafe-target-blank": "error",
|
@@ -519,9 +513,9 @@ function react(opts) {
|
|
519
513
|
"@eslint-react/naming-convention/component-name": "error",
|
520
514
|
"@eslint-react/naming-convention/use-state": "error",
|
521
515
|
// recommended rules from @eslint-react/web-api
|
522
|
-
"@eslint-react/web-api/no-leaked-interval": "
|
523
|
-
"@eslint-react/web-api/no-leaked-timeout": "
|
524
|
-
"@eslint-react/web-api/no-leaked-event-listener": "
|
516
|
+
"@eslint-react/web-api/no-leaked-interval": "warn",
|
517
|
+
"@eslint-react/web-api/no-leaked-timeout": "warn",
|
518
|
+
"@eslint-react/web-api/no-leaked-event-listener": "warn",
|
525
519
|
// 以下是自定义规则
|
526
520
|
"react/jsx-handler-names": [
|
527
521
|
"error",
|
@@ -531,8 +525,11 @@ function react(opts) {
|
|
531
525
|
checkLocalVariables: true
|
532
526
|
}
|
533
527
|
],
|
528
|
+
"react/no-unused-prop-types": "error",
|
529
|
+
// Stylistic rules are not supported by @eslint-react. Use dprint or @stylistic instead.
|
530
|
+
"@stylistic/jsx-self-closing-comp": "error",
|
534
531
|
// <App prop={'Hello'} />没必要,使用<App prop="Hello" />
|
535
|
-
"
|
532
|
+
"@stylistic/jsx-curly-brace-presence": [
|
536
533
|
"error",
|
537
534
|
{
|
538
535
|
props: "never",
|
@@ -540,10 +537,6 @@ function react(opts) {
|
|
540
537
|
propElementValues: "always"
|
541
538
|
}
|
542
539
|
],
|
543
|
-
// 禁止声明未使用的props
|
544
|
-
"react/no-unused-prop-types": "error",
|
545
|
-
"@eslint-react/no-useless-fragment": "error",
|
546
|
-
"@stylistic/jsx-self-closing-comp": "error",
|
547
540
|
"jsx-a11y/click-events-have-key-events": "off",
|
548
541
|
"jsx-a11y/no-static-element-interactions": "off",
|
549
542
|
"jsx-a11y/alt-text": "off"
|
@@ -555,6 +548,21 @@ function react(opts) {
|
|
555
548
|
}
|
556
549
|
};
|
557
550
|
}
|
551
|
+
function reactJsOnly() {
|
552
|
+
return {
|
553
|
+
rules: {
|
554
|
+
// The following can be enforced by TypeScript, no need to implement them
|
555
|
+
"react/jsx-no-duplicate-props": "error",
|
556
|
+
"react/jsx-no-undef": "error",
|
557
|
+
"react/jsx-uses-react": "error",
|
558
|
+
"react/jsx-uses-vars": "error",
|
559
|
+
"react/no-unescaped-entities": "error",
|
560
|
+
"react/no-unknown-property": "error",
|
561
|
+
"react/react-in-jsx-scope": "error",
|
562
|
+
"react/require-render-return": "error"
|
563
|
+
}
|
564
|
+
};
|
565
|
+
}
|
558
566
|
|
559
567
|
// src/configs/vue.ts
|
560
568
|
function vue(opts) {
|
@@ -843,7 +851,8 @@ function factory(root, options) {
|
|
843
851
|
jsOnly(),
|
844
852
|
(options == null ? void 0 : options.jsdoc) ? jsdoc({
|
845
853
|
ts: false
|
846
|
-
}) : {}
|
854
|
+
}) : {},
|
855
|
+
(options == null ? void 0 : options.react) ? reactJsOnly() : {}
|
847
856
|
)),
|
848
857
|
__spreadValues({
|
849
858
|
files: TS_EXTS.map((ext) => `*${ext}`)
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@agilebot/eslint-config",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.2",
|
4
4
|
"description": "Agilebot's ESLint config",
|
5
5
|
"bin": {
|
6
6
|
"eslint-agilebot": "bin/eslint-agilebot"
|
@@ -44,14 +44,14 @@
|
|
44
44
|
"eslint-plugin-vue": "^9.27.0",
|
45
45
|
"eslint-plugin-you-dont-need-lodash-underscore": "^6.13.0",
|
46
46
|
"vue-eslint-parser": "^9.4.3",
|
47
|
-
"@agilebot/eslint-utils": "0.4.
|
47
|
+
"@agilebot/eslint-utils": "0.4.2"
|
48
48
|
},
|
49
49
|
"devDependencies": {
|
50
50
|
"eslint-config-love": "^63.0.0"
|
51
51
|
},
|
52
52
|
"peerDependencies": {
|
53
53
|
"eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
|
54
|
-
"@agilebot/eslint-plugin": "0.4.
|
54
|
+
"@agilebot/eslint-plugin": "0.4.2"
|
55
55
|
},
|
56
56
|
"files": [
|
57
57
|
"bin",
|