1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | const settings = {
|
7 | root: true,
|
8 | globals: {},
|
9 | plugins: ["jsdoc"],
|
10 | extends: [
|
11 | "eslint:recommended",
|
12 | "plugin:import/errors",
|
13 | "plugin:import/warnings",
|
14 | "prettier",
|
15 | ],
|
16 | settings: {
|
17 | jsdoc: {
|
18 | mode: "typescript",
|
19 | preferredTypes: {
|
20 | Object: "object",
|
21 | "object<>": "Record<>",
|
22 | "Object<>": "Record<>",
|
23 | "object.<>": "Record<>",
|
24 | "Object.<>": "Record<>",
|
25 | "Array.<>": "[]",
|
26 | "Array<>": "[]",
|
27 | String: "string",
|
28 | Boolean: "boolean",
|
29 | Number: "number",
|
30 | },
|
31 | },
|
32 | },
|
33 | parser: "@babel/eslint-parser",
|
34 | parserOptions: {
|
35 | requireConfigFile: false,
|
36 | babelOptions: {
|
37 | plugins: ["@babel/plugin-syntax-class-properties"],
|
38 | },
|
39 | },
|
40 | rules: {
|
41 |
|
42 | "default-case-last": "error",
|
43 | "default-param-last": "error",
|
44 | "no-console": ["error", { allow: ["dir", "time", "timeEnd"] }],
|
45 | "no-else-return": "error",
|
46 | "no-eq-null": "error",
|
47 | "no-labels": "error",
|
48 | "no-process-exit": "off",
|
49 | "no-promise-executor-return": "error",
|
50 | "no-return-assign": "error",
|
51 | "no-sequences": "error",
|
52 | "no-throw-literal": "error",
|
53 | "no-unsafe-optional-chaining": [
|
54 | "error",
|
55 | { disallowArithmeticOperators: true },
|
56 | ],
|
57 | "no-var": "error",
|
58 | "prefer-const": "error",
|
59 | "prefer-promise-reject-errors": "error",
|
60 | "prefer-template": "error",
|
61 | "require-await": "error",
|
62 |
|
63 |
|
64 | "import/export": "off",
|
65 | "import/first": "error",
|
66 | "import/named": "off",
|
67 | "import/namespace": "off",
|
68 | "import/newline-after-import": ["error", { count: 1 }],
|
69 | "import/no-commonjs": "error",
|
70 | "import/no-default-export": "error",
|
71 | "import/order": [
|
72 | "error",
|
73 | {
|
74 | "newlines-between": "never",
|
75 | alphabetize: { order: "asc", caseInsensitive: true },
|
76 | },
|
77 | ],
|
78 |
|
79 |
|
80 | "jsdoc/check-alignment": "error",
|
81 | "jsdoc/check-examples": "off",
|
82 | "jsdoc/check-param-names": "error",
|
83 | "jsdoc/check-property-names": "error",
|
84 | "jsdoc/check-syntax": "error",
|
85 | "jsdoc/check-tag-names": ["error", { definedTags: [] }],
|
86 | "jsdoc/check-types": ["error"],
|
87 | "jsdoc/check-values": "error",
|
88 | "jsdoc/empty-tags": "error",
|
89 | "jsdoc/newline-after-description": ["error", "always"],
|
90 | "jsdoc/require-param-name": "error",
|
91 | "jsdoc/require-property": "error",
|
92 | "jsdoc/require-property-name": "error",
|
93 | "jsdoc/require-property-type": "error",
|
94 | "jsdoc/require-returns-check": "off",
|
95 | "jsdoc/require-returns-description": "off",
|
96 | "jsdoc/require-returns-type": "off",
|
97 | "jsdoc/valid-types": "off",
|
98 | },
|
99 | env: {
|
100 | node: true,
|
101 | es2021: true,
|
102 | },
|
103 | };
|
104 |
|
105 |
|
106 |
|
107 |
|
108 | module.exports = settings;
|