{ "parser": "@typescript-eslint/parser", "extends": [ "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" // uses the recommended rules from the @typescript-eslint/eslint-plugin ], "parserOptions": { "ecmaVersion": 2018, "sourceType": "module" }, "ignorePatterns": [ "dist" ], "rules": { "quotes": ["warn", "single"], "indent": ["warn", 2, { "SwitchCase": 1 }], "semi": ["error", "always"], "comma-dangle": ["warn", "always-multiline"], "dot-notation": "off", "eqeqeq": "warn", "eol-last": ["warn", "always"], "curly": ["warn", "all"], "brace-style": ["warn"], "prefer-arrow-callback": ["warn"], "max-len": ["warn", 160], "no-console": ["warn"], // Use the provided Homebridge log API instead "no-non-null-assertion": ["off"], "comma-spacing": ["error"], "no-multi-spaces": ["warn", { "ignoreEOLComments": false }], "no-trailing-spaces": ["warn"], "lines-between-class-members": ["warn", "always", {"exceptAfterSingleLine": true}], "operator-linebreak": ["warn", "before", { "overrides": { "?": "before", ":": "before" } }], "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/semi": ["warn"], "@typescript-eslint/member-delimiter-style": ["warn"], "@typescript-eslint/no-explicit-any": ["off"] } }