@coderwyd/eslint-config 2.3.2 → 2.3.4

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/README.md CHANGED
@@ -40,8 +40,6 @@ const { defineConfig } = require('@coderwyd/eslint-config')
40
40
  module.exports = defineConfig()
41
41
  ```
42
42
 
43
- > Note that `.eslintignore` no longer works in Flat config, see [customization](#customization) for more details.
44
-
45
43
  ### Add script for package.json
46
44
 
47
45
  For example:
@@ -104,16 +102,18 @@ If you want to apply lint and auto-fix before every commit, you can add the foll
104
102
  }
105
103
  }
106
104
  ```
105
+
107
106
  and then
108
107
 
109
108
  ```bash
110
109
  npm i -D lint-staged simple-git-hooks
111
110
  ```
111
+
112
112
  ## Options
113
113
 
114
114
  ### interface Options
115
115
 
116
- ```ts
116
+ ````ts
117
117
  interface OptionsConfig {
118
118
  /**
119
119
  * The current working directory
@@ -252,7 +252,7 @@ interface OptionsConfig {
252
252
  */
253
253
  isInEditor?: boolean
254
254
  }
255
- ```
255
+ ````
256
256
 
257
257
  ## Thanks
258
258
 
package/dist/cli.cjs CHANGED
@@ -46,32 +46,33 @@ var import_parse_gitignore = __toESM(require("parse-gitignore"), 1);
46
46
  var import_picocolors = __toESM(require("picocolors"), 1);
47
47
 
48
48
  // package.json
49
- var version = "2.3.2";
49
+ var version = "2.3.4";
50
50
  var devDependencies = {
51
51
  "@antfu/ni": "^0.21.12",
52
- "@types/eslint": "^8.56.6",
52
+ "@eslint/config-inspector": "^0.4.6",
53
+ "@types/eslint": "^8.56.9",
53
54
  "@types/fs-extra": "^11.0.4",
54
- "@types/node": "^20.11.30",
55
+ "@types/node": "^20.12.7",
55
56
  "@types/prompts": "^2.4.9",
56
57
  "@types/yargs": "^17.0.32",
57
- "@unocss/eslint-plugin": "^0.58.7",
58
+ "@unocss/eslint-plugin": "^0.59.2",
58
59
  bumpp: "^9.4.0",
59
- eslint: "9.0.0-rc.0",
60
- "eslint-flat-config-viewer": "^0.1.14",
60
+ eslint: "9.0.0",
61
61
  "eslint-plugin-react": "^7.34.1",
62
62
  "eslint-plugin-react-hooks": "^4.6.0",
63
63
  "eslint-plugin-react-refresh": "^0.4.6",
64
- "eslint-plugin-svelte": "^2.35.1",
64
+ "eslint-plugin-svelte": "2.36.0",
65
65
  execa: "^8.0.1",
66
66
  "fast-glob": "^3.3.2",
67
67
  "fs-extra": "^11.2.0",
68
68
  "lint-staged": "^15.2.2",
69
69
  rimraf: "^5.0.5",
70
70
  "simple-git-hooks": "^2.11.1",
71
- "svelte-eslint-parser": "^0.33.1",
71
+ svelte: "^4.2.13",
72
+ "svelte-eslint-parser": "^0.34.1",
72
73
  tsup: "^8.0.2",
73
- tsx: "^4.7.1",
74
- typescript: "^5.4.3"
74
+ tsx: "^4.7.2",
75
+ typescript: "^5.4.5"
75
76
  };
76
77
 
77
78
  // src/cli/constants.ts
package/dist/cli.js CHANGED
@@ -17,32 +17,33 @@ import parse from "parse-gitignore";
17
17
  import c from "picocolors";
18
18
 
19
19
  // package.json
20
- var version = "2.3.2";
20
+ var version = "2.3.4";
21
21
  var devDependencies = {
22
22
  "@antfu/ni": "^0.21.12",
23
- "@types/eslint": "^8.56.6",
23
+ "@eslint/config-inspector": "^0.4.6",
24
+ "@types/eslint": "^8.56.9",
24
25
  "@types/fs-extra": "^11.0.4",
25
- "@types/node": "^20.11.30",
26
+ "@types/node": "^20.12.7",
26
27
  "@types/prompts": "^2.4.9",
27
28
  "@types/yargs": "^17.0.32",
28
- "@unocss/eslint-plugin": "^0.58.7",
29
+ "@unocss/eslint-plugin": "^0.59.2",
29
30
  bumpp: "^9.4.0",
30
- eslint: "9.0.0-rc.0",
31
- "eslint-flat-config-viewer": "^0.1.14",
31
+ eslint: "9.0.0",
32
32
  "eslint-plugin-react": "^7.34.1",
33
33
  "eslint-plugin-react-hooks": "^4.6.0",
34
34
  "eslint-plugin-react-refresh": "^0.4.6",
35
- "eslint-plugin-svelte": "^2.35.1",
35
+ "eslint-plugin-svelte": "2.36.0",
36
36
  execa: "^8.0.1",
37
37
  "fast-glob": "^3.3.2",
38
38
  "fs-extra": "^11.2.0",
39
39
  "lint-staged": "^15.2.2",
40
40
  rimraf: "^5.0.5",
41
41
  "simple-git-hooks": "^2.11.1",
42
- "svelte-eslint-parser": "^0.33.1",
42
+ svelte: "^4.2.13",
43
+ "svelte-eslint-parser": "^0.34.1",
43
44
  tsup: "^8.0.2",
44
- tsx: "^4.7.1",
45
- typescript: "^5.4.3"
45
+ tsx: "^4.7.2",
46
+ typescript: "^5.4.5"
46
47
  };
47
48
 
48
49
  // src/cli/constants.ts
package/dist/index.cjs CHANGED
@@ -70,7 +70,7 @@ var import_eslint_plugin_perfectionist = __toESM(require("eslint-plugin-perfecti
70
70
  async function comments() {
71
71
  return [
72
72
  {
73
- name: "coderwyd:eslint-comments",
73
+ name: "coderwyd/eslint-comments/rules",
74
74
  plugins: {
75
75
  "eslint-comments": import_eslint_plugin_eslint_comments.default
76
76
  },
@@ -158,7 +158,7 @@ async function ignores() {
158
158
  async function imports() {
159
159
  return [
160
160
  {
161
- name: "coderwyd:imports",
161
+ name: "coderwyd/imports/rules",
162
162
  plugins: {
163
163
  antfu: import_eslint_plugin_antfu.default,
164
164
  import: pluginImport
@@ -198,7 +198,7 @@ async function imports() {
198
198
  },
199
199
  {
200
200
  files: ["**/bin/**/*", `**/bin.${GLOB_SRC_EXT}`],
201
- name: "coderwyd:imports:bin",
201
+ name: "coderwyd/imports/disables/bin",
202
202
  rules: {
203
203
  "antfu/no-import-dist": "off",
204
204
  "antfu/no-import-node-modules-by-path": "off"
@@ -235,7 +235,7 @@ async function javascript(options = {}) {
235
235
  linterOptions: {
236
236
  reportUnusedDisableDirectives: true
237
237
  },
238
- name: "coderwyd:javascript",
238
+ name: "coderwyd/javascript/rules",
239
239
  plugins: {
240
240
  "unused-imports": import_eslint_plugin_unused_imports.default
241
241
  },
@@ -298,8 +298,8 @@ async function javascript(options = {}) {
298
298
  "no-multi-str": "error",
299
299
  "no-new": "error",
300
300
  "no-new-func": "error",
301
+ "no-new-native-nonconstructor": "error",
301
302
  "no-new-object": "error",
302
- "no-new-symbol": "error",
303
303
  "no-new-wrappers": "error",
304
304
  "no-obj-calls": "error",
305
305
  "no-octal": "error",
@@ -438,6 +438,7 @@ async function javascript(options = {}) {
438
438
  {
439
439
  args: "after-used",
440
440
  argsIgnorePattern: "^_",
441
+ ignoreRestSiblings: true,
441
442
  vars: "all",
442
443
  varsIgnorePattern: "^_"
443
444
  }
@@ -454,13 +455,14 @@ async function javascript(options = {}) {
454
455
  },
455
456
  {
456
457
  files: [`scripts/${GLOB_SRC}`, `cli.${GLOB_SRC_EXT}`],
457
- name: "coderwyd:scripts-overrides",
458
+ name: "coderwyd/javascript/disables/cli",
458
459
  rules: {
459
460
  "no-console": "off"
460
461
  }
461
462
  },
462
463
  {
463
464
  files: ["**/*.{test,spec}.js?(x)"],
465
+ name: "coderwyd/javascript/disables/test",
464
466
  rules: {
465
467
  "no-unused-expressions": "off"
466
468
  }
@@ -580,7 +582,7 @@ function getOverrides(options, key) {
580
582
  async function jsdoc() {
581
583
  return [
582
584
  {
583
- name: "coderwyd:jsdoc",
585
+ name: "coderwyd/jsdoc/rules",
584
586
  plugins: {
585
587
  jsdoc: await interopDefault(import("eslint-plugin-jsdoc"))
586
588
  },
@@ -619,7 +621,7 @@ async function jsonc(options = {}) {
619
621
  ]);
620
622
  return [
621
623
  {
622
- name: "coderwyd:jsonc:setup",
624
+ name: "coderwyd/jsonc/setup",
623
625
  plugins: {
624
626
  jsonc: pluginJsonc
625
627
  }
@@ -629,7 +631,7 @@ async function jsonc(options = {}) {
629
631
  languageOptions: {
630
632
  parser: parserJsonc
631
633
  },
632
- name: "coderwyd:jsonc:rules",
634
+ name: "coderwyd/jsonc/rules",
633
635
  rules: {
634
636
  "jsonc/no-bigint-literals": "error",
635
637
  "jsonc/no-binary-expression": "error",
@@ -689,7 +691,7 @@ async function jsonc(options = {}) {
689
691
  async function node() {
690
692
  return [
691
693
  {
692
- name: "coderwyd:node",
694
+ name: "coderwyd/node/rules",
693
695
  plugins: {
694
696
  node: import_eslint_plugin_n.default
695
697
  },
@@ -712,7 +714,7 @@ async function sortPackageJson() {
712
714
  return [
713
715
  {
714
716
  files: ["**/package.json"],
715
- name: "coderwyd:sort-package-json",
717
+ name: "coderwyd/sort/package-json",
716
718
  rules: {
717
719
  "jsonc/sort-array-values": [
718
720
  "error",
@@ -808,7 +810,7 @@ function sortTsconfig() {
808
810
  return [
809
811
  {
810
812
  files: ["**/tsconfig.json", "**/tsconfig.*.json"],
811
- name: "coderwyd:sort-tsconfig",
813
+ name: "coderwyd/sort/tsconfig-json",
812
814
  rules: {
813
815
  "jsonc/sort-keys": [
814
816
  "error",
@@ -940,14 +942,14 @@ async function prettier(rules = {}) {
940
942
  };
941
943
  const configs = [
942
944
  {
943
- name: "coderwyd:prettier:setup",
945
+ name: "coderwyd/prettier/setup",
944
946
  plugins: {
945
947
  prettier: pluginPrettier
946
948
  }
947
949
  },
948
950
  {
949
951
  files: GLOB_PRETTIER_LINT,
950
- name: "coderwyd:prettier:rules",
952
+ name: "coderwyd/prettier/rules",
951
953
  rules: {
952
954
  ...eslintRules,
953
955
  "prettier/prettier": ["warn", pRules],
@@ -1012,13 +1014,13 @@ async function typescript(options = {}) {
1012
1014
  ...parserOptions
1013
1015
  }
1014
1016
  },
1015
- name: `coderwyd:typescript:${typeAware ? "type-aware-parser" : "parser"}`
1017
+ name: `coderwyd/typescript/${typeAware ? "type-aware-parser" : "parser"}`
1016
1018
  };
1017
1019
  }
1018
1020
  return [
1019
1021
  {
1020
1022
  // Install the plugins without globs, so they can be configured separately.
1021
- name: "coderwyd:typescript:setup",
1023
+ name: "coderwyd/typescript/setup",
1022
1024
  plugins: {
1023
1025
  antfu: import_eslint_plugin_antfu.default,
1024
1026
  ts: pluginTs
@@ -1031,7 +1033,7 @@ async function typescript(options = {}) {
1031
1033
  ] : [makeParser(false, files)],
1032
1034
  {
1033
1035
  files,
1034
- name: "coderwyd:typescript:rules",
1036
+ name: "coderwyd/typescript/rules",
1035
1037
  rules: {
1036
1038
  ...renameRules(
1037
1039
  pluginTs.configs["eslint-recommended"].overrides[0].rules,
@@ -1079,17 +1081,19 @@ async function typescript(options = {}) {
1079
1081
  ...overrides
1080
1082
  }
1081
1083
  },
1082
- {
1083
- files: filesTypeAware,
1084
- name: "coderwyd:typescript:rules-type-aware",
1085
- rules: {
1086
- ...tsconfigPath ? typeAwareRules : {},
1087
- ...overrides
1084
+ ...isTypeAware ? [
1085
+ {
1086
+ files: filesTypeAware,
1087
+ name: "coderwyd/typescript/rules-type-aware",
1088
+ rules: {
1089
+ ...tsconfigPath ? typeAwareRules : {},
1090
+ ...overrides
1091
+ }
1088
1092
  }
1089
- },
1093
+ ] : [],
1090
1094
  {
1091
1095
  files: ["**/*.d.ts"],
1092
- name: "coderwyd:typescript:dts-overrides",
1096
+ name: "coderwyd/typescript/disables/dts",
1093
1097
  rules: {
1094
1098
  "eslint-comments/no-unlimited-disable": "off",
1095
1099
  "import/no-duplicates": "off",
@@ -1099,14 +1103,14 @@ async function typescript(options = {}) {
1099
1103
  },
1100
1104
  {
1101
1105
  files: ["**/*.{test,spec}.ts?(x)"],
1102
- name: "coderwyd:typescript:tests-overrides",
1106
+ name: "coderwyd/typescript/disables/test",
1103
1107
  rules: {
1104
1108
  "no-unused-expressions": "off"
1105
1109
  }
1106
1110
  },
1107
1111
  {
1108
1112
  files: ["**/*.js", "**/*.cjs"],
1109
- name: "coderwyd:typescript:javascript-overrides",
1113
+ name: "coderwyd/typescript/disables/cjs",
1110
1114
  rules: {
1111
1115
  "ts/no-require-imports": "off",
1112
1116
  "ts/no-var-requires": "off"
@@ -1119,7 +1123,7 @@ async function typescript(options = {}) {
1119
1123
  async function unicorn() {
1120
1124
  return [
1121
1125
  {
1122
- name: "coderwyd:unicorn",
1126
+ name: "coderwyd/unicorn/rules",
1123
1127
  plugins: {
1124
1128
  unicorn: import_eslint_plugin_unicorn.default
1125
1129
  },
@@ -1227,7 +1231,7 @@ async function vue(options = {}) {
1227
1231
  watchEffect: "readonly"
1228
1232
  }
1229
1233
  },
1230
- name: "coderwyd:vue:setup",
1234
+ name: "coderwyd/vue/setup",
1231
1235
  plugins: {
1232
1236
  vue: pluginVue
1233
1237
  }
@@ -1247,7 +1251,7 @@ async function vue(options = {}) {
1247
1251
  sourceType: "module"
1248
1252
  }
1249
1253
  },
1250
- name: "coderwyd:vue:rules",
1254
+ name: "coderwyd/vue/rules",
1251
1255
  processor: pluginVue.processors[".vue"],
1252
1256
  rules: {
1253
1257
  ...pluginVue.configs.base.rules,
@@ -1373,6 +1377,7 @@ async function vue(options = {}) {
1373
1377
  }
1374
1378
 
1375
1379
  // src/configs/test.ts
1380
+ var _pluginTest;
1376
1381
  async function test(options = {}) {
1377
1382
  const { files = GLOB_TESTS, isInEditor: isInEditor2 = false, overrides = {} } = options;
1378
1383
  const [pluginVitest, pluginNoOnlyTests] = await Promise.all([
@@ -1380,23 +1385,24 @@ async function test(options = {}) {
1380
1385
  // @ts-expect-error missing types
1381
1386
  interopDefault(import("eslint-plugin-no-only-tests"))
1382
1387
  ]);
1388
+ _pluginTest = _pluginTest || {
1389
+ ...pluginVitest,
1390
+ rules: {
1391
+ ...pluginVitest.rules,
1392
+ // extend `test/no-only-tests` rule
1393
+ ...pluginNoOnlyTests.rules
1394
+ }
1395
+ };
1383
1396
  return [
1384
1397
  {
1385
- name: "coderwyd:test:setup",
1398
+ name: "coderwyd/test/setup",
1386
1399
  plugins: {
1387
- test: {
1388
- ...pluginVitest,
1389
- rules: {
1390
- ...pluginVitest.rules,
1391
- // extend `test/no-only-tests` rule
1392
- ...pluginNoOnlyTests.rules
1393
- }
1394
- }
1400
+ test: _pluginTest
1395
1401
  }
1396
1402
  },
1397
1403
  {
1398
1404
  files,
1399
- name: "coderwyd:test:rules",
1405
+ name: "coderwyd/test/rules",
1400
1406
  rules: {
1401
1407
  "node/prefer-global/process": "off",
1402
1408
  "test/consistent-test-it": [
@@ -1418,7 +1424,7 @@ async function test(options = {}) {
1418
1424
  async function perfectionist() {
1419
1425
  return [
1420
1426
  {
1421
- name: "coderwyd:perfectionist",
1427
+ name: "coderwyd/perfectionist/setup",
1422
1428
  plugins: {
1423
1429
  perfectionist: import_eslint_plugin_perfectionist.default
1424
1430
  }
@@ -1452,7 +1458,7 @@ async function react(options = {}) {
1452
1458
  );
1453
1459
  return [
1454
1460
  {
1455
- name: "coderwyd:react:setup",
1461
+ name: "coderwyd/react/setup",
1456
1462
  plugins: {
1457
1463
  react: pluginReact,
1458
1464
  "react-hooks": pluginReactHooks,
@@ -1473,7 +1479,7 @@ async function react(options = {}) {
1473
1479
  }
1474
1480
  }
1475
1481
  },
1476
- name: "coderwyd:react:rules",
1482
+ name: "coderwyd/react/rules",
1477
1483
  rules: {
1478
1484
  // recommended rules react-hooks
1479
1485
  "react-hooks/exhaustive-deps": "warn",
@@ -1526,7 +1532,7 @@ async function unocss(options = {}) {
1526
1532
  ]);
1527
1533
  return [
1528
1534
  {
1529
- name: "coderwyd:unocss",
1535
+ name: "coderwyd/unocss/rules",
1530
1536
  plugins: {
1531
1537
  unocss: pluginUnoCSS
1532
1538
  },
@@ -1572,7 +1578,7 @@ async function formatter(options = {}, prettierRules2 = {}) {
1572
1578
  languageOptions: {
1573
1579
  parser: parserPlain
1574
1580
  },
1575
- name: `coderwyd:formatter:${parser}`,
1581
+ name: `coderwyd/formatter/${parser}`,
1576
1582
  plugins: {
1577
1583
  prettier: pluginPrettier
1578
1584
  },
@@ -1587,7 +1593,7 @@ async function formatter(options = {}, prettierRules2 = {}) {
1587
1593
  }
1588
1594
  const configs = [
1589
1595
  {
1590
- name: "coderwyd:formatter:setup",
1596
+ name: "coderwyd/formatter/setup",
1591
1597
  plugins: {
1592
1598
  prettier: pluginPrettier
1593
1599
  }
@@ -1635,7 +1641,7 @@ async function svelte(options = {}) {
1635
1641
  ]);
1636
1642
  return [
1637
1643
  {
1638
- name: "coderwyd:svelte:setup",
1644
+ name: "coderwyd/svelte/setup",
1639
1645
  plugins: {
1640
1646
  svelte: pluginSvelte
1641
1647
  }
@@ -1651,7 +1657,7 @@ async function svelte(options = {}) {
1651
1657
  ) : null
1652
1658
  }
1653
1659
  },
1654
- name: "coderwyd:svelte:rules",
1660
+ name: "coderwyd/svelte/rules",
1655
1661
  processor: pluginSvelte.processors[".svelte"],
1656
1662
  rules: {
1657
1663
  "import/no-mutable-exports": "off",
@@ -1664,7 +1670,7 @@ async function svelte(options = {}) {
1664
1670
  caughtErrors: "none",
1665
1671
  ignoreRestSiblings: true,
1666
1672
  vars: "all",
1667
- varsIgnorePattern: "^\\$\\$Props$"
1673
+ varsIgnorePattern: "^(\\$\\$Props$|\\$\\$Events$|\\$\\$Slots$)"
1668
1674
  }
1669
1675
  ],
1670
1676
  "svelte/comment-directive": "error",
@@ -1694,7 +1700,7 @@ async function svelte(options = {}) {
1694
1700
  args: "after-used",
1695
1701
  argsIgnorePattern: "^_",
1696
1702
  vars: "all",
1697
- varsIgnorePattern: "^(_|\\$\\$Props$)"
1703
+ varsIgnorePattern: "^(_|\\$\\$Props$|\\$\\$Events$|\\$\\$Slots$)"
1698
1704
  }
1699
1705
  ],
1700
1706
  ...{
@@ -1727,7 +1733,7 @@ async function tailwindcss(options = {}) {
1727
1733
  );
1728
1734
  return [
1729
1735
  {
1730
- name: "coderwyd:tailwindcss",
1736
+ name: "coderwyd/tailwindcss/rules",
1731
1737
  plugins: {
1732
1738
  tailwindcss: pluginTailwindcss
1733
1739
  },