1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| import eslint from "@eslint/js"; import tseslint from "typescript-eslint"; import eslintConfigPrettier from "eslint-config-prettier";
export default tseslint.config(eslint.configs.recommended, ...tseslint.configs.recommended, eslintConfigPrettier, { files: ["**/*.js", "**/*.ts", "**/*.tsx"], ignores: ["build.js", "eslint.config.js", "jest.config.js"], languageOptions: { ecmaVersion: 2021, sourceType: "module", parser: tseslint.parser, parserOptions: { project: true } }, plugins: { "@typescript-eslint": tseslint.plugin }, rules: { // Bundle "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/consistent-type-definitions": ["error", "type"],
// Problems "array-callback-return": ["error"], "no-await-in-loop": ["error"], "no-constant-binary-expression": ["error"], "no-constructor-return": ["error"], "no-duplicate-imports": ["error"], "no-new-native-nonconstructor": ["error"], "no-promise-executor-return": ["error"], "no-self-compare": ["error"], "no-template-curly-in-string": ["error"], "no-unmodified-loop-condition": ["error"], "no-unreachable-loop": ["error"], "no-unused-private-class-members": ["error"], "no-use-before-define": ["error"], "require-atomic-updates": ["error"],
// Suggestions "accessor-pairs": ["error"], "block-scoped-var": ["error"], camelcase: ["error"], curly: ["error"], "default-case-last": ["error"], "default-param-last": ["error"], "dot-notation": ["error"], eqeqeq: ["error"], "grouped-accessor-pairs": ["error"], "logical-assignment-operators": ["error"], "max-depth": ["error"], "max-lines": ["error"], "max-lines-per-function": ["error", { max: 100 }], "max-nested-callbacks": ["error"], "max-params": ["error", 12], "new-cap": ["error"], "no-array-constructor": ["error"], "no-caller": ["error"], "no-case-declarations": ["error"], "no-confusing-arrow": ["error"], "no-div-regex": ["error"], "no-else-return": ["error"], "no-empty-function": ["error"], "no-empty-static-block": ["error"], "no-eval": ["error"], "no-extend-native": ["error"], "no-extra-bind": ["error"], "no-extra-label": ["error"], "no-floating-decimal": ["error"], "no-implicit-coercion": ["error"], "no-implicit-globals": ["error"], "no-implied-eval": ["error"], "no-invalid-this": ["error"], "no-iterator": ["error"], "no-label-var": ["error"], "no-lone-blocks": ["error"], "no-lonely-if": ["error"], "no-loop-func": ["error"], "no-negated-condition": ["error"], "no-nested-ternary": ["error"], "no-new": ["error"], "no-new-func": ["error"], "no-new-object": ["error"], "no-new-wrappers": ["error"], "no-proto": ["error"], "no-return-assign": ["error"], "no-return-await": ["error"], "no-script-url": ["error"], "no-shadow": ["error"], "no-throw-literal": ["error"], "no-undef-init": ["error"], "no-underscore-dangle": ["error"], "no-unneeded-ternary": ["error"], "no-unused-expressions": ["error"], "no-unused-labels": ["error"], "no-useless-call": ["error"], "no-useless-computed-key": ["error"], "no-useless-concat": ["error"], "no-useless-constructor": ["error"], "no-useless-rename": ["error"], "no-useless-return": ["error"], "no-var": ["error"], "prefer-arrow-callback": ["error"], "prefer-const": ["error"], "prefer-numeric-literals": ["error"], "prefer-object-has-own": ["error"], "prefer-object-spread": ["error"], "prefer-promise-reject-errors": ["error"], "prefer-regex-literals": ["error"], "prefer-rest-params": ["error"], "prefer-spread": ["error"], radix: ["error"], "require-await": ["error"], "require-unicode-regexp": ["error"], "spaced-comment": ["error"], strict: ["error"], yoda: ["error"] } });
|