10 "sourceType": "module"
12 "plugins": ["import"],
13 "extends": ["eslint:recommended", "plugin:import/recommended", "plugin:prettier/recommended"],
17 "project": "./tsconfig.json"
22 "semi": ["error", "always"],
23 "space-before-blocks": ["error", "always"],
24 "curly": ["error", "all"],
25 "brace-style": "error",
26 "eqeqeq": ["error", "always"],
27 "no-else-return": "error",
28 "no-eq-null": "error",
29 "no-extra-bind": "error",
30 "no-lone-blocks": "error",
31 "no-multi-spaces": "error",
33 "no-return-assign": ["error", "always"],
34 "no-useless-catch": "error",
35 "no-useless-return": "error",
36 "no-multiple-empty-lines": [
43 "block-spacing": "error",
44 // "capitalized-comments": [
48 // "ignoreConsecutiveComments": true,
49 // "ignorePattern": "pragma|ignored"
52 "eol-last": ["error", "always"],
53 "consistent-this": ["error", "self"],
54 "func-call-spacing": ["error", "never"],
55 "keyword-spacing": ["error"],
70 "linebreak-style": ["error", "unix"],
78 "no-lonely-if": "error",
79 "no-trailing-spaces": "error",
80 "no-whitespace-before-property": "error",
82 "space-in-parens": ["error", "never"],
83 "space-infix-ops": "error",
84 "space-unary-ops": "error",
85 "spaced-comment": ["error", "always"],
86 "switch-colon-spacing": "error",
87 "arrow-body-style": ["error", "as-needed"],
88 "arrow-parens": ["error", "always"],
89 "arrow-spacing": "error",
90 "no-duplicate-imports": "error",
92 "prefer-const": "error",
97 "ignoreDeclarationSort": true,
98 "ignoreMemberSort": false,
99 "memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
100 "allowSeparatedGroups": true
103 "import/no-unresolved": "error",
108 "builtin", // Built-in imports (come from NodeJS native) go first
109 "external", // <- External imports
110 "internal", // <- Absolute imports
111 ["sibling", "parent"], // <- Relative imports, the sibling and parent types they can be mingled together
112 "index", // <- Index imports
113 "unknown" // <- Unknown
115 "newlines-between": "always",
117 /* Sort in ascending order. Options: ["ignore", "asc", "desc"] */
119 /* Ignore case. Options: [true, false] */
120 "caseInsensitive": true
124 "object-curly-spacing": ["error", "always"],
125 "lines-between-class-members": [
129 "exceptAfterSingleLine": true
137 "allowTemplateLiterals": false
143 "files": ["**/*.ts"],
144 "parser": "@typescript-eslint/parser",
146 "project": "./tsconfig.json"
148 "plugins": ["@typescript-eslint", "eslint-plugin-tsdoc"],
150 "plugin:@typescript-eslint/eslint-recommended",
151 "plugin:@typescript-eslint/recommended",
152 "plugin:@typescript-eslint/recommended-requiring-type-checking",
153 "plugin:import/typescript"
156 "tsdoc/syntax": "warn",
157 "@typescript-eslint/array-type": "off",
159 "@typescript-eslint/semi": ["error", "always"],
160 "@typescript-eslint/no-empty-function": "warn",
161 "@typescript-eslint/member-ordering": "error",
162 "@typescript-eslint/await-thenable": "error",
163 "@typescript-eslint/no-floating-promises": "error",
164 "@typescript-eslint/promise-function-async": "error",
165 "@typescript-eslint/no-misused-promises": "error",
167 "@typescript-eslint/no-shadow": "error"
171 "files": ["**/*.js"],
172 "plugins": ["jsdoc"],
173 "extends": ["plugin:jsdoc/recommended", "plugin:n/recommended"],