@agilebot/eslint-config 0.4.1 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.4.1
2
+ * @license @agilebot/eslint-config v0.4.3
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.4.1
2
+ * @license @agilebot/eslint-config v0.4.3
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",
@@ -455,20 +455,13 @@ function react(opts) {
455
455
  "@eslint-react",
456
456
  "react-hooks",
457
457
  "jsx-a11y",
458
- "@stylistic"
458
+ "@stylistic",
459
+ "@agilebot"
459
460
  ],
460
461
  extends: ["plugin:jsx-a11y/recommended"],
461
462
  rules: {
462
463
  // 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
464
  "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
465
  // recommended rules from @eslint-react
473
466
  "@eslint-react/no-direct-mutation-state": "error",
474
467
  // Children API
@@ -504,6 +497,8 @@ function react(opts) {
504
497
  "@eslint-react/no-access-state-in-setstate": "error",
505
498
  "@eslint-react/prefer-shorthand-fragment": "error",
506
499
  "@eslint-react/no-missing-component-display-name": "error",
500
+ "@eslint-react/no-prop-types": "error",
501
+ "@eslint-react/no-useless-fragment": "error",
507
502
  // recommended rules from @eslint-react/dom
508
503
  "@eslint-react/dom/no-children-in-void-dom-elements": "error",
509
504
  "@eslint-react/dom/no-unsafe-target-blank": "error",
@@ -514,7 +509,7 @@ function react(opts) {
514
509
  // recommended rules from @eslint-react/hooks-extra
515
510
  "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn",
516
511
  // recommended rules react-hooks
517
- "react-hooks/rules-of-hooks": "error",
512
+ "@agilebot/react-rules-of-hooks": "error",
518
513
  // recommended rules from @eslint-react/naming-convention
519
514
  "@eslint-react/naming-convention/component-name": "error",
520
515
  "@eslint-react/naming-convention/use-state": "error",
@@ -531,8 +526,11 @@ function react(opts) {
531
526
  checkLocalVariables: true
532
527
  }
533
528
  ],
529
+ "react/no-unused-prop-types": "error",
530
+ // Stylistic rules are not supported by @eslint-react. Use dprint or @stylistic instead.
531
+ "@stylistic/jsx-self-closing-comp": "error",
534
532
  // <App prop={'Hello'} />没必要,使用<App prop="Hello" />
535
- "react/jsx-curly-brace-presence": [
533
+ "@stylistic/jsx-curly-brace-presence": [
536
534
  "error",
537
535
  {
538
536
  props: "never",
@@ -540,10 +538,6 @@ function react(opts) {
540
538
  propElementValues: "always"
541
539
  }
542
540
  ],
543
- // 禁止声明未使用的props
544
- "react/no-unused-prop-types": "error",
545
- "@eslint-react/no-useless-fragment": "error",
546
- "@stylistic/jsx-self-closing-comp": "error",
547
541
  "jsx-a11y/click-events-have-key-events": "off",
548
542
  "jsx-a11y/no-static-element-interactions": "off",
549
543
  "jsx-a11y/alt-text": "off"
@@ -555,6 +549,21 @@ function react(opts) {
555
549
  }
556
550
  };
557
551
  }
552
+ function reactJsOnly() {
553
+ return {
554
+ rules: {
555
+ // The following can be enforced by TypeScript, no need to implement them
556
+ "react/jsx-no-duplicate-props": "error",
557
+ "react/jsx-no-undef": "error",
558
+ "react/jsx-uses-react": "error",
559
+ "react/jsx-uses-vars": "error",
560
+ "react/no-unescaped-entities": "error",
561
+ "react/no-unknown-property": "error",
562
+ "react/react-in-jsx-scope": "error",
563
+ "react/require-render-return": "error"
564
+ }
565
+ };
566
+ }
558
567
 
559
568
  // src/configs/vue.ts
560
569
  function vue(opts) {
@@ -843,7 +852,8 @@ function factory(root, options) {
843
852
  jsOnly(),
844
853
  (options == null ? void 0 : options.jsdoc) ? jsdoc({
845
854
  ts: false
846
- }) : {}
855
+ }) : {},
856
+ (options == null ? void 0 : options.react) ? reactJsOnly() : {}
847
857
  )),
848
858
  __spreadValues({
849
859
  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.1",
3
+ "version": "0.4.3",
4
4
  "description": "Agilebot's ESLint config",
5
5
  "bin": {
6
6
  "eslint-agilebot": "bin/eslint-agilebot"
@@ -38,20 +38,19 @@
38
38
  "eslint-plugin-prettier": "^5.2.1",
39
39
  "eslint-plugin-promise": "^7.1.0",
40
40
  "eslint-plugin-react": "^7.35.0",
41
- "eslint-plugin-react-hooks": "^4.6.2",
42
41
  "eslint-plugin-unicorn": "^55.0.0",
43
42
  "eslint-plugin-unused-imports": "^4.1.3",
44
43
  "eslint-plugin-vue": "^9.27.0",
45
44
  "eslint-plugin-you-dont-need-lodash-underscore": "^6.13.0",
46
45
  "vue-eslint-parser": "^9.4.3",
47
- "@agilebot/eslint-utils": "0.4.1"
46
+ "@agilebot/eslint-utils": "0.4.3"
48
47
  },
49
48
  "devDependencies": {
50
49
  "eslint-config-love": "^63.0.0"
51
50
  },
52
51
  "peerDependencies": {
53
52
  "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
54
- "@agilebot/eslint-plugin": "0.4.1"
53
+ "@agilebot/eslint-plugin": "0.4.3"
55
54
  },
56
55
  "files": [
57
56
  "bin",