X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=.eslintrc;h=a32321444c505a03c36a257ae7ed49c49eefe4de;hb=6c6e9c29422663a5f256a053d29cb35e51693f28;hp=6089a14b3c2baaee4a2b28494157333ea39b8dba;hpb=7dde0b73302613be132c41e1f28a42de555dc2b6;p=e-mobility-charging-stations-simulator.git diff --git a/.eslintrc b/.eslintrc index 6089a14b..a3232144 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,24 +1,211 @@ { - "parser": "babel-eslint", + "root": true, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "./tsconfig.json" + }, "extends": [ "eslint:recommended", - "plugin:flowtype/recommended", - "node", - "google" + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "plugin:import/errors", + "plugin:import/warnings", + "plugin:import/typescript", + "plugin:jsdoc/recommended" ], "plugins": [ - "flowtype" + "import", + "jsdoc", + "@typescript-eslint" ], + "settings": { + "jsdoc": { + "mode": "typescript" + } + }, "rules": { - "require-jsdoc": 0, - "import/no-commonjs": [ + "indent": "off", + "@typescript-eslint/indent": [ + "error", 2, { - "allowRequire": true, - "allowPrimitiveModules": true + "SwitchCase": 1, + "FunctionDeclaration": { + "parameters": 2 + }, + "FunctionExpression": { + "parameters": 2 + } } ], - "import/no-nodejs-modules": 0, - "flowtype/no-types-missing-file-annotation": 0 + "@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", + "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", + "no-empty": "error", + "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", + { + "max": 2, + "maxEOF": 1 + } + ], + "block-spacing": "error", + // "capitalized-comments": [ + // "error", + // "always", + // { + // "ignoreConsecutiveComments": true, + // "ignorePattern": "pragma|ignored" + // } + // ], + "eol-last": [ + "error", + "always" + ], + "consistent-this": [ + "error", + "self" + ], + "func-call-spacing": [ + "error", + "never" + ], + "keyword-spacing": [ + "error" + ], + "id-blacklist": [ + "error", + "any", + "Number", + "number", + "String", + "string", + "Boolean", + "boolean", + "Undefined", + "undefined", + "Symbol", + "symbol" + ], + "linebreak-style": [ + "error", + "unix" + ], + "max-len": [ + "warn", + { + "code": 180, + "ignoreComments": true, + "ignoreUrls": true, + "ignoreStrings": true, + "ignoreTemplateLiterals": true, + "ignoreRegExpLiterals": true, + "ignorePattern": "(^(import|export)|(public|private))\\s.+;" + } + ], + "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", + "spaced-comment": [ + "error", + "always" + ], + "switch-colon-spacing": "error", + "arrow-body-style": [ + "error", + "as-needed" + ], + "arrow-parens": [ + "error", + "always" + ], + "arrow-spacing": "error", + "no-duplicate-imports": "error", + "no-var": "error", + "prefer-const": "error", + "sort-imports": [ + "warn", + { + "ignoreCase": false, + "ignoreDeclarationSort": false, + "ignoreMemberSort": false, + "memberSyntaxSortOrder": [ + "none", + "all", + "multiple", + "single" + ] + } + ], + "object-curly-spacing": [ + "error", + "always" + ], + "lines-between-class-members": [ + "error", + "always", + { + "exceptAfterSingleLine": true + } + ], + "quotes": [ + "error", + "single" + ] } }