{ "parser": "@typescript-eslint/parser", "parserOptions": { "warnOnUnsupportedTypeScriptVersion": false, "ecmaVersion": 6, "sourceType": "module" }, "env": { "browser": false, "node": true, "es6": true }, "plugins": [ "@typescript-eslint", "jsdoc", "no-null", "import" ], "rules": { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/array-type": "error", "brace-style": "off", "@typescript-eslint/brace-style": ["error", "stroustrup", { "allowSingleLine": true }], "@typescript-eslint/naming-convention": [ "error", { "selector": "typeLike", "format": ["PascalCase"], "filter": { "regex": "^(__String|[A-Za-z]+_[A-Za-z]+)$", "match": false } }, { "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false }, "filter": { "regex": "^I(Arguments|TextWriter|O([A-Z][a-z]+[A-Za-z]*)?)$", "match": false } }, { "selector": "variable", "format": ["camelCase", "PascalCase", "UPPER_CASE"], "leadingUnderscore": "allow", "filter": { "regex": "^(_{1,2}filename|_{1,2}dirname|_+|[A-Za-z]+_[A-Za-z]+)$", "match": false } }, { "selector": "function", "format": ["camelCase", "PascalCase"], "leadingUnderscore": "allow", "filter": { "regex": "^[A-Za-z]+_[A-Za-z]+$", "match": false } }, { "selector": "parameter", "format": ["camelCase"], "leadingUnderscore": "allow", "filter": { "regex": "^(_+|[A-Za-z]+_[A-Z][a-z]+)$", "match": false } }, { "selector": "method", "format": ["camelCase", "PascalCase"], "leadingUnderscore": "allow", "filter": { "regex": "^[A-Za-z]+_[A-Za-z]+$", "match": false } }, { "selector": "memberLike", "format": ["camelCase"], "leadingUnderscore": "allow", "filter": { "regex": "^[A-Za-z]+_[A-Za-z]+$", "match": false } }, { "selector": "enumMember", "format": ["camelCase", "PascalCase"], "leadingUnderscore": "allow", "filter": { "regex": "^[A-Za-z]+_[A-Za-z]+$", "match": false } }, { "selector": "property", "format": null } ], "@typescript-eslint/consistent-type-definitions": ["error", "interface"], "@typescript-eslint/consistent-type-assertions": ["error", { "assertionStyle": "as" }], "max-statements-per-line": ["error", { "max": 1 }], "no-duplicate-imports": "off", "@typescript-eslint/no-duplicate-imports": "error", "@typescript-eslint/no-inferrable-types": "error", "@typescript-eslint/no-misused-new": "error", "@typescript-eslint/no-this-alias": "error", "no-unused-expressions": "off", "@typescript-eslint/no-unused-expressions": ["error", { "allowTernary": true }], "@typescript-eslint/prefer-for-of": "error", "@typescript-eslint/prefer-function-type": "error", "@typescript-eslint/prefer-namespace-keyword": "error", "quotes": "off", "@typescript-eslint/quotes": ["error", "double", { "avoidEscape": true, "allowTemplateLiterals": true }], "semi": "off", "@typescript-eslint/semi": "error", "space-before-function-paren": "off", "@typescript-eslint/space-before-function-paren": ["error", { "asyncArrow": "always", "anonymous": "always", "named": "never" }], "@typescript-eslint/triple-slash-reference": "error", "@typescript-eslint/type-annotation-spacing": "error", "@typescript-eslint/unified-signatures": "error", // scripts/eslint/rules "object-literal-surrounding-space": "error", "no-type-assertion-whitespace": "error", "type-operator-spacing": "error", "only-arrow-functions": ["error", { "allowNamedFunctions": true , "allowDeclarations": true }], "no-double-space": "error", "boolean-trivia": "error", "no-in-operator": "error", "simple-indent": "error", "debug-assert": "error", "no-keywords": "error", "one-namespace-per-file": "error", // eslint-plugin-import "import/no-extraneous-dependencies": ["error", { "optionalDependencies": false }], // eslint-plugin-no-null "no-null/no-null": "error", // eslint-plugin-jsdoc "jsdoc/check-alignment": "error", // eslint "constructor-super": "error", "curly": ["error", "multi-line"], "dot-notation": "error", "eqeqeq": "error", "linebreak-style": ["error", "windows"], "new-parens": "error", "no-caller": "error", "no-duplicate-case": "error", "no-empty": "error", "no-eval": "error", "no-extra-bind": "error", "no-fallthrough": "error", "no-new-func": "error", "no-new-wrappers": "error", "no-return-await": "error", "no-restricted-globals": ["error", { "name": "setTimeout" }, { "name": "clearTimeout" }, { "name": "setInterval" }, { "name": "clearInterval" }, { "name": "setImmediate" }, { "name": "clearImmediate" } ], "no-sparse-arrays": "error", "no-template-curly-in-string": "error", "no-throw-literal": "error", "no-trailing-spaces": "error", "no-undef-init": "error", "no-unsafe-finally": "error", "no-unused-labels": "error", "no-var": "error", "object-shorthand": "error", "prefer-const": "error", "prefer-object-spread": "error", "quote-props": ["error", "consistent-as-needed"], "space-in-parens": "error", "unicode-bom": ["error", "never"], "use-isnan": "error" } }