diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..9e9abb6 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,113 @@ +{ + "env": { + "node": true, + "mocha": true, + "es6": true + }, + "extends": [ + "eslint:recommended", + "plugin:import/recommended", + "plugin:import/typescript", + "plugin:@typescript-eslint/recommended" + ], + "parser": "@typescript-eslint/parser", + "plugins": [ + "@typescript-eslint", + "only-warn", + "import" + ], + "ignorePatterns": [ + "*.js", + "*.d.ts" + ], + "rules": { + "@typescript-eslint/no-empty-interface": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/member-delimiter-style": [ + "warn", + { + "multiline": { + "delimiter": "comma", + "requireLast": false + }, + "singleline": { + "delimiter": "comma", + "requireLast": false + }, + "multilineDetection": "brackets", + "overrides": { + "interface": { + "multiline": { + "delimiter": "semi", + "requireLast": true + }, + "singleline": { + "delimiter": "semi", + "requireLast": false + } + } + } + } + ], + "@typescript-eslint/explicit-module-boundary-types": [ + "warn", + { + "allowArgumentsExplicitlyTypedAsAny": true + } + ], + "@typescript-eslint/semi": "warn", + "import/first": "warn", + "import/no-duplicates": "warn", + "import/no-unresolved": "warn", + "import/no-self-import": "warn", + "import/extensions": [ "warn", "always" ], + "import/order": [ "warn", { "newlines-between": "ignore", "alphabetize": { "order": "asc", "caseInsensitive": true } } ], + "semi": "off", // Using @typescript-eslint/semi instead + "no-else-return": "warn", + "no-trailing-spaces": "warn", + "eqeqeq": "warn", + "template-curly-spacing": "warn", + "no-template-curly-in-string": "warn", + "object-curly-spacing": [ + "warn", + "always" + ], + "array-bracket-spacing": [ + "warn", + "always" + ], + "linebreak-style": [ + "warn", + "unix" + ], + "quotes": [ + "warn", + "single" + ], + "eol-last": [ + "warn", + "always" + ], + "indent": [ + "warn", + 4, + { + "SwitchCase": 1 + } + ], + "no-empty": [ + "warn", + { + "allowEmptyCatch": true + } + ], + "no-multiple-empty-lines": [ + "warn", + { + "max": 999, + "maxEOF": 0 + } + ] + } +}