1 | "use strict";
|
2 |
|
3 |
|
4 | module.exports = {
|
5 | extends: ["eslint:recommended", "plugin:prettier/recommended"],
|
6 | env: {
|
7 | node: true
|
8 | },
|
9 | parser: "typescript-eslint-parser",
|
10 | parserOptions: {
|
11 | sourceType: "module",
|
12 | ecmaVersion: 6
|
13 | },
|
14 | plugins: ["typescript", "import"],
|
15 | settings: {
|
16 | "import/resolver": {
|
17 | node: {
|
18 | extensions: [".mjs", ".js", ".json", "ts"]
|
19 | }
|
20 | },
|
21 | "import/extensions": [".js", ".mjs", ".ts"],
|
22 | "import/core-modules": [],
|
23 | "import/ignore": ["node_modules", "\\.(coffee|scss|css|less|hbs|svg|json)$"]
|
24 | },
|
25 | rules: {
|
26 |
|
27 | "no-undef": "off",
|
28 |
|
29 | "no-console": "off",
|
30 | "no-template-curly-in-string": "error",
|
31 |
|
32 |
|
33 | "array-callback-return": "error",
|
34 | "block-scoped-var": "error",
|
35 | "consistent-return": "error",
|
36 | curly: "error",
|
37 | "default-case": "error",
|
38 | "dot-notation": "error",
|
39 | eqeqeq: "error",
|
40 | "max-classes-per-file": "error",
|
41 | "no-alert": "error",
|
42 | "no-caller": "error",
|
43 | "no-else-return": "error",
|
44 | "no-empty-function": "error",
|
45 | "no-eq-null": "error",
|
46 | "no-eval": "error",
|
47 |
|
48 | "no-implied-eval": "error",
|
49 |
|
50 | "no-extend-native": "error",
|
51 | "no-extra-bind": "error",
|
52 | "no-invalid-this": "error",
|
53 | "no-iterator": "error",
|
54 | "no-labels": "error",
|
55 | "no-loop-func": "error",
|
56 | "no-multi-str": "error",
|
57 | "no-new-func": "error",
|
58 | "no-new-wrappers": "error",
|
59 | "no-octal-escape": "error",
|
60 | "no-param-reassign": "error",
|
61 | "no-proto": "error",
|
62 | "no-restricted-properties": ["error", {
|
63 | object: "arguments",
|
64 | property: "callee",
|
65 | message: "arguments.callee is deprecated"
|
66 | }, {
|
67 | object: "global",
|
68 | property: "isFinite",
|
69 | message: "Please use Number.isFinite instead"
|
70 | }, {
|
71 | object: "self",
|
72 | property: "isFinite",
|
73 | message: "Please use Number.isFinite instead"
|
74 | }, {
|
75 | object: "window",
|
76 | property: "isFinite",
|
77 | message: "Please use Number.isFinite instead"
|
78 | }, {
|
79 | object: "global",
|
80 | property: "isNaN",
|
81 |
|
82 | message: "Please use Number.isNaN instead"
|
83 | }, {
|
84 | object: "self",
|
85 | property: "isNaN",
|
86 | message: "Please use Number.isNaN instead"
|
87 | }, {
|
88 | object: "window",
|
89 | property: "isNaN",
|
90 | message: "Please use Number.isNaN instead"
|
91 | }, {
|
92 | property: "__defineGetter__",
|
93 | message: "Please use Object.defineProperty instead."
|
94 | }, {
|
95 | property: "__defineSetter__",
|
96 | message: "Please use Object.defineProperty instead."
|
97 | }, {
|
98 | object: "Math",
|
99 | property: "pow",
|
100 | message: "Use the exponentiation operator (**) instead."
|
101 | }],
|
102 | "no-return-assign": "error",
|
103 | "no-return-await": "error",
|
104 | "no-script-url": "error",
|
105 | "no-self-compare": "error",
|
106 | "no-sequences": "error",
|
107 | "no-throw-literal": "error",
|
108 | "no-unmodified-loop-condition": "error",
|
109 | "no-unused-expressions": "error",
|
110 | "no-useless-call": "error",
|
111 | "no-useless-concat": "error",
|
112 | "no-void": "error",
|
113 | "no-with": "error",
|
114 | "prefer-promise-reject-errors": "error",
|
115 | radix: "error",
|
116 | "require-await": "error",
|
117 |
|
118 |
|
119 | "no-label-var": "error",
|
120 | "no-shadow": "error",
|
121 | "no-shadow-restricted-names": "error",
|
122 | "no-use-before-define": "error",
|
123 |
|
124 |
|
125 | "callback-return": "error",
|
126 | "handle-callback-err": "error",
|
127 | "no-buffer-constructor": "error",
|
128 | "no-mixed-requires": "error",
|
129 | "no-new-require": "error",
|
130 | "no-path-concat": "error",
|
131 |
|
132 |
|
133 | camelcase: "error",
|
134 | "func-names": "error",
|
135 | "lines-between-class-members": "error",
|
136 | "max-statements-per-line": "error",
|
137 | "new-cap": "error",
|
138 | "new-parens": "error",
|
139 | "no-bitwise": "error",
|
140 | "no-lonely-if": "error",
|
141 | "no-multi-assign": "error",
|
142 | "no-new-object": "error",
|
143 | "no-restricted-syntax": ["error", {
|
144 | selector: "ForInStatement",
|
145 | message: "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
|
146 | }, {
|
147 | selector: "ForOfStatement",
|
148 | message: "iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations."
|
149 | }, {
|
150 | selector: "LabeledStatement",
|
151 | message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
|
152 | }, {
|
153 | selector: "WithStatement",
|
154 | message: "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
|
155 | }],
|
156 | "no-unneeded-ternary": "error",
|
157 | "operator-assignment": "error",
|
158 | "spaced-comment": "error",
|
159 |
|
160 |
|
161 | "arrow-body-style": ["error", "as-needed"],
|
162 | "no-duplicate-imports": "error",
|
163 | "no-useless-computed-key": "error",
|
164 | "no-useless-constructor": "error",
|
165 | "no-useless-rename": "error",
|
166 | "no-var": "error",
|
167 | "object-shorthand": "error",
|
168 | "prefer-arrow-callback": "error",
|
169 | "prefer-const": "error",
|
170 | "prefer-numeric-literals": "error",
|
171 | "prefer-rest-params": "error",
|
172 | "prefer-spread": "error",
|
173 | "prefer-template": "error",
|
174 | "symbol-description": "error",
|
175 |
|
176 |
|
177 | "typescript/adjacent-overload-signatures": "error",
|
178 | "typescript/class-name-casing": "error",
|
179 | "typescript/interface-name-prefix": "error",
|
180 | "typescript/member-delimiter-style": ["error", {
|
181 | delimiter: "none"
|
182 | }],
|
183 | "typescript/no-angle-bracket-type-assertion": "error",
|
184 | "typescript/no-array-constructor": "error",
|
185 | "typescript/no-empty-interface": "error",
|
186 | "typescript/no-namespace": "error",
|
187 | "typescript/no-non-null-assertion": "error",
|
188 | "typescript/no-triple-slash-reference": "error",
|
189 | "typescript/no-unused-vars": "error",
|
190 | "typescript/no-use-before-define": "error",
|
191 |
|
192 |
|
193 | "import/default": "error",
|
194 | "import/no-absolute-path": "error",
|
195 | "import/no-webpack-loader-syntax": "error",
|
196 | "import/no-self-import": "error",
|
197 | "import/no-cycle": ["error", {
|
198 | maxDepth: Infinity
|
199 | }],
|
200 | "import/no-useless-path-segments": "error",
|
201 | "import/export": "error",
|
202 | "import/no-named-as-default": "error",
|
203 | "import/no-named-as-default-member": "error",
|
204 | "import/no-extraneous-dependencies": "error",
|
205 | "import/no-mutable-exports": "error",
|
206 | "import/no-amd": "error",
|
207 | "import/first": "error",
|
208 | "import/no-duplicates": "error",
|
209 | "import/order": ["error", {
|
210 | groups: [["builtin", "external", "internal"]]
|
211 | }],
|
212 | "import/newline-after-import": "error",
|
213 | "import/no-named-default": "error",
|
214 | "import/no-anonymous-default-export": "error"
|
215 | }
|
216 | };
|
217 |
|
\ | No newline at end of file |