10 "sourceType": "module"
14 "plugin:import/recommended",
15 "plugin:jsdoc/recommended",
16 "plugin:prettier/recommended"
18 "plugins": ["import", "jsdoc"],
25 "project": "./tsconfig.json"
30 "space-before-blocks": ["error", "always"],
31 "curly": ["error", "all"],
32 "brace-style": "error",
33 "eqeqeq": ["error", "always"],
34 "no-else-return": "error",
35 "no-eq-null": "error",
36 "no-extra-bind": "error",
37 "no-lone-blocks": "error",
38 "no-multi-spaces": "error",
40 "no-return-assign": ["error", "always"],
41 "no-useless-catch": "error",
42 "no-useless-return": "error",
43 "no-multiple-empty-lines": [
50 "block-spacing": "error",
51 // "capitalized-comments": [
55 // "ignoreConsecutiveComments": true,
56 // "ignorePattern": "pragma|ignored"
59 "eol-last": ["error", "always"],
60 "consistent-this": ["error", "self"],
61 "func-call-spacing": ["error", "never"],
62 "keyword-spacing": ["error"],
77 "linebreak-style": ["error", "unix"],
85 "no-lonely-if": "error",
86 "no-trailing-spaces": "error",
87 "no-whitespace-before-property": "error",
88 "space-in-parens": ["error", "never"],
89 "space-infix-ops": "error",
90 "space-unary-ops": "error",
91 "spaced-comment": ["error", "always"],
92 "switch-colon-spacing": "error",
93 "arrow-body-style": ["error", "as-needed"],
94 "arrow-parens": ["error", "always"],
95 "arrow-spacing": "error",
96 "no-duplicate-imports": "error",
98 "prefer-const": "error",
103 "ignoreDeclarationSort": true,
104 "ignoreMemberSort": false,
105 "memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
106 "allowSeparatedGroups": true
109 "import/no-unresolved": "error",
114 "builtin", // Built-in imports (come from NodeJS native) go first
115 "external", // <- External imports
116 "internal", // <- Absolute imports
117 ["sibling", "parent"], // <- Relative imports, the sibling and parent types they can be mingled together
118 "index", // <- Index imports
119 "unknown" // <- Unknown
121 "newlines-between": "always",
123 /* Sort in ascending order. Options: ["ignore", "asc", "desc"] */
125 /* Ignore case. Options: [true, false] */
126 "caseInsensitive": true
130 "object-curly-spacing": ["error", "always"],
131 "lines-between-class-members": [
135 "exceptAfterSingleLine": true
143 "allowTemplateLiterals": false
149 "files": ["**/*.ts"],
150 "parser": "@typescript-eslint/parser",
153 "sourceType": "module",
154 "project": "./tsconfig.json"
157 "plugin:@typescript-eslint/recommended",
158 "plugin:@typescript-eslint/recommended-requiring-type-checking",
159 "plugin:import/typescript"
161 "plugins": ["@typescript-eslint"],
163 "@typescript-eslint/array-type": "off",
165 "@typescript-eslint/semi": ["error", "always"],
166 "@typescript-eslint/no-empty-function": "warn",
167 "@typescript-eslint/member-ordering": "error",
168 "@typescript-eslint/await-thenable": "error",
169 "@typescript-eslint/no-floating-promises": "error",
170 "@typescript-eslint/promise-function-async": "error",
171 "@typescript-eslint/no-misused-promises": "error",
172 "no-shadow": "off", // This one is generating false positive no-shadow errors on exported/const enums
173 "@typescript-eslint/no-shadow": "error"
177 "files": ["**/*.js"],
178 "extends": "plugin:node/recommended",
180 "node/shebang": "off"