| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  | module.exports = { | 
					
						
							|  |  |  |     parser: '@typescript-eslint/parser', | 
					
						
							| 
									
										
										
										
											2020-07-07 11:12:45 -07:00
										 |  |  |     plugins: ['@typescript-eslint', 'notice'], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  |     parserOptions: { | 
					
						
							|  |  |  |       ecmaVersion: 9, | 
					
						
							|  |  |  |       sourceType: 'module', | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2021-01-07 16:15:34 -08:00
										 |  |  |     extends: [ | 
					
						
							|  |  |  |       'plugin:react-hooks/recommended' | 
					
						
							|  |  |  |     ], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * ESLint rules | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * All available rules: http://eslint.org/docs/rules/
 | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * Rules take the following form: | 
					
						
							|  |  |  |      *   "rule-name", [severity, { opts }] | 
					
						
							|  |  |  |      * Severity: 2 == error, 1 == warning, 0 == off. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     "rules": { | 
					
						
							|  |  |  |         '@typescript-eslint/no-unused-vars': [2, {args: 'none'}], | 
					
						
							|  |  |  |         /** | 
					
						
							|  |  |  |          * Enforced rules | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         // syntax preferences
 | 
					
						
							| 
									
										
										
										
											2021-09-27 18:58:08 +02:00
										 |  |  |         "object-curly-spacing": ["error", "always"], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  |         "quotes": [2, "single", { | 
					
						
							|  |  |  |             "avoidEscape": true, | 
					
						
							|  |  |  |             "allowTemplateLiterals": true | 
					
						
							|  |  |  |         }], | 
					
						
							|  |  |  |         "no-extra-semi": 2, | 
					
						
							| 
									
										
										
										
											2021-05-24 00:09:46 +02:00
										 |  |  |         "@typescript-eslint/semi": [2], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  |         "comma-style": [2, "last"], | 
					
						
							|  |  |  |         "wrap-iife": [2, "inside"], | 
					
						
							|  |  |  |         "spaced-comment": [2, "always", { | 
					
						
							|  |  |  |             "markers": ["*"] | 
					
						
							|  |  |  |         }], | 
					
						
							|  |  |  |         "eqeqeq": [2], | 
					
						
							|  |  |  |         "accessor-pairs": [2, { | 
					
						
							|  |  |  |             "getWithoutSet": false, | 
					
						
							|  |  |  |             "setWithoutGet": false | 
					
						
							|  |  |  |         }], | 
					
						
							|  |  |  |         "brace-style": [2, "1tbs", {"allowSingleLine": true}], | 
					
						
							|  |  |  |         "curly": [2, "multi-or-nest", "consistent"], | 
					
						
							|  |  |  |         "new-parens": 2, | 
					
						
							|  |  |  |         "arrow-parens": [2, "as-needed"], | 
					
						
							|  |  |  |         "prefer-const": 2, | 
					
						
							|  |  |  |         "quote-props": [2, "consistent"], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // anti-patterns
 | 
					
						
							|  |  |  |         "no-var": 2, | 
					
						
							|  |  |  |         "no-with": 2, | 
					
						
							|  |  |  |         "no-multi-str": 2, | 
					
						
							|  |  |  |         "no-caller": 2, | 
					
						
							|  |  |  |         "no-implied-eval": 2, | 
					
						
							|  |  |  |         "no-labels": 2, | 
					
						
							|  |  |  |         "no-new-object": 2, | 
					
						
							|  |  |  |         "no-octal-escape": 2, | 
					
						
							|  |  |  |         "no-self-compare": 2, | 
					
						
							|  |  |  |         "no-shadow-restricted-names": 2, | 
					
						
							|  |  |  |         "no-cond-assign": 2, | 
					
						
							|  |  |  |         "no-debugger": 2, | 
					
						
							|  |  |  |         "no-dupe-keys": 2, | 
					
						
							|  |  |  |         "no-duplicate-case": 2, | 
					
						
							|  |  |  |         "no-empty-character-class": 2, | 
					
						
							|  |  |  |         "no-unreachable": 2, | 
					
						
							|  |  |  |         "no-unsafe-negation": 2, | 
					
						
							|  |  |  |         "radix": 2, | 
					
						
							|  |  |  |         "valid-typeof": 2, | 
					
						
							|  |  |  |         "no-implicit-globals": [2], | 
					
						
							| 
									
										
										
										
											2020-12-29 09:59:35 -08:00
										 |  |  |         "no-unused-expressions": [2, { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true}], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // es2015 features
 | 
					
						
							|  |  |  |         "require-yield": 2, | 
					
						
							|  |  |  |         "template-curly-spacing": [2, "never"], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // spacing details
 | 
					
						
							|  |  |  |         "space-infix-ops": 2, | 
					
						
							|  |  |  |         "space-in-parens": [2, "never"], | 
					
						
							| 
									
										
										
										
											2019-11-26 08:19:02 -08:00
										 |  |  |         "space-before-function-paren": [2, { | 
					
						
							|  |  |  |             "anonymous": "never", | 
					
						
							|  |  |  |             "named": "never", | 
					
						
							|  |  |  |             "asyncArrow": "always" | 
					
						
							|  |  |  |         }], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  |         "no-whitespace-before-property": 2, | 
					
						
							|  |  |  |         "keyword-spacing": [2, { | 
					
						
							|  |  |  |             "overrides": { | 
					
						
							|  |  |  |                 "if": {"after": true}, | 
					
						
							|  |  |  |                 "else": {"after": true}, | 
					
						
							|  |  |  |                 "for": {"after": true}, | 
					
						
							|  |  |  |                 "while": {"after": true}, | 
					
						
							|  |  |  |                 "do": {"after": true}, | 
					
						
							|  |  |  |                 "switch": {"after": true}, | 
					
						
							|  |  |  |                 "return": {"after": true} | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }], | 
					
						
							|  |  |  |         "arrow-spacing": [2, { | 
					
						
							|  |  |  |             "after": true, | 
					
						
							|  |  |  |             "before": true | 
					
						
							|  |  |  |         }], | 
					
						
							| 
									
										
										
										
											2020-02-07 13:36:49 -08:00
										 |  |  |         "@typescript-eslint/func-call-spacing": 2, | 
					
						
							|  |  |  |         "@typescript-eslint/type-annotation-spacing": 2, | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // file whitespace
 | 
					
						
							|  |  |  |         "no-multiple-empty-lines": [2, {"max": 2}], | 
					
						
							|  |  |  |         "no-mixed-spaces-and-tabs": 2, | 
					
						
							|  |  |  |         "no-trailing-spaces": 2, | 
					
						
							|  |  |  |         "linebreak-style": [ process.platform === "win32" ? 0 : 2, "unix" ], | 
					
						
							|  |  |  |         "indent": [2, 2, { "SwitchCase": 1, "CallExpression": {"arguments": 2}, "MemberExpression": 2 }], | 
					
						
							|  |  |  |         "key-spacing": [2, { | 
					
						
							|  |  |  |             "beforeColon": false | 
					
						
							| 
									
										
										
										
											2020-02-07 13:38:50 -08:00
										 |  |  |         }], | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-07 11:12:45 -07:00
										 |  |  |         // copyright
 | 
					
						
							|  |  |  |         "notice/notice": [2, { | 
					
						
							|  |  |  |             "mustMatch": "Copyright", | 
					
						
							| 
									
										
										
										
											2021-06-02 08:41:48 -07:00
										 |  |  |             "templateFile": require("path").join(__dirname, "utils", "copyright.js"), | 
					
						
							| 
									
										
										
										
											2020-07-07 11:12:45 -07:00
										 |  |  |         }], | 
					
						
							| 
									
										
										
										
											2019-11-18 18:18:28 -08:00
										 |  |  |     } | 
					
						
							|  |  |  | }; |