@@ -6,34 +6,49 @@ import eslintPluginReactHooks from "eslint-plugin-react-hooks";
6
6
import globals from "globals" ;
7
7
import typescriptEslintParser from "@typescript-eslint/parser" ;
8
8
import typescriptEslintPlugin from "@typescript-eslint/eslint-plugin" ;
9
+ import eslintPluginJsdoc from "eslint-plugin-jsdoc" ;
9
10
import eslintPluginTsdoc from "eslint-plugin-tsdoc" ;
10
11
import { ELEMENTS , ELEMENT_TYPE_RULES , EXTERNAL_RULES } from "./boundaries.config.js" ;
12
+ import eslintJs from "@eslint/js" ;
11
13
12
14
/** @type { import("eslint").Linter.Config[] } */
13
15
export default [
14
16
{ ignores : [ ".husky/" , "coverage/" , "docs/" , "dist/" , "node_modules/" ] } ,
15
17
18
+ eslintJs . configs . recommended ,
16
19
eslintPluginImport . flatConfigs . recommended ,
17
20
...eslintConfigPreact . flat ,
18
21
19
22
{
20
23
files : [ "*.config.js" ] ,
21
- rules : { "import/no-named-as-default" : "off" , "import/no-unresolved" : "off" } ,
24
+ plugins : { jsdoc : eslintPluginJsdoc } ,
22
25
languageOptions : { globals : { ...globals . node } } ,
26
+ ...eslintPluginJsdoc . configs [ "flat/recommended-error" ] ,
27
+ rules : {
28
+ ...eslintPluginJsdoc . configs [ "flat/recommended-error" ] . rules ,
29
+ "import/no-named-as-default" : "off" ,
30
+ "import/no-unresolved" : "off" ,
31
+ } ,
32
+ settings : {
33
+ "import/core-modules" : [ "eslint-config-preact" , "eslint-plugin-boundaries" , "eslint-plugin-import" ] ,
34
+ } ,
23
35
} ,
24
36
25
37
{
26
38
files : [ "src/**/*.{ts,tsx}" ] ,
27
39
plugins : {
28
- "tsdoc" : eslintPluginTsdoc ,
29
40
"@typescript-eslint" : typescriptEslintPlugin ,
41
+ "jsdoc" : eslintPluginJsdoc ,
30
42
"react-hooks" : eslintPluginReactHooks ,
43
+ "tsdoc" : eslintPluginTsdoc ,
31
44
} ,
32
45
rules : {
33
46
...typescriptEslintPlugin . configs . recommended . rules ,
34
47
...typescriptEslintPlugin . configs . strict . rules ,
48
+ ...eslintPluginJsdoc . configs [ "flat/recommended-typescript-error" ] . rules ,
35
49
...eslintPluginReactHooks . configs . recommended . rules ,
36
50
51
+ // https://tsdoc.org/pages/packages/eslint-plugin-tsdoc/
37
52
"tsdoc/syntax" : "error" ,
38
53
39
54
// TypeScript already checks for duplicates: https://archive.eslint.org/docs/rules/no-dupe-class-members
@@ -52,6 +67,9 @@ export default [
52
67
"import/no-named-as-default-member" : "error" ,
53
68
"import/no-duplicates" : "error" ,
54
69
} ,
70
+ settings : {
71
+ "import/core-modules" : [ "obsidian" ] ,
72
+ } ,
55
73
languageOptions : {
56
74
globals : { ...globals . browser } ,
57
75
parser : typescriptEslintParser ,
0 commit comments