This keeps leading to issues due to circular imports. Import from specific files instead, index just reexports
		
			
				
	
	
		
			138 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
|     "root": true,
 | |
|     "parser": "@typescript-eslint/parser",
 | |
|     "ignorePatterns": ["dist", "browser"],
 | |
|     "plugins": [
 | |
|         "@typescript-eslint",
 | |
|         "header",
 | |
|         "simple-import-sort",
 | |
|         "unused-imports"
 | |
|     ],
 | |
|     "rules": {
 | |
|         // Since it's only been a month and Vencord has already been stolen
 | |
|         // by random skids who rebranded it to "AlphaCord" and erased all license
 | |
|         // information
 | |
|         "header/header": [
 | |
|             2,
 | |
|             "block",
 | |
|             [
 | |
|                 {
 | |
|                     "pattern": "!?",
 | |
|                     "template": " "
 | |
|                 },
 | |
|                 " * Vencord, a modification for Discord's desktop app",
 | |
|                 {
 | |
|                     "pattern": " \\* Copyright \\(c\\) \\d{4}",
 | |
|                     "template": " * Copyright (c) 2022 Vendicated and contributors"
 | |
|                 },
 | |
|                 " *",
 | |
|                 " * This program is free software: you can redistribute it and/or modify",
 | |
|                 " * it under the terms of the GNU General Public License as published by",
 | |
|                 " * the Free Software Foundation, either version 3 of the License, or",
 | |
|                 " * (at your option) any later version.",
 | |
|                 " *",
 | |
|                 " * This program is distributed in the hope that it will be useful,",
 | |
|                 " * but WITHOUT ANY WARRANTY; without even the implied warranty of",
 | |
|                 " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the",
 | |
|                 " * GNU General Public License for more details.",
 | |
|                 " *",
 | |
|                 " * You should have received a copy of the GNU General Public License",
 | |
|                 " * along with this program.  If not, see <https://www.gnu.org/licenses/>.",
 | |
|                 ""
 | |
|             ],
 | |
|             2
 | |
|         ],
 | |
|         "quotes": ["error", "double", { "avoidEscape": true }],
 | |
|         "jsx-quotes": ["error", "prefer-double"],
 | |
|         "no-mixed-spaces-and-tabs": "error",
 | |
|         "indent": ["error", 4, { "SwitchCase": 1 }],
 | |
|         "arrow-parens": ["error", "as-needed"],
 | |
|         "eol-last": ["error", "always"],
 | |
|         "func-call-spacing": ["error", "never"],
 | |
|         "no-multi-spaces": "error",
 | |
|         "no-trailing-spaces": "error",
 | |
|         "no-whitespace-before-property": "error",
 | |
|         "semi": ["error", "always"],
 | |
|         "semi-style": ["error", "last"],
 | |
|         "space-in-parens": ["error", "never"],
 | |
|         "block-spacing": ["error", "always"],
 | |
|         "object-curly-spacing": ["error", "always"],
 | |
|         "eqeqeq": ["error", "always", { "null": "ignore" }],
 | |
|         "spaced-comment": ["error", "always", { "markers": ["!"] }],
 | |
|         "yoda": "error",
 | |
|         "prefer-destructuring": ["error", { "object": true, "array": false }],
 | |
|         "operator-assignment": ["error", "always"],
 | |
|         "no-useless-computed-key": "error",
 | |
|         "no-unneeded-ternary": ["error", { "defaultAssignment": false }],
 | |
|         "no-invalid-regexp": "error",
 | |
|         "no-constant-condition": ["error", { "checkLoops": false }],
 | |
|         "no-duplicate-imports": "error",
 | |
|         "no-extra-semi": "error",
 | |
|         "consistent-return": ["warn", { "treatUndefinedAsUnspecified": true }],
 | |
|         "dot-notation": "error",
 | |
|         "no-useless-escape": "error",
 | |
|         "no-fallthrough": "error",
 | |
|         "for-direction": "error",
 | |
|         "no-async-promise-executor": "error",
 | |
|         "no-cond-assign": "error",
 | |
|         "no-dupe-else-if": "error",
 | |
|         "no-duplicate-case": "error",
 | |
|         "no-irregular-whitespace": "error",
 | |
|         "no-loss-of-precision": "error",
 | |
|         "no-misleading-character-class": "error",
 | |
|         "no-prototype-builtins": "error",
 | |
|         "no-regex-spaces": "error",
 | |
|         "no-shadow-restricted-names": "error",
 | |
|         "no-unexpected-multiline": "error",
 | |
|         "no-unsafe-optional-chaining": "error",
 | |
|         "no-useless-backreference": "error",
 | |
|         "use-isnan": "error",
 | |
|         "prefer-const": "error",
 | |
|         "prefer-spread": "error",
 | |
| 
 | |
|         "simple-import-sort/imports": "error",
 | |
|         "simple-import-sort/exports": "error",
 | |
| 
 | |
|         "unused-imports/no-unused-imports": "error",
 | |
| 
 | |
|         "@typescript-eslint/no-restricted-imports": [
 | |
|             "error",
 | |
|             {
 | |
|                 "paths": [
 | |
|                     // shrug, couldn't find a better way since the pattern one doesn't work:
 | |
|                     // ["utils", "!utils/*"]
 | |
|                     {
 | |
|                         "name": "./utils",
 | |
|                         "message": "Do not import from index. This might cause issues. Import from the specific file instead.",
 | |
|                         "allowTypeImports": true
 | |
|                     },
 | |
|                     {
 | |
|                         "name": "../utils",
 | |
|                         "message": "Do not import from index. This might cause issues. Import from the specific file instead.",
 | |
|                         "allowTypeImports": true
 | |
|                     },
 | |
|                     {
 | |
|                         "name": "../../utils",
 | |
|                         "message": "Do not import from index. This might cause issues. Import from the specific file instead.",
 | |
|                         "allowTypeImports": true
 | |
|                     },
 | |
|                     {
 | |
|                         "name": "../../../utils",
 | |
|                         "message": "Do not import from index. This might cause issues. Import from the specific file instead.",
 | |
|                         "allowTypeImports": true
 | |
|                     },
 | |
|                     {
 | |
|                         "name": "../../../../utils",
 | |
|                         "message": "Do not import from index. This might cause issues. Import from the specific file instead.",
 | |
|                         "allowTypeImports": true
 | |
|                     },
 | |
|                     {
 | |
|                         "name": "../../../../../utils",
 | |
|                         "message": "Do not import from index. This might cause issues. Import from the specific file instead.",
 | |
|                         "allowTypeImports": true
 | |
|                     }
 | |
|                 ]
 | |
|             }
 | |
|         ]
 | |
|     }
 | |
| }
 |