@kazupon/eslint-config 0.31.1 → 0.33.0

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.js CHANGED
@@ -7,6 +7,7 @@ import { mergeProcessors, processorPassThrough } from "eslint-merge-processors";
7
7
  //#region src/config.ts
8
8
  /**
9
9
  * define eslint configurations
10
+ *
10
11
  * @param {Awaitable<Linter.Config | Linter.Config[]>[]} configs eslint flat configurations
11
12
  * @returns {FlatConfigComposer} eslint flat configuration composer
12
13
  */
@@ -58,6 +59,7 @@ const GLOB_TESTS_TYPE = [`**/*.test-d.${GLOB_SRC_EXT}`, `**/*.spec-d.${GLOB_SRC_
58
59
  //#region src/utils.ts
59
60
  /**
60
61
  * load eslint plugin
62
+ *
61
63
  * @param {string} name plugin name
62
64
  * @returns {Promise<T>} loaded plugin
63
65
  */
@@ -70,7 +72,9 @@ async function loadPlugin(name) {
70
72
  }
71
73
  /**
72
74
  * get TypeScript parser
75
+ *
73
76
  * @description get the parser, which is `typescript-eslint` parser
77
+ *
74
78
  * @returns {Promise<typeof import('typescript-eslint')['parser']>} TypeScript parser
75
79
  */
76
80
  async function getTypeScriptParser() {
@@ -79,6 +83,7 @@ async function getTypeScriptParser() {
79
83
  }
80
84
  /**
81
85
  * get glob source files
86
+ *
82
87
  * @param {boolean} useTypeScript use TypeScript, default `false`
83
88
  * @returns {string[]} files
84
89
  */
@@ -95,6 +100,7 @@ function getGlobSourceFiles(useTypeScript = false) {
95
100
  /**
96
101
  * configure comments preset for the below plugins
97
102
  * - `@eslint-community/eslint-plugin-eslint-comments`
103
+ *
98
104
  * @param {CommentsOptions} options {@link CommentsOptions | comments preset options}
99
105
  * @returns {Promise<Linter.Config[]>} resolved eslint flat configurations
100
106
  */
@@ -109,7 +115,8 @@ async function comments(options = {}) {
109
115
  plugins: { "@eslint-community/eslint-comments": comments$1 },
110
116
  rules: {
111
117
  ...comments$1.configs.recommended.rules,
112
- ...directives.rules
118
+ ...directives.rules,
119
+ "@eslint-community/eslint-comments/require-description": ["error", { ignore: ["eslint-enable"] }]
113
120
  }
114
121
  }, ...kazupon.configs.comment.map((config) => ({
115
122
  ...config,
@@ -125,6 +132,7 @@ async function comments(options = {}) {
125
132
  //#region src/configs/css.ts
126
133
  /**
127
134
  * `@eslint/css` and overrides configuration options
135
+ *
128
136
  * @param {CssOptions & OverridesOptions} options
129
137
  * eslint css configuration options
130
138
  * @returns {Promise<Linter.Config[]>}
@@ -160,6 +168,7 @@ async function css(options = {}) {
160
168
  //#region src/configs/html.ts
161
169
  /**
162
170
  * `@html-eslint/eslint-plugin` and overrides configuration options
171
+ *
163
172
  * @param {HtmlOptions & OverridesOptions} options eslint configuration options for HTML
164
173
  * @returns {Promise<Linter.Config[]>}
165
174
  * eslint flat configurations with `@html-eslint/eslint-plugin` and overrides
@@ -205,6 +214,7 @@ async function html(options = {}) {
205
214
  }
206
215
  /**
207
216
  * Resolve template engine syntax for html-eslint parser
217
+ *
208
218
  * @param {HtmlOptions['templateEngineSyntax']} syntax - template engine syntax
209
219
  * @param {typeof import('@html-eslint/eslint-plugin').configs['flat/recommended']['languageOptions']['parser']} parser - html-eslint parser
210
220
  * @returns {{ [syntax: string]: string } | undefined} resolved template engine syntax, or undefined if no syntax is provided
@@ -229,6 +239,7 @@ const IMPORTS_FILES = [
229
239
  ];
230
240
  /**
231
241
  * `eslint-plugin-import-x`, `eslint-plugin-unused-imports` and overrides configuration options
242
+ *
232
243
  * @description if you want to use this preset, you need to put after `javascript` and `typescript` presets**
233
244
  * @param {ImportsOptions & OverridesOptions} options
234
245
  * import configuration options
@@ -292,6 +303,7 @@ async function imports(options = {}) {
292
303
  //#region src/configs/javascript.ts
293
304
  /**
294
305
  * `@eslint/js` and overrides configuration options
306
+ *
295
307
  * @param {JavaScriptOptions & OverridesOptions} options eslint configuration options for JavaScript
296
308
  * @returns {Promise<Linter.Config[]>} eslint flat configurations with `@eslint/js` and overrides
297
309
  */
@@ -330,8 +342,10 @@ async function javascript(options = {}) {
330
342
  //#region src/configs/jsdoc.ts
331
343
  /**
332
344
  * `eslint-plugin-jsdoc` and overrides configuration options
345
+ *
333
346
  * @param {JsDocOptions & OverridesOptions} options
334
347
  * eslint configuration options for JavaScript
348
+ *
335
349
  * @returns {Promise<Linter.Config[]>}
336
350
  * eslint flat configurations with `eslint-plugin-jsdoc` and overrides
337
351
  */
@@ -346,11 +360,54 @@ async function jsdoc(options = {}) {
346
360
  return preset;
347
361
  }
348
362
  return [{
349
- ignores: [GLOB_MARKDOWN],
363
+ files: [GLOB_SRC],
350
364
  ...jsdoc$1.configs[`flat/${resolvePreset()}`]
351
365
  }, {
352
366
  name: "@kazupon/jsdoc",
353
- rules: { ...overrideRules }
367
+ files: [GLOB_SRC],
368
+ plugins: { jsdoc: jsdoc$1 },
369
+ rules: {
370
+ "jsdoc/require-jsdoc": ["error", {
371
+ publicOnly: true,
372
+ require: {
373
+ ArrowFunctionExpression: true,
374
+ ClassDeclaration: true,
375
+ ClassExpression: true,
376
+ FunctionDeclaration: true,
377
+ FunctionExpression: true,
378
+ MethodDefinition: true
379
+ },
380
+ contexts: [
381
+ "TSInterfaceDeclaration",
382
+ "TSTypeAliasDeclaration",
383
+ "TSPropertySignature",
384
+ "TSMethodSignature"
385
+ ]
386
+ }],
387
+ "jsdoc/require-description": ["error", { contexts: [
388
+ "ArrowFunctionExpression",
389
+ "ClassDeclaration",
390
+ "ClassExpression",
391
+ "FunctionDeclaration",
392
+ "FunctionExpression",
393
+ "MethodDefinition",
394
+ "PropertyDefinition",
395
+ "VariableDeclaration",
396
+ "TSInterfaceDeclaration",
397
+ "TSTypeAliasDeclaration",
398
+ "TSPropertySignature",
399
+ "TSMethodSignature"
400
+ ] }],
401
+ "jsdoc/tag-lines": [
402
+ "error",
403
+ "any",
404
+ {
405
+ startLines: 1,
406
+ applyToEndTag: false
407
+ }
408
+ ],
409
+ ...overrideRules
410
+ }
354
411
  }];
355
412
  }
356
413
 
@@ -358,6 +415,7 @@ async function jsdoc(options = {}) {
358
415
  //#region src/configs/jsonc.ts
359
416
  /**
360
417
  * `eslint-plugin-jsonc` and overrides configuration options
418
+ *
361
419
  * @param {JsoncOptions & OverridesOptions} options
362
420
  * eslint jsonc configuration options for json, jsonc, json5
363
421
  * @returns {Promise<Linter.Config[]>}
@@ -403,6 +461,7 @@ async function jsonc(options = {}) {
403
461
  }
404
462
  /**
405
463
  * jsonc sort configurations
464
+ *
406
465
  * @returns {Linter.Config[]} jsonc sort configurations
407
466
  */
408
467
  function jsoncSort() {
@@ -485,6 +544,7 @@ function jsoncSort() {
485
544
  //#region src/configs/markdown.ts
486
545
  /**
487
546
  * `@eslint/markdown` and overrides configuration options
547
+ *
488
548
  * @param {MarkdownOptions & OverridesOptions} options
489
549
  * eslint unicorn configuration options
490
550
  * @returns {Promise<Linter.Config[]>}
@@ -535,6 +595,7 @@ const md = markdown;
535
595
  //#region src/configs/prettier.ts
536
596
  /**
537
597
  * `eslint-config-prettier` and overrides configuration options
598
+ *
538
599
  * @param {PrettierOptions & OverridesOptions} options
539
600
  * eslint configuration options for Prettier
540
601
  * @returns {Promise<Linter.Config[]>}
@@ -556,6 +617,7 @@ async function prettier(options = {}) {
556
617
  //#region src/configs/promise.ts
557
618
  /**
558
619
  * `eslint-plugin-promise` and overrides configuration options
620
+ *
559
621
  * @param {PromiseOptions & OverridesOptions} options
560
622
  * eslint promise configuration options
561
623
  * @returns {Promise<Linter.Config[]>}
@@ -577,6 +639,7 @@ async function promise(options = {}) {
577
639
  //#region src/configs/react.ts
578
640
  /**
579
641
  * `eslint-plugin-react` and overrides configuration options
642
+ *
580
643
  * @param {ReactOptions & OverridesOptions} options
581
644
  * eslint react configuration options for regular expressions
582
645
  * @returns {Promise<Linter.Config[]>}
@@ -625,6 +688,7 @@ async function react(options = {}) {
625
688
  //#region src/configs/regexp.ts
626
689
  /**
627
690
  * `eslint-plugin-regexp` and overrides configuration options
691
+ *
628
692
  * @param {RegexpOptions & OverridesOptions} options
629
693
  * eslint regexp configuration options for regular expressions
630
694
  * @returns {Promise<Linter.Config[]>}
@@ -647,6 +711,7 @@ async function regexp(options = {}) {
647
711
  //#region src/configs/stylistic.ts
648
712
  /**
649
713
  * `@stylistic/eslint-plugin` and overrides configuration options
714
+ *
650
715
  * @param {StylisticOptions & OverridesOptions} options
651
716
  * stylistic eslint plugin configuration options
652
717
  * @returns {Promise<Linter.Config[]>}
@@ -692,6 +757,7 @@ async function stylistic(options = {}) {
692
757
  //#region src/configs/svelte.ts
693
758
  /**
694
759
  * `eslint-plugin-svelte` and overrides configuration options
760
+ *
695
761
  * @param {SvelteScriptOptions & TypeScriptOptions & OverridesOptions} options
696
762
  * eslint configuration options for Vue
697
763
  * @returns {Promise<Linter.Config[]>}
@@ -728,6 +794,7 @@ async function svelte(options = {}) {
728
794
  //#region src/configs/toml.ts
729
795
  /**
730
796
  * `eslint-plugin-yml` and overrides configuration options
797
+ *
731
798
  * @param {YmlOptions & OverridesOptions} options
732
799
  * eslint yml configuration options for yml, yaml
733
800
  * @returns {Promise<Linter.Config[]>}
@@ -758,6 +825,7 @@ async function toml(options = {}) {
758
825
  //#region src/configs/typescript.ts
759
826
  /**
760
827
  * `typescript-eslint` and overrides configuration options
828
+ *
761
829
  * @param {TypeScriptOptions & OverridesOptions} options
762
830
  * eslint configuration options for TypeScript
763
831
  * @returns {Promise<Linter.FlatConfig[]>}
@@ -820,6 +888,13 @@ async function typescript(options = {}) {
820
888
  varsIgnorePattern: "^_",
821
889
  ignoreRestSiblings: true
822
890
  }],
891
+ "@typescript-eslint/ban-ts-comment": ["error", {
892
+ minimumDescriptionLength: 10,
893
+ "ts-check": false,
894
+ "ts-expect-error": "allow-with-description",
895
+ "ts-ignore": "allow-with-description",
896
+ "ts-nocheck": "allow-with-description"
897
+ }],
823
898
  ...overrideRules
824
899
  }
825
900
  }
@@ -830,6 +905,7 @@ async function typescript(options = {}) {
830
905
  //#region src/configs/unicorn.ts
831
906
  /**
832
907
  * `eslint-plugin-unicorn` and overrides configuration options
908
+ *
833
909
  * @param {UnicornOptions & OverridesOptions} options
834
910
  * eslint unicorn configuration options
835
911
  * @returns {Promise<Linter.Config[]>}
@@ -853,6 +929,7 @@ async function unicorn(options = {}) {
853
929
  //#region src/configs/vitest.ts
854
930
  /**
855
931
  * `@vitest/eslint-plugin` and overrides configuration options
932
+ *
856
933
  * @param {VitestOptions & OverridesOptions} options
857
934
  * eslint vitest configuration options
858
935
  * @returns {Promise<Linter.Config[]>}
@@ -887,6 +964,7 @@ async function vitest(options = {}) {
887
964
  //#region src/configs/vue.ts
888
965
  /**
889
966
  * `eslint-plugin-vue`, `eslint-plugin-vue-composable`, `eslint-plugin-vue-eslint-plugin-vuejs-accessibility` and overrides configuration options
967
+ *
890
968
  * @param {VueScriptOptions & TypeScriptOptions & OverridesOptions} options
891
969
  * eslint configuration options for Vue
892
970
  * @returns {Promise<Linter.Config[]>}
@@ -965,6 +1043,7 @@ async function vue(options = {}) {
965
1043
  //#region src/configs/yml.ts
966
1044
  /**
967
1045
  * `eslint-plugin-yml` and overrides configuration options
1046
+ *
968
1047
  * @param {YmlOptions & OverridesOptions} options
969
1048
  * eslint yml configuration options for yml, yaml
970
1049
  * @returns {Promise<Linter.Config[]>}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kazupon/eslint-config",
3
3
  "description": "ESLint config for @kazupon",
4
- "version": "0.31.1",
4
+ "version": "0.33.0",
5
5
  "author": {
6
6
  "email": "kawakazu80@gmail.com",
7
7
  "name": "kazuya kawaguchi"
@@ -50,17 +50,17 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
53
- "@eslint/js": "^9.28.0",
54
- "@kazupon/eslint-plugin": "^0.4.0",
53
+ "@eslint/js": "^9.32.0",
54
+ "@kazupon/eslint-plugin": "^0.5.0",
55
55
  "@kazupon/jts-utils": "^0.6.0",
56
56
  "@stylistic/eslint-plugin": "^4.4.1",
57
57
  "eslint-flat-config-utils": "^2.1.0",
58
58
  "eslint-merge-processors": "^2.0.0",
59
- "globals": "^16.2.0"
59
+ "globals": "^16.3.0"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@eslint/css": ">=0.5.0",
63
- "@eslint/markdown": ">=6.1.0",
63
+ "@eslint/markdown": ">=7.0.0",
64
64
  "@html-eslint/eslint-plugin": ">=0.41.0",
65
65
  "@intlify/eslint-plugin-vue-i18n": ">=4.0.0",
66
66
  "@vitest/eslint-plugin": ">=1.0.0",
@@ -68,7 +68,7 @@
68
68
  "eslint-config-prettier": ">=9.1.0",
69
69
  "eslint-import-resolver-typescript": ">=3.6.0",
70
70
  "eslint-plugin-import": ">=2.31.0",
71
- "eslint-plugin-jsdoc": ">=48.5.0",
71
+ "eslint-plugin-jsdoc": ">=51.0.0",
72
72
  "eslint-plugin-jsonc": ">=2.16.0",
73
73
  "eslint-plugin-module-interop": ">=0.3.0",
74
74
  "eslint-plugin-promise": ">=6.4.0",
@@ -172,48 +172,48 @@
172
172
  }
173
173
  },
174
174
  "devDependencies": {
175
- "@eslint/compat": "^1.2.9",
176
- "@eslint/css": "^0.8.1",
177
- "@eslint/markdown": "^6.5.0",
178
- "@html-eslint/eslint-plugin": "^0.41.0",
175
+ "@eslint/compat": "^1.3.1",
176
+ "@eslint/css": "^0.9.0",
177
+ "@eslint/markdown": "^7.1.0",
178
+ "@html-eslint/eslint-plugin": "^0.43.1",
179
179
  "@intlify/eslint-plugin-vue-i18n": "^4.0.1",
180
180
  "@kazupon/prettier-config": "^0.1.1",
181
181
  "@types/eslint": "^9.6.1",
182
- "@types/node": "^22.15.30",
183
- "@vitest/eslint-plugin": "^1.2.1",
184
- "bumpp": "^10.1.1",
185
- "eslint": "^9.28.0",
186
- "eslint-config-prettier": "^10.1.5",
187
- "eslint-import-resolver-typescript": "^4.4.3",
188
- "eslint-plugin-import": "^2.31.0",
189
- "eslint-plugin-jsdoc": "^50.7.1",
182
+ "@types/node": "^22.16.5",
183
+ "@vitest/eslint-plugin": "^1.3.4",
184
+ "bumpp": "^10.2.1",
185
+ "eslint": "^9.32.0",
186
+ "eslint-config-prettier": "^10.1.8",
187
+ "eslint-import-resolver-typescript": "^4.4.4",
188
+ "eslint-plugin-import": "^2.32.0",
189
+ "eslint-plugin-jsdoc": "^52.0.0",
190
190
  "eslint-plugin-jsonc": "^2.20.1",
191
191
  "eslint-plugin-module-interop": "^0.3.1",
192
192
  "eslint-plugin-promise": "^7.2.1",
193
193
  "eslint-plugin-react": "^7.37.5",
194
194
  "eslint-plugin-react-hooks": "^5.2.0",
195
195
  "eslint-plugin-react-refresh": "^0.4.20",
196
- "eslint-plugin-regexp": "^2.8.0",
196
+ "eslint-plugin-regexp": "^2.9.0",
197
197
  "eslint-plugin-svelte": "^2.46.1",
198
198
  "eslint-plugin-toml": "^0.12.0",
199
199
  "eslint-plugin-unicorn": "^59.0.1",
200
200
  "eslint-plugin-unused-imports": "^4.1.4",
201
- "eslint-plugin-vue": "^10.2.0",
201
+ "eslint-plugin-vue": "^10.3.0",
202
202
  "eslint-plugin-vue-composable": "^1.0.0",
203
- "eslint-plugin-vue-scoped-css": "^2.10.0",
203
+ "eslint-plugin-vue-scoped-css": "^2.11.0",
204
204
  "eslint-plugin-vuejs-accessibility": "^2.4.1",
205
205
  "eslint-plugin-yml": "^1.18.0",
206
- "eslint-typegen": "^2.2.0",
206
+ "eslint-typegen": "^2.3.0",
207
207
  "gh-changelogen": "^0.2.8",
208
- "jiti": "^2.4.2",
209
- "knip": "^5.60.2",
210
- "lint-staged": "^16.1.0",
211
- "prettier": "^3.5.3",
212
- "svelte": "^5.33.17",
213
- "tsdown": "^0.12.7",
208
+ "jiti": "^2.5.1",
209
+ "knip": "^5.62.0",
210
+ "lint-staged": "^16.1.2",
211
+ "prettier": "^3.6.2",
212
+ "svelte": "^5.37.1",
213
+ "tsdown": "^0.13.0",
214
214
  "typescript": "^5.8.3",
215
- "typescript-eslint": "^8.33.1",
216
- "vitest": "^3.2.2"
215
+ "typescript-eslint": "^8.38.0",
216
+ "vitest": "^3.2.4"
217
217
  },
218
218
  "prettier": "@kazupon/prettier-config",
219
219
  "lint-staged": {
@@ -237,11 +237,11 @@
237
237
  "fix": "pnpm run --parallel --color \"/^fix:/\"",
238
238
  "fix:eslint": "eslint . --fix",
239
239
  "fix:knip": "knip --fix --no-exit-code",
240
- "fix:prettier": "prettier . --write",
240
+ "fix:prettier": "prettier . --write --experimental-cli",
241
241
  "lint": "pnpm run --parallel --color \"/^lint:/\"",
242
242
  "lint:eslint": "eslint .",
243
243
  "lint:knip": "knip",
244
- "lint:prettier": "prettier . --check",
244
+ "lint:prettier": "prettier . --check --experimental-cli",
245
245
  "release": "bumpp --commit \"release: v%s\" --all --push --tag",
246
246
  "test": "vitest run --typecheck",
247
247
  "typecheck": "tsc -p .",