{ "extends": [ "airbnb-base", "airbnb-typescript/base", "plugin:import/recommended", "plugin:typescript-sort-keys/recommended" ], "plugins": [ "@typescript-eslint", "typescript-sort-keys", "sort-destructure-keys", "sort-keys-fix", "import" ], "rules": { "@typescript-eslint/naming-convention": ["error", { "selector": "enum", "format": ["PascalCase", "UPPER_CASE"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }], "@typescript-eslint/member-delimiter-style": [ "error", { "multiline": { "delimiter": "semi", "requireLast": true }, "singleline": { "delimiter": "semi", "requireLast": false }, "multilineDetection": "brackets" } ], "@typescript-eslint/sort-type-constituents": [ "error", { "checkIntersections": true, "checkUnions": true, "groupOrder": [ "named", "keyword", "operator", "literal", "function", "import", "conditional", "object", "tuple", "intersection", "union", "nullish" ] } ], "@typescript-eslint/type-annotation-spacing": [ "error", { "before": false, "after": true, "overrides": { "arrow": { "before": true } } } ], "import/no-extraneous-dependencies": [ "error", { "devDependencies": true } ], "import/order": [ "error", { "alphabetize": { "order": "asc" }, "groups": [ "builtin", "external", "internal", "parent", [ "index", "sibling" ], "object" ], "newlines-between": "always", "pathGroups": [ { "pattern": ".*/**/*.scss", "group": "sibling", "position": "after" }, { "pattern": "@/**/*", "group": "parent", "position": "after" } ], "pathGroupsExcludedImportTypes": [] } ], "import/prefer-default-export": "off", "max-len": [ "error", 140 ], "no-console": [ "error", { "allow": [ "warn", "error" ] } ], "sort-destructure-keys/sort-destructure-keys": [ "error", { "caseSensitive": false } ], "sort-keys": [ "error", "asc", { "caseSensitive": true, "natural": false, "minKeys": 2 } ], "sort-keys-fix/sort-keys-fix": "error" }, "parser": "@typescript-eslint/parser", "parserOptions": { "project": "./tsconfig.json" }, "root": true, "settings": { "import/parsers": { "@typescript-eslint/parser": [ ".ts"] } } }