The weeb for the next gen discord boat - Wamellow wamellow.com
bot discord
at master 15 kB view raw
1import next from "@next/eslint-plugin-next"; 2import stylistic from "@stylistic/eslint-plugin"; 3import eslintPluginImport from "eslint-plugin-import-x"; 4import react from "eslint-plugin-react"; 5import reactCompiler from "eslint-plugin-react-compiler"; 6import reactHooks from "eslint-plugin-react-hooks"; 7import simpleImportSort from "eslint-plugin-simple-import-sort"; 8import eslintPluginUnicorn from "eslint-plugin-unicorn"; 9import tseslint from "typescript-eslint"; 10 11export default tseslint.config( 12 ...tseslint.configs.recommended, 13 { 14 files: ["**/*.ts", "**/*.tsx"], 15 ignores: ["node_modules", ".next"], 16 languageOptions: { 17 parser: tseslint.parser, 18 parserOptions: { 19 project: "./tsconfig.json", 20 tsconfigRootDir: import.meta.dirname, 21 warnOnUnsupportedTypeScriptVersion: false 22 } 23 }, 24 plugins: { 25 react, 26 "react-hooks": reactHooks, 27 "@next/next": next, 28 "react-compiler": reactCompiler, 29 30 "@stylistic": stylistic, 31 "@typescript-eslint": tseslint.plugin, 32 import: eslintPluginImport, 33 "simple-import-sort": simpleImportSort, 34 unicorn: eslintPluginUnicorn 35 }, 36 rules: { 37 ...react.configs.recommended.rules, 38 ...react.configs['jsx-runtime'].rules, 39 ...reactHooks.configs.recommended.rules, 40 ...next.configs.recommended.rules, 41 ...next.configs["core-web-vitals"].rules, 42 43 // Fixes 44 "react/prop-types": "off", 45 "react-hooks/exhaustive-deps": "off", 46 "react-hooks/preserve-manual-memoization": "off", 47 48 // stylistic Rules 49 "@stylistic/array-bracket-newline": ["error", "consistent"], 50 "@stylistic/array-bracket-spacing": "error", 51 "@stylistic/array-element-newline": ["error", "consistent"], 52 "@stylistic/arrow-parens": ["error", "always"], 53 "@stylistic/block-spacing": "error", 54 "@stylistic/brace-style": "error", 55 "@stylistic/comma-dangle": ["error"], 56 "@stylistic/comma-spacing": "error", 57 "@stylistic/comma-style": "error", 58 "@stylistic/computed-property-spacing": "error", 59 "@stylistic/dot-location": ["error", "property"], 60 "@stylistic/eol-last": ["error", "never"], 61 "@stylistic/function-call-argument-newline": ["error", "consistent"], 62 "@stylistic/function-call-spacing": "error", 63 "@stylistic/indent": "error", 64 "@stylistic/key-spacing": "error", 65 "@stylistic/keyword-spacing": "error", 66 "@stylistic/member-delimiter-style": ["error", { singleline: { requireLast: true } }], 67 "@stylistic/new-parens": "error", 68 "@stylistic/no-extra-semi": "error", 69 "@stylistic/no-floating-decimal": "error", 70 "@stylistic/no-multi-spaces": "error", 71 "@stylistic/no-multiple-empty-lines": ["error", { max: 1, maxBOF: 0, maxEOF: 0 }], 72 "@stylistic/no-trailing-spaces": "error", 73 "@stylistic/no-whitespace-before-property": "error", 74 "@stylistic/object-curly-newline": "error", 75 "@stylistic/object-curly-spacing": ["error", "always"], 76 "@stylistic/rest-spread-spacing": "error", 77 "@stylistic/quote-props": ["error", "as-needed"], 78 "@stylistic/quotes": "error", 79 "@stylistic/semi": "error", 80 "@stylistic/semi-spacing": "error", 81 "@stylistic/semi-style": "error", 82 "@stylistic/space-before-blocks": "error", 83 "@stylistic/space-before-function-paren": ["error", { named: "never" }], 84 "@stylistic/space-in-parens": "error", 85 "@stylistic/space-infix-ops": "error", 86 "@stylistic/space-unary-ops": "error", 87 "@stylistic/spaced-comment": "error", 88 "@stylistic/switch-colon-spacing": "error", 89 "@stylistic/template-curly-spacing": "error", 90 "@stylistic/template-tag-spacing": "error", 91 "@stylistic/type-annotation-spacing": "error", 92 "@stylistic/type-generic-spacing": "error", 93 "@stylistic/type-named-tuple-spacing": "error", 94 "@stylistic/max-statements-per-line": ["error", { max: 1 }], 95 "@stylistic/multiline-comment-style": ["error", "separate-lines"], 96 "@stylistic/no-mixed-spaces-and-tabs": "error", 97 "@stylistic/no-tabs": "error", 98 "@stylistic/object-property-newline": ["error", { allowAllPropertiesOnSameLine: true }], 99 "@stylistic/one-var-declaration-per-line": "error", 100 "@stylistic/wrap-iife": ["error", "inside"], 101 // "@typescript-eslint/no-floating-promises": "error", 102 "@typescript-eslint/no-explicit-any": "error", 103 "@typescript-eslint/adjacent-overload-signatures": "error", 104 "@typescript-eslint/array-type": "error", 105 "@typescript-eslint/ban-ts-comment": "error", 106 "@typescript-eslint/no-wrapper-object-types": "error", 107 "@typescript-eslint/no-empty-object-type": "error", 108 "@typescript-eslint/no-unsafe-function-type": "error", 109 "@typescript-eslint/class-literal-property-style": "error", 110 "@typescript-eslint/consistent-type-definitions": "error", 111 "@typescript-eslint/consistent-type-exports": ["error", { fixMixedExportsWithInlineTypeSpecifier: true }], 112 "@typescript-eslint/consistent-type-imports": ["error", { fixStyle: "inline-type-imports" }], 113 // "@typescript-eslint/member-ordering": ["error", { 114 // default: { 115 // memberTypes: [ 116 // "call-signature", 117 // "signature", 118 // "constructor", 119 // ["static-accessor", "static-field", "static-get", "static-method", "static-set"], 120 // ["accessor", "get", "method", "set"], 121 // "field" 122 // ], 123 // order: "alphabetically-case-insensitive" 124 // } 125 // }], 126 "@typescript-eslint/consistent-type-imports": "error", 127 "@typescript-eslint/method-signature-style": "error", 128 "@typescript-eslint/naming-convention": ["error", { selector: "typeLike", format: ["PascalCase"] }], 129 "@typescript-eslint/no-duplicate-enum-values": "error", 130 "@typescript-eslint/no-duplicate-type-constituents": "error", 131 "@typescript-eslint/no-empty-interface": "error", 132 "@typescript-eslint/no-import-type-side-effects": "error", 133 "@typescript-eslint/no-invalid-void-type": "error", 134 "@typescript-eslint/no-misused-new": "error", 135 "@typescript-eslint/no-redundant-type-constituents": "error", 136 "@typescript-eslint/no-require-imports": "error", 137 "@typescript-eslint/no-unnecessary-qualifier": "error", 138 "@typescript-eslint/no-unnecessary-type-arguments": "error", 139 "@typescript-eslint/no-unnecessary-type-constraint": "error", 140 "@typescript-eslint/no-unsafe-declaration-merging": "error", 141 "@typescript-eslint/no-unused-vars": ["error", { 142 args: "all", 143 argsIgnorePattern: "^_", 144 destructuredArrayIgnorePattern: "^_", 145 varsIgnorePattern: "^_" 146 }], 147 "@typescript-eslint/no-useless-empty-export": "error", 148 "@typescript-eslint/prefer-enum-initializers": "error", 149 "@typescript-eslint/prefer-function-type": "error", 150 "@typescript-eslint/triple-slash-reference": "error", 151 "@typescript-eslint/unified-signatures": "error", 152 "@typescript-eslint/consistent-generic-constructors": "error", 153 "@typescript-eslint/consistent-indexed-object-style": "error", 154 "@typescript-eslint/no-unused-expressions": "error", 155 "@typescript-eslint/require-await": "error", 156 "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", 157 "@typescript-eslint/array-type": "error", 158 "@typescript-eslint/prefer-as-const": "error", 159 "@typescript-eslint/prefer-find": "error", 160 "@typescript-eslint/prefer-for-of": "error", 161 "@typescript-eslint/prefer-includes": "error", 162 "@typescript-eslint/prefer-reduce-type-parameter": "error", 163 "@typescript-eslint/prefer-return-this-type": "error", 164 "@typescript-eslint/prefer-string-starts-ends-with": "error", 165 "@typescript-eslint/prefer-ts-expect-error": "error", 166 "@typescript-eslint/restrict-plus-operands": "error", 167 "@typescript-eslint/no-confusing-void-expression": ["error", { ignoreArrowShorthand: true }], 168 "@typescript-eslint/no-meaningless-void-operator": "error", 169 "@typescript-eslint/no-mixed-enums": "error", 170 "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", 171 "@typescript-eslint/no-unnecessary-type-assertion": "error", 172 "@typescript-eslint/unbound-method": "error", 173 "import/extensions": "off", // changed 174 "import/first": "error", 175 "import/newline-after-import": ["error", { considerComments: true }], 176 "import/no-absolute-path": "error", 177 "import/no-duplicates": "error", 178 "import/no-empty-named-blocks": "error", 179 "import/no-extraneous-dependencies": "error", 180 "import/no-relative-packages": "error", 181 "import/no-unused-modules": "error", 182 "import/no-self-import": "error", 183 "import/no-useless-path-segments": "error", 184 "import/no-cycle": ["error", { maxDepth: Infinity }], 185 "simple-import-sort/exports": "error", 186 "simple-import-sort/imports": ["error", { groups: [["^\\u0000", "^[^~./]"], ["^~"], ["^\\./", "^\\.\\./"]] }], 187 "unicorn/escape-case": "error", 188 // "unicorn/filename-case": ["error", { cases: { pascalCase: true, snakeCase: true, kebabCase: true } }], 189 "unicorn/no-hex-escape": "error", 190 "unicorn/no-zero-fractions": "error", 191 "unicorn/number-literal-case": "error", 192 "unicorn/numeric-separators-style": ["error", { number: { minimumDigits: 0 } }], 193 "unicorn/prefer-export-from": "error", 194 "unicorn/better-regex": "error", 195 "unicorn/catch-error-name": "error", 196 "unicorn/consistent-function-scoping": ["error", { checkArrowFunctions: false }], 197 "unicorn/empty-brace-spaces": "error", 198 "unicorn/error-message": "error", 199 "unicorn/new-for-builtins": "error", 200 "unicorn/no-array-callback-reference": "error", 201 "unicorn/no-array-for-each": "error", 202 "unicorn/no-array-push-push": "error", 203 "unicorn/no-console-spaces": "error", 204 "unicorn/no-for-loop": "error", 205 "unicorn/no-instanceof-array": "error", 206 "unicorn/no-negated-condition": "error", 207 "unicorn/no-new-array": "error", 208 "unicorn/no-new-buffer": "error", 209 "unicorn/no-object-as-default-parameter": "error", 210 "unicorn/no-static-only-class": "error", 211 "unicorn/no-thenable": "error", 212 "unicorn/no-this-assignment": "error", 213 "unicorn/no-unnecessary-await": "error", 214 "unicorn/no-unreadable-array-destructuring": "error", 215 "unicorn/no-unreadable-iife": "error", 216 "unicorn/no-useless-length-check": "error", 217 "unicorn/no-useless-promise-resolve-reject": "error", 218 "unicorn/no-useless-spread": "error", 219 "unicorn/no-useless-switch-case": "error", 220 "unicorn/prefer-array-find": "error", 221 "unicorn/prefer-array-flat": "error", 222 "unicorn/prefer-array-flat-map": "error", 223 "unicorn/prefer-array-index-of": "error", 224 "unicorn/prefer-array-some": "error", 225 "unicorn/prefer-at": "error", 226 "unicorn/prefer-date-now": "error", 227 "unicorn/prefer-default-parameters": "error", 228 "unicorn/prefer-includes": "error", 229 "unicorn/prefer-logical-operator-over-ternary": "error", 230 "unicorn/prefer-modern-math-apis": "error", 231 "unicorn/prefer-negative-index": "error", 232 "unicorn/prefer-number-properties": "error", 233 "unicorn/prefer-object-from-entries": "error", 234 "unicorn/prefer-optional-catch-binding": "error", 235 "unicorn/prefer-prototype-methods": "error", 236 "unicorn/prefer-regexp-test": "error", 237 "unicorn/prefer-set-has": "error", 238 "unicorn/prefer-spread": "error", 239 "unicorn/prefer-string-slice": "error", 240 "unicorn/prefer-string-starts-ends-with": "error", 241 "unicorn/prefer-string-trim-start-end": "error", 242 "unicorn/prefer-switch": "error", 243 "unicorn/prefer-type-error": "error", 244 "unicorn/require-number-to-fixed-digits-argument": "error", 245 "unicorn/throw-new-error": "error", 246 "no-dupe-else-if": "error", 247 "no-template-curly-in-string": "error", 248 "no-unexpected-multiline": "error", 249 "no-unreachable": "error", 250 "no-unreachable-loop": "error", 251 "default-case-last": "error", 252 "dot-notation": "error", 253 eqeqeq: "error", 254 // "new-cap": "error", 255 // "no-console": "error", 256 "no-empty": "error", 257 // "no-nested-ternary": "error", 258 "no-unneeded-ternary": "error", 259 "no-var": "error", 260 "for-direction": "error", 261 "no-constant-condition": "error", 262 "no-constructor-return": "error", 263 "no-duplicate-case": "error", 264 "no-else-return": "error", 265 "no-implicit-coercion": "error", 266 "no-lonely-if": "error", 267 "no-return-assign": "error", 268 "no-self-compare": "error", 269 "no-throw-literal": "error", 270 "no-undef-init": "error", 271 "no-unused-expressions": "off", 272 "no-useless-concat": "error", 273 "no-useless-return": "error", 274 "object-shorthand": "error", 275 "one-var": ["error", "never"], 276 "prefer-arrow-callback": "error", 277 "prefer-const": "error", 278 "prefer-destructuring": ["error", { object: true, array: false }], 279 "prefer-object-spread": "error", 280 "prefer-rest-params": "error", 281 "prefer-spread": "error", 282 radix: "error", 283 yoda: "error" 284 }, 285 settings: { 286 react: { 287 version: "detect", // Automatically detects the React version 288 }, 289 } 290 }, 291 { 292 ignores: ["node_modules", ".next", "**/gt4.ts", "next-env.d.ts"] 293 } 294)