{ "env": { "es6": true, "node": true, "jest/globals": true }, "extends": [ "plugin:@typescript-eslint/recommended", "prettier/@typescript-eslint", "plugin:prettier/recommended" ], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint", "jest" ], "parserOptions": { "ecmaVersion": 2018, "sourceType": "module", "project": "./tsconfig.json" }, "rules": { "@typescript-eslint/comma-dangle": ["error", "never"], "@typescript-eslint/camelcase": "off", "@typescript-eslint/naming-convention": [ "error", { "selector": "variable", "format": ["snake_case", "UPPER_CASE", "PascalCase"] }, { "selector": "function", "format": ["camelCase", "PascalCase"] }, { "selector": "property", "format": ["snake_case"] }, { "selector": "typeProperty", "format": ["snake_case"] }, { "selector": "parameter", "format": ["snake_case"], "leadingUnderscore": "allow" }, { "selector": "parameterProperty", "format": ["snake_case"] }, { "selector": "method", "format": ["camelCase"] }, { "selector": "typeMethod", "format": ["camelCase"] }, { "selector": "enumMember", "format": ["UPPER_CASE"] }, { "selector": "class", "format": ["PascalCase"] }, { "selector": "interface", "format": ["PascalCase"] }, { "selector": "typeAlias", "format": ["PascalCase"] }, { "selector": "enum", "format": ["PascalCase"] }, { "selector": "typeParameter", "format": ["PascalCase"] } ], "no-dupe-class-members": "off", "@typescript-eslint/explicit-function-return-type": ["error", { "allowExpressions": true }], "@typescript-eslint/explicit-member-accessibility": "error", "@typescript-eslint/member-delimiter-style": ["error", { "multiline": { "delimiter": "semi", "requireLast": true }, "singleline": { "delimiter": "semi", "requireLast": true } }], "@typescript-eslint/member-ordering": ["error", { "default": [ "public-static-field", "protected-static-field", "private-static-field", "static-field", "public-static-method", "protected-static-method", "private-static-method", "static-method", "public-instance-field", "protected-instance-field", "private-instance-field", "public-field", "protected-field", "private-field", "instance-field", "field", "constructor", "public-instance-method", "protected-instance-method", "private-instance-method", "public-method", "protected-method", "private-method", "instance-method", "method" ] }], "@typescript-eslint/no-empty-interface": "off", "@typescript-eslint/no-misused-new": "error", "@typescript-eslint/no-namespace": "error", "@typescript-eslint/no-non-null-assertion": "error", "@typescript-eslint/no-parameter-properties": "error", "@typescript-eslint/no-this-alias": "error", "@typescript-eslint/triple-slash-reference": "error", "@typescript-eslint/no-type-alias": "off", "@typescript-eslint/no-unnecessary-type-assertion": "error", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/no-unused-vars-experimental": "error", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-useless-constructor": "error", "@typescript-eslint/consistent-type-definitions": "error", "@typescript-eslint/restrict-plus-operands": "error" } }