Vencord/.eslintrc.json

139 lines
5.9 KiB
JSON
Raw Normal View History

{
"root": true,
"parser": "@typescript-eslint/parser",
2022-10-21 19:22:44 -04:00
"ignorePatterns": ["dist", "browser"],
"plugins": [
"@typescript-eslint",
"header",
"simple-import-sort",
"unused-imports"
],
"rules": {
2022-10-21 19:17:06 -04:00
// 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": "!?",
2022-10-21 19:22:44 -04:00
"template": " "
2022-10-21 19:17:06 -04:00
},
" * 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"],
2022-10-08 14:36:57 -04:00
"object-curly-spacing": ["error", "always"],
"eqeqeq": ["error", "always", { "null": "ignore" }],
"spaced-comment": ["error", "always", { "markers": ["!"] }],
2022-10-08 14:36:57 -04:00
"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",
2022-10-20 05:58:20 -04:00
"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",
2022-10-22 12:18:41 -04:00
"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
}
]
}
]
}
}