X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=.eslintrc;h=adb3c787842e635fb05b958d2b6b69e2d103ef7c;hb=9d73266c8bb85d7e2bc1fab9954a76910fd689eb;hp=e98414f074edaf5b4d49e579a0aa437fbb25e679;hpb=100680888f3b49453ddb4081988a480ee3030d07;p=e-mobility-charging-stations-simulator.git diff --git a/.eslintrc b/.eslintrc index e98414f0..adb3c787 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,47 +1,38 @@ { "root": true, - "parser": "@typescript-eslint/parser", + "env": { + "es2020": true, + "node": true, + "mocha": true + }, "parserOptions": { - "project": "./tsconfig.json" + "ecmaVersion": 2020, + "sourceType": "module" }, "extends": [ "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-requiring-type-checking", - "plugin:import/errors", - "plugin:import/warnings", - "plugin:import/typescript", + "plugin:import/recommended", "plugin:jsdoc/recommended", "plugin:prettier/recommended" ], - "plugins": ["import", "jsdoc", "@typescript-eslint"], + "plugins": ["import", "jsdoc"], "settings": { "jsdoc": { "mode": "typescript" + }, + "import/resolver": { + "typescript": { + "project": "./tsconfig.json" + } } }, "rules": { - "@typescript-eslint/array-type": "off", - "semi": "off", - "@typescript-eslint/semi": ["error", "always"], "space-before-blocks": ["error", "always"], - "@typescript-eslint/no-empty-function": [ - "warn", - { - "allow": ["arrowFunctions", "methods"] - } - ], - "@typescript-eslint/member-ordering": "error", - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/promise-function-async": "error", - "@typescript-eslint/no-misused-promises": "error", "curly": ["error", "all"], "brace-style": "error", "eqeqeq": ["error", "always"], "no-else-return": "error", "no-eq-null": "error", - "no-undefined": "error", "no-extra-bind": "error", "no-lone-blocks": "error", "no-multi-spaces": "error", @@ -49,8 +40,6 @@ "no-return-assign": ["error", "always"], "no-useless-catch": "error", "no-useless-return": "error", - "no-shadow": "off", // This one is generating false positive no-shadow errors on exported/const enums - "@typescript-eslint/no-shadow": "error", "no-multiple-empty-lines": [ "error", { @@ -89,21 +78,13 @@ "max-len": [ "warn", { - "code": 80, + "code": 100, "ignoreUrls": true } ], "no-lonely-if": "error", "no-trailing-spaces": "error", "no-whitespace-before-property": "error", - "space-before-function-paren": [ - "error", - { - "anonymous": "never", - "named": "never", - "asyncArrow": "always" - } - ], "space-in-parens": ["error", "never"], "space-infix-ops": "error", "space-unary-ops": "error", @@ -119,9 +100,31 @@ "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"], @@ -143,12 +146,38 @@ }, "overrides": [ { - "files": ["*.js"], + "files": ["**/*.ts"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 2020, + "sourceType": "module", + "project": "./tsconfig.json" + }, + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "plugin:import/typescript" + ], + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/array-type": "off", + "semi": "off", + "@typescript-eslint/semi": ["error", "always"], + "@typescript-eslint/no-empty-function": "warn", + "@typescript-eslint/member-ordering": "error", + "@typescript-eslint/await-thenable": "error", + "@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 + "@typescript-eslint/no-shadow": "error" + } + }, + { + "files": ["**/*.js"], "extends": "plugin:node/recommended", "rules": { - "node/shebang": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-var-requires": "off" + "node/shebang": "off" } } ]