UNPKG

@sheplu/eslint-config

Version:

A simple ESLint config based on recommended rules and stylistic formatting

645 lines (644 loc) 15.9 kB
export default [ { rules: { "@typescript-eslint/adjacent-overload-signatures": [ "error", ], "@typescript-eslint/array-type": [ "error", { "default": "generic", "readOnly": "generic", }, ], "@typescript-eslint/await-thenable": [ "error", ], "@typescript-eslint/ban-ts-comment": [ "error", ], "@typescript-eslint/ban-tslint-comment": [ "error", ], "@typescript-eslint/class-literal-property-style": [ "error", ], "@typescript-eslint/class-methods-use-this": [ "error", ], "@typescript-eslint/consistent-generic-constructors": [ "error", ], "@typescript-eslint/consistent-indexed-object-style": [ "error", ], "@typescript-eslint/consistent-return": [ "error", ], "@typescript-eslint/consistent-type-assertions": [ "error", { "assertionStyle": "as", "objectLiteralTypeAssertions": "allow", "arrayLiteralTypeAssertions": "allow", }, ], "@typescript-eslint/consistent-type-definitions": [ "error", "interface", ], "@typescript-eslint/consistent-type-exports": [ "error", { "fixMixedExportsWithInlineTypeSpecifier": false, }, ], "@typescript-eslint/consistent-type-imports": [ "error", { "prefer": "type-imports", "fixStyle": "separate-type-imports", "disallowTypeAnnotations": true, }, ], "@typescript-eslint/default-param-last": [ "error", ], "@typescript-eslint/dot-notation": [ "error", { "allowPrivateClassPropertyAccess": false, "allowProtectedClassPropertyAccess": false, "allowIndexSignaturePropertyAccess": false, }, ], "@typescript-eslint/explicit-function-return-type": [ "error", { "allowConciseArrowFunctionExpressionsStartingWithVoid": false, "allowDirectConstAssertionInArrowFunctions": true, "allowedNames": [], "allowExpressions": false, "allowFunctionsWithoutTypeParameters": false, "allowHigherOrderFunctions": true, "allowIIFEs": false, "allowTypedFunctionExpressions": true, }, ], "@typescript-eslint/explicit-member-accessibility": [ "error", { "accessibility": "explicit", "overrides": { "accessors": "explicit", "constructors": "no-public", "methods": "explicit", "properties": "off", "parameterProperties": "explicit", }, }, ], "@typescript-eslint/explicit-module-boundary-types": [ "error", { "allowArgumentsExplicitlyTypedAsAny": false, "allowDirectConstAssertionInArrowFunctions": true, "allowedNames": [], "allowHigherOrderFunctions": true, "allowOverloadFunctions": false, "allowTypedFunctionExpressions": true, }, ], "@typescript-eslint/init-declarations": [ "error", "always", ], "@typescript-eslint/max-params": [ "error", { "max": 4, "countVoidThis": true, }, ], "@typescript-eslint/member-ordering": [ "error", ], "@typescript-eslint/naming-convention": [ "error", ], "@typescript-eslint/no-array-constructor": [ "error", ], "@typescript-eslint/no-array-delete": [ "error", ], "@typescript-eslint/no-base-to-string": [ "error", { "checkUnknown": true, "ignoredTypeNames": ['Error',], }, ], "@typescript-eslint/no-confusing-non-null-assertion": [ "error", ], "@typescript-eslint/no-confusing-void-expression": [ "error", { "ignoreArrowShorthand": false, "ignoreVoidOperator": false, "ignoreVoidReturningFunctions": false, }, ], "@typescript-eslint/no-deprecated": [ "error", { "allow": [], }, ], "@typescript-eslint/no-dupe-class-members": [ "error", ], "@typescript-eslint/no-duplicate-enum-values": [ "error", ], "@typescript-eslint/no-duplicate-type-constituents": [ "error", { "ignoreIntersections": false, "ignoreUnions": false, }, ], "@typescript-eslint/no-dynamic-delete": [ "error", ], "@typescript-eslint/no-empty-function": [ "error", { "allow": [], }, ], "@typescript-eslint/no-empty-object-type": [ "error", { "allowInterfaces": 'never', "allowObjectTypes": 'never', }, ], "@typescript-eslint/no-explicit-any": [ "error", { "fixToUnknown": false, "ignoreRestArgs": false, }, ], "@typescript-eslint/no-extra-non-null-assertion": [ "error", ], "@typescript-eslint/no-extraneous-class": [ "error", { "allowConstructorOnly": false, "allowEmpty": false, "allowStaticOnly": false, "allowWithDecorator": false, }, ], "@typescript-eslint/no-floating-promises": [ "error", { "allowForKnownSafeCalls": [], "allowForKnownSafePromises": [], "checkThenables": true, "ignoreIIFE": false, "ignoreVoid": false, }, ], "@typescript-eslint/no-for-in-array": [ "error", ], "@typescript-eslint/no-implied-eval": [ "error", ], "@typescript-eslint/no-import-type-side-effects": [ "error", ], "@typescript-eslint/no-inferrable-types": [ "error", { "ignoreParameters": false, "ignoreProperties": false, }, ], "@typescript-eslint/no-invalid-this": [ "error", { "capIsConstructor": true, }, ], "@typescript-eslint/no-invalid-void-type": [ "error", { "allowAsThisParameter": false, "allowInGenericTypeArguments": false, }, ], "@typescript-eslint/no-loop-func": [ "error", ], "@typescript-eslint/no-magic-numbers": [ "error", { "ignore": [], "ignoreArrayIndexes": false, "ignoreDefaultValues": false, "ignoreClassFieldInitialValues": false, "enforceConst": true, "detectObjects": true, "ignoreEnums": false, "ignoreNumericLiteralTypes": false, "ignoreReadonlyClassProperties": false, "ignoreTypeIndexes": false, "ignoreEnums": false, "ignoreNumericLiteralTypes": false, "ignoreReadonlyClassProperties": false, "ignoreTypeIndexes": false, }, ], "@typescript-eslint/no-meaningless-void-operator": [ "error", { "checkNever": false, }, ], "@typescript-eslint/no-misused-new": [ "error", ], "@typescript-eslint/no-misused-promises": [ "error", { "checksConditionals": true, "checksSpreads": true, "checksVoidReturn": { "arguments": true, "attributes": true, "inheritedMethods": true, "properties": true, "returns": true, "variables": true, }, }, ], "@typescript-eslint/no-misused-spread": [ "error", { "allow": [], }, ], "@typescript-eslint/no-mixed-enums": [ "error", ], "@typescript-eslint/no-namespace": [ "error", { "allowDeclarations": false, "allowDefinitionFiles": true, }, ], "@typescript-eslint/no-non-null-asserted-nullish-coalescing": [ "error", ], "@typescript-eslint/no-non-null-asserted-optional-chain": [ "error", ], "@typescript-eslint/no-non-null-assertion": [ "error", ], "@typescript-eslint/no-redeclare": [ "error", { "builtinGlobals": true, "ignoreDeclarationMerge": false, }, ], "@typescript-eslint/no-redundant-type-constituents": [ "error", ], "@typescript-eslint/no-require-imports": [ "error", { "allow": [], "allowAsImport": [], }, ], "@typescript-eslint/no-restricted-imports": [ "error", ], "@typescript-eslint/no-restricted-types": [ "error", { "types": [], }, ], "@typescript-eslint/no-shadow": [ "error", { "builtinGlobals": true, "hoist": "all", "allow": [], "ignoreOnInitialization": false, "ignoreTypeValueShadow": false, "ignoreFunctionTypeParameterNameValueShadow": false, }, ], "@typescript-eslint/no-this-alias": [ "error", { "allowDestructuring": false, "allowedNames": [], }, ], "@typescript-eslint/no-unnecessary-boolean-literal-compare": [ "error", { "allowComparingNullableBooleansToFalse": false, "allowComparingNullableBooleansToTrue": false, }, ], "@typescript-eslint/no-unnecessary-condition": [ "error", { "allowConstantLoopConditions": "never", "checkTypePredicates": false, }, ], "@typescript-eslint/no-unnecessary-parameter-property-assignment": [ "error", ], "@typescript-eslint/no-unnecessary-qualifier": [ "error", ], "@typescript-eslint/no-unnecessary-template-expression": [ "error", ], "@typescript-eslint/no-unnecessary-type-arguments": [ "error", ], "@typescript-eslint/no-unnecessary-type-assertion": [ "error", { "checkLiteralConstAssertions": false, "typesToIgnore": [], }, ], "@typescript-eslint/no-unnecessary-type-constraint": [ "error", ], "@typescript-eslint/no-unnecessary-type-conversion": [ "error", ], "@typescript-eslint/no-unnecessary-type-parameters": [ "error", ], "@typescript-eslint/no-unsafe-argument": [ "error", ], "@typescript-eslint/no-unsafe-assignment": [ "error", ], "@typescript-eslint/no-unsafe-call": [ "error", ], "@typescript-eslint/no-unsafe-declaration-merging": [ "error", ], "@typescript-eslint/no-unsafe-enum-comparison": [ "error", ], "@typescript-eslint/no-unsafe-function-type": [ "error", ], "@typescript-eslint/no-unsafe-member-access": [ "error", { "allowOptionalChaining": false, }, ], "@typescript-eslint/no-unsafe-return": [ "error", ], "@typescript-eslint/no-unsafe-type-assertion": [ "error", ], "@typescript-eslint/no-unsafe-unary-minus": [ "error", ], "@typescript-eslint/no-unused-expressions": [ "error", { "allowShortCircuit": false, "allowTernary": false, "allowTaggedTemplates": false, "enforceForJSX": true, "ignoreDirectives": false, }, ], "@typescript-eslint/no-unused-vars": [ "error", { "vars": "all", "varsIgnorePattern": "", "args": "all", "argsIgnorePattern": "", "caughtErrors": "all", "caughtErrorsIgnorePattern": "", "destructuredArrayIgnorePattern": "", "ignoreClassWithStaticInitBlock": false, "ignoreRestSiblings": false, "ignoreUsingDeclarations": false, "reportUsedIgnorePattern": false, }, ], "@typescript-eslint/no-use-before-define": [ "error", { "functions": true, "classes": true, "variables": true, "allowNamedExports": false, "enums": true, "typedefs": true, "ignoreTypeReferences": false, }, ], "@typescript-eslint/no-useless-constructor": [ "error", ], "@typescript-eslint/no-useless-empty-export": [ "error", ], "@typescript-eslint/no-wrapper-object-types": [ "error", ], "@typescript-eslint/non-nullable-type-assertion-style": [ "error", ], "@typescript-eslint/only-throw-error": [ "error", { "allow": [], "allowRethrowing": true, "allowThrowingAny": false, "allowThrowingUnknown": false, }, ], "@typescript-eslint/parameter-properties": [ "error", ], "@typescript-eslint/prefer-as-const": [ "error", ], "@typescript-eslint/prefer-destructuring": [ "error", { "VariableDeclarator": { "array": true, "object": true }, "AssignmentExpression": { "array": true, "object": true }, }, { "enforceForRenamedProperties": true, "enforceForDeclarationWithTypeAnnotation": true, }, ], "@typescript-eslint/prefer-enum-initializers": [ "error", ], "@typescript-eslint/prefer-find": [ "error", ], "@typescript-eslint/prefer-for-of": [ "error", ], "@typescript-eslint/prefer-function-type": [ "error", ], "@typescript-eslint/prefer-includes": [ "error", ], "@typescript-eslint/prefer-literal-enum-member": [ "error", { "allowBitwiseExpressions": false, }, ], "@typescript-eslint/prefer-namespace-keyword": [ "error", ], "@typescript-eslint/prefer-nullish-coalescing": [ "error", { "ignoreBooleanCoercion": false, "ignoreConditionalTests": false, "ignoreIfStatements": false, "ignoreMixedLogicalExpressions": false, "ignorePrimitives": { "bigint": false, "boolean": false, "number": false, "string": false, }, "ignoreTernaryTests": false, }, ], "@typescript-eslint/prefer-optional-chain": [ "error", { "checkAny": true, "checkBigInt": true, "checkBoolean": true, "checkNumber": true, "checkString": true, "checkUnknown": true, "requireNullish": true, }, ], "@typescript-eslint/prefer-promise-reject-errors": [ "error", { "allowEmptyReject": false, "allowThrowingAny": false, "allowThrowingUnknown": false, }, ], "@typescript-eslint/prefer-readonly": [ "error", { "onlyInlineLambdas": false, }, ], "@typescript-eslint/prefer-readonly-parameter-types": [ "error", { "allow": [], "checkParameterProperties": true, "ignoreInferredTypes": false, "treatMethodsAsReadonly": false, }, ], "@typescript-eslint/prefer-reduce-type-parameter": [ "error", ], "@typescript-eslint/prefer-regexp-exec": [ "error", ], "@typescript-eslint/prefer-return-this-type": [ "error", ], "@typescript-eslint/prefer-string-starts-ends-with": [ "error", { "allowSingleElementEquality": "never", }, ], "@typescript-eslint/promise-function-async": [ "error", { "allowAny": true, "allowedPromiseNames": [], "checkArrowFunctions": true, "checkFunctionDeclarations": true, "checkFunctionExpressions": true, "checkMethodDeclarations": true, }, ], "@typescript-eslint/related-getter-setter-pairs": [ "error", ], "@typescript-eslint/require-array-sort-compare": [ "error", { "ignoreStringArrays": true, }, ], "@typescript-eslint/require-await": [ "error", ], "@typescript-eslint/restrict-plus-operands": [ "error", { "allowAny": false, "allowBoolean": false, "allowNullish": false, "allowNumberAndString": false, "allowRegExp": false, }, ], "@typescript-eslint/restrict-template-expressions": [ "error", { "allow": [{ "from": "lib", "name": ["Error", "URL", "URLSearchParams"] }], "allowAny": false, "allowBoolean": false, "allowNever": false, "allowNullish": false, "allowNumber": false, "allowRegExp": false, }, ], "@typescript-eslint/return-await": [ "error", "always", ], "@typescript-eslint/strict-boolean-expressions": [ "error", { "allowAny": false, "allowNullableBoolean": false, "allowNullableEnum": false, "allowNullableNumber": false, "allowNullableObject": false, "allowNullableString": false, "allowNumber": false, "allowString": false, }, ], "@typescript-eslint/switch-exhaustiveness-check": [ "error", { "allowDefaultCaseForExhaustiveSwitch": false, "considerDefaultExhaustiveForUnions": false, "requireDefaultForNonUnion": true, }, ], "@typescript-eslint/triple-slash-reference": [ "error", { "lib": "never", "path": "never", "types": "never", }, ], "@typescript-eslint/unbound-method": [ "error", { "ignoreStatic": false, }, ], "@typescript-eslint/unified-signatures": [ "error", { "ignoreDifferentlyNamedParameters": false, "ignoreOverloadsWithDifferentJSDoc": false, }, ], "@typescript-eslint/use-unknown-in-catch-callback-variable": [ "error", ], }, }, ];