{
"root": true,
+ "env": {
+ "es2020": true,
+ "node": true,
+ "mocha": true
+ },
+ "parserOptions": {
+ "ecmaVersion": 2020,
+ "sourceType": "module"
+ },
"extends": [
"eslint:recommended",
- "plugin:import/errors",
- "plugin:import/warnings",
+ "plugin:import/recommended",
"plugin:jsdoc/recommended",
"plugin:prettier/recommended"
],
"settings": {
"jsdoc": {
"mode": "typescript"
+ },
+ "import/resolver": {
+ "typescript": {
+ "project": "./tsconfig.json"
+ }
}
},
"rules": {
+ "semi": ["error", "always"],
"space-before-blocks": ["error", "always"],
"curly": ["error", "all"],
"brace-style": "error",
"no-lonely-if": "error",
"no-trailing-spaces": "error",
"no-whitespace-before-property": "error",
+ "no-shadow": "error",
"space-in-parens": ["error", "never"],
"space-infix-ops": "error",
"space-unary-ops": "error",
"warn",
{
"ignoreCase": false,
- "ignoreDeclarationSort": false,
+ "ignoreDeclarationSort": true,
"ignoreMemberSort": false,
- "memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
+ "memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
+ "allowSeparatedGroups": true
+ }
+ ],
+ "import/no-unresolved": "error",
+ "import/order": [
+ "error",
+ {
+ "groups": [
+ "builtin", // Built-in imports (come from NodeJS native) go first
+ "external", // <- External imports
+ "internal", // <- Absolute imports
+ ["sibling", "parent"], // <- Relative imports, the sibling and parent types they can be mingled together
+ "index", // <- Index imports
+ "unknown" // <- Unknown
+ ],
+ "newlines-between": "always",
+ "alphabetize": {
+ /* Sort in ascending order. Options: ["ignore", "asc", "desc"] */
+ "order": "asc",
+ /* Ignore case. Options: [true, false] */
+ "caseInsensitive": true
+ }
}
],
"object-curly-spacing": ["error", "always"],
"files": ["**/*.ts"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
+ "ecmaVersion": 2020,
+ "sourceType": "module",
"project": "./tsconfig.json"
},
"extends": [
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/promise-function-async": "error",
"@typescript-eslint/no-misused-promises": "error",
- "no-shadow": "off", // This one is generating false positive no-shadow errors on exported/const enums
+ "no-shadow": "off",
"@typescript-eslint/no-shadow": "error"
}
},