{ "extends": [ "airbnb-base", "plugin:@typescript-eslint/recommended", "prettier/@typescript-eslint", "plugin:prettier/recommended" ], "parserOptions": { "project": "./tsconfig.json" }, "rules": { "import/prefer-default-export": "off", "import/no-extraneous-dependencies": [ "error", { "devDependencies": ["src/**/*.spec.ts"], "optionalDependencies": false, "peerDependencies": false } ], "arrow-body-style": ["warn", "as-needed"], "func-names":"error", "no-use-before-define": "off", "no-continue": "off", "no-cond-assign": "off", "no-eval": "off", "no-plusplus": "off", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/explicit-function-return-type": [ "error", { "allowExpressions": true, "allowTypedFunctionExpressions": true, "allowHigherOrderFunctions": true } ], "no-restricted-syntax": [ "error", { "selector": "ForInStatement", "message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array." }, { "selector": "LabeledStatement", "message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand." }, { "selector": "WithStatement", "message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize." } ] }, "settings": { "import/resolver": { "node": { "extensions": [".js", ".ts"] } } }, "env": { "node": true, "browser": false }, "overrides": [ { "files": "src/**/*.spec.ts", "env": { "mocha": true }, "rules": { "no-unused-expressions": "off", "dot-notation": "off" } } ] }