{ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "project": true }, "ignorePatterns": ["browser", "dist", "packages/discord-types", "packages/vencord-types"], "plugins": [ "@typescript-eslint", "simple-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 "simple-header/header": [ "error", { "files": ["scripts/header-new.txt", "scripts/header-old.txt"], "templates": { "author": [".*", "Vendicated and contributors"] } } ], "@typescript-eslint/array-type": "error", "@typescript-eslint/await-thenable": "error", "@typescript-eslint/ban-types": "error", "@typescript-eslint/consistent-generic-constructors": "error", "@typescript-eslint/consistent-type-assertions": ["error", { "assertionStyle": "as", "objectLiteralTypeAssertions": "allow-as-parameter" }], "@typescript-eslint/consistent-type-exports": ["error", { "fixMixedExportsWithInlineTypeSpecifier": true }], "@typescript-eslint/consistent-type-imports": ["error", { "disallowTypeAnnotations": false, "fixStyle": "inline-type-imports" }], "@typescript-eslint/no-confusing-void-expression": "error", "@typescript-eslint/no-extra-non-null-assertion": "error", "@typescript-eslint/no-import-type-side-effects": "error", "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", "@typescript-eslint/no-unnecessary-condition": "error", "@typescript-eslint/no-unnecessary-type-assertion": "error", "@typescript-eslint/non-nullable-type-assertion-style": "error", "@typescript-eslint/prefer-as-const": "error", "@typescript-eslint/require-await": "error", "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"], "@typescript-eslint/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", { "VariableDeclarator": { "array": false, "object": true }, "AssignmentExpression": { "array": false, "object": 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", "dot-notation": "error", "no-useless-escape": [ "error", { "extra": "i" } ], "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-restricted-globals": ["error", "_", "Diff", "JSX", "React", "ReactDOM"], "no-restricted-imports": ["error", { "paths": [{ "name": "discord-types", "message": "Use @vencord/discord-types instead." }], "patterns": [{ "group": ["discord-types/*"], "message": "Use @vencord/discord-types instead." }] }], "no-restricted-syntax": ["error", "[operator=void]"], "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" } }