eslint-config-matsuri 4.1.0 → 4.1.2

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.
Files changed (2) hide show
  1. package/index.js +31 -15
  2. package/package.json +3 -10
package/index.js CHANGED
@@ -39,6 +39,28 @@ const tseslintStylisticTypeCheckedRules = getRulesFromConfigArray(
39
39
  /** @type { import("eslint").Linter.FlatConfig[] } */
40
40
  const config = [
41
41
  {
42
+ linterOptions: {
43
+ reportUnusedDisableDirectives: true,
44
+ },
45
+ /**
46
+ * NOTE: pluginsをfilesと紐付けると、利用側でのルール変更が困難になる。
47
+ *
48
+ * Pluginをfilesを指定したconfigで読み込むとfilesと紐づいてしまうため、
49
+ * eslint-config-matsuriを利用する側でルールを上書きしようとした際に、filesまたはpluginの再指定が必要になってしまう。
50
+ * また、pluginがlanguageOptionsなどに依存している場合、その指定も必要になる。
51
+ * さらには、eslint側のアップデートで、同じpluginを再指定するとエラーが出るようになった。
52
+ * このため、pluginをfiles指定なしで、まとめて読み込んでおく。
53
+ */
54
+ plugins: {
55
+ "sort-imports-es6-autofix": pluginSortImports,
56
+ "@typescript-eslint": tseslint.plugin,
57
+ "unused-imports": pluginUnusedImport,
58
+ "css-reorder": pluginCssReorder,
59
+ "jsx-a11y": pluginJsxA11y,
60
+ react: pluginReact,
61
+ "react-hooks": pluginReactHooks,
62
+ "react-refresh": pluginReactRefresh,
63
+ },
42
64
  ignores: [
43
65
  "**/node_modules",
44
66
  "**/public",
@@ -61,9 +83,7 @@ const config = [
61
83
  ],
62
84
  },
63
85
  {
64
- linterOptions: {
65
- reportUnusedDisableDirectives: true,
66
- },
86
+ files: ["**/*.js"],
67
87
  languageOptions: {
68
88
  ecmaVersion: "latest",
69
89
  sourceType: "module",
@@ -73,9 +93,6 @@ const config = [
73
93
  ...globals.node,
74
94
  },
75
95
  },
76
- plugins: {
77
- "sort-imports-es6-autofix": pluginSortImports,
78
- },
79
96
  rules: {
80
97
  ...js.configs.recommended.rules,
81
98
  "no-console": ["error", { allow: ["error", "warn"] }],
@@ -113,15 +130,6 @@ const config = [
113
130
  version: "detect",
114
131
  },
115
132
  },
116
- plugins: {
117
- "@typescript-eslint": tseslint.plugin,
118
- "unused-imports": pluginUnusedImport,
119
- "css-reorder": pluginCssReorder,
120
- "jsx-a11y": pluginJsxA11y,
121
- react: pluginReact,
122
- "react-hooks": pluginReactHooks,
123
- "react-refresh": pluginReactRefresh,
124
- },
125
133
  rules: {
126
134
  ...tseslintRecommendedTypeChckedRules,
127
135
  ...tseslintStylisticTypeCheckedRules,
@@ -207,6 +215,14 @@ const config = [
207
215
  // 字幕を付加することはあまり想定されず、無意味なtrack要素の挿入を招くため無効化する
208
216
  "jsx-a11y/media-has-caption": "off",
209
217
 
218
+ "jsx-a11y/label-has-associated-control": [
219
+ "error",
220
+ {
221
+ // デフォルトの2だと、そこそこラベルのテキストが検知できないケースがあるため。
222
+ depth: 7,
223
+ },
224
+ ],
225
+
210
226
  /**
211
227
  * settings for unused-imports
212
228
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-matsuri",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "index.js",
@@ -23,25 +23,18 @@
23
23
  "peerDependencies": {
24
24
  "eslint": "^8.43.0"
25
25
  },
26
- "devDependencies": {
27
- "@emotion/react": "11.11.3",
28
- "@types/react": "18.2.58",
29
- "eslint": "8.57.0",
30
- "react": "18.2.0",
31
- "typescript": "5.3.3"
32
- },
33
26
  "dependencies": {
34
27
  "@eslint/js": "8.57.0",
35
28
  "eslint-config-prettier": "9.1.0",
36
29
  "eslint-plugin-css-reorder": "0.5.1",
37
30
  "eslint-plugin-jsx-a11y": "6.8.0",
38
- "eslint-plugin-react": "7.33.2",
31
+ "eslint-plugin-react": "7.34.0",
39
32
  "eslint-plugin-react-hooks": "4.6.0",
40
33
  "eslint-plugin-react-refresh": "0.4.5",
41
34
  "eslint-plugin-sort-imports-es6-autofix": "0.6.0",
42
35
  "eslint-plugin-storybook": "0.8.0",
43
36
  "eslint-plugin-unused-imports": "3.1.0",
44
37
  "globals": "14.0.0",
45
- "typescript-eslint": "7.0.2"
38
+ "typescript-eslint": "7.1.1"
46
39
  }
47
40
  }