155 lines
6.4 KiB
JSON
155 lines
6.4 KiB
JSON
{
|
|
"root": true,
|
|
"parser": "@typescript-eslint/parser",
|
|
"ignorePatterns": ["dist", "browser"],
|
|
"plugins": [
|
|
"@typescript-eslint",
|
|
"header",
|
|
"simple-import-sort",
|
|
"unused-imports",
|
|
"path-alias"
|
|
],
|
|
"settings": {
|
|
"import/resolver": {
|
|
"alias": {
|
|
"map": [
|
|
["@webpack", "./src/webpack"],
|
|
["@webpack/common", "./src/webpack/common"],
|
|
["@utils", "./src/utils"],
|
|
["@api", "./src/api"],
|
|
["@components", "./src/components"]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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",
|
|
|
|
"path-alias/no-relative": "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
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|