1 | module.exports = {
|
2 | env: {
|
3 | browser: true,
|
4 | es6: true,
|
5 | node: true,
|
6 | mocha: true
|
7 | },
|
8 |
|
9 | parser: '@typescript-eslint/parser',
|
10 | parserOptions: {
|
11 | sourceType: "module",
|
12 | ecmaVersion: 2019,
|
13 | project: 'tsconfig.json',
|
14 | },
|
15 |
|
16 | plugins: ['prettier', '@typescript-eslint'],
|
17 |
|
18 | extends: ['eslint:recommended', 'prettier'],
|
19 |
|
20 |
|
21 | rules: {
|
22 | 'prettier/prettier': ['off'],
|
23 |
|
24 | complexity: [2, 55],
|
25 | "max-statements": [2, 115],
|
26 | "no-unreachable": 1,
|
27 | "no-useless-escape": 0,
|
28 |
|
29 | "no-console": 0,
|
30 |
|
31 |
|
32 |
|
33 | "require-jsdoc": ["error", {
|
34 | require: {
|
35 | FunctionDeclaration: true,
|
36 | MethodDefinition: true,
|
37 | ClassDeclaration: true,
|
38 | ArrowFunctionExpression: false
|
39 | }
|
40 | }],
|
41 | "valid-jsdoc": [2, {
|
42 | requireReturnDescription: false,
|
43 | requireReturn: false,
|
44 | requireParamDescription: false,
|
45 | requireReturnType: true
|
46 | }],
|
47 | "guard-for-in": 1,
|
48 | },
|
49 | overrides: [
|
50 | {
|
51 | files: ['**/*.ts', '**/*.d.ts'],
|
52 | rules: {
|
53 | 'prettier/prettier': ['error'],
|
54 |
|
55 |
|
56 |
|
57 | 'valid-jsdoc': [
|
58 | 'error',
|
59 | {
|
60 | prefer: {
|
61 | arg: 'param',
|
62 | argument: 'param',
|
63 | return: 'returns',
|
64 | },
|
65 | requireParamDescription: true,
|
66 | requireParamType: false,
|
67 | requireReturn: false,
|
68 | requireReturnDescription: true,
|
69 | requireReturnType: false,
|
70 | },
|
71 | ],
|
72 |
|
73 |
|
74 | '@typescript-eslint/member-naming': [
|
75 | 'error',
|
76 | { private: '^_', protected: '^_', public: '^[^_]' },
|
77 | ],
|
78 | '@typescript-eslint/no-parameter-properties': 'off',
|
79 | '@typescript-eslint/no-useless-constructor': 'error',
|
80 | '@typescript-eslint/prefer-readonly': 'error',
|
81 |
|
82 |
|
83 | '@typescript-eslint/no-unnecessary-type-assertion': 'error',
|
84 | '@typescript-eslint/prefer-includes': 'error',
|
85 | '@typescript-eslint/prefer-regexp-exec': 'error',
|
86 |
|
87 |
|
88 |
|
89 |
|
90 | '@typescript-eslint/no-use-before-define': [
|
91 | 'error',
|
92 | { functions: false, classes: false, typedefs: false },
|
93 | ],
|
94 |
|
95 | 'no-dupe-class-members': 'off',
|
96 |
|
97 | 'no-case-declarations': 'off',
|
98 |
|
99 | 'no-unused-vars': 'off',
|
100 |
|
101 | 'valid-typeof': 'off',
|
102 | },
|
103 | },
|
104 | {
|
105 | files: [
|
106 | "lib/index-bundle.ts",
|
107 | "lib/index.ts",
|
108 | "lib/network/gephiParser.ts",
|
109 | "test/NodesHandler.test.ts",
|
110 | "test/dot-parser/dot-parser.test.ts",
|
111 | "test/edges/bezier-edge-dynamic.test.ts",
|
112 | "test/edges/bezier-edge-static.test.ts",
|
113 | "test/edges/cubic-bezier-edge.test.ts",
|
114 | "test/edges/edge-base.test.ts",
|
115 | "test/edges/end-points.test.ts",
|
116 | "test/edges/helpers.ts",
|
117 | "test/edges/straight-edge.test.ts",
|
118 | "test/gephi-parser.test.ts",
|
119 | "test/helpers/index.ts"
|
120 | ],
|
121 | rules: {
|
122 | "prettier/prettier": [
|
123 | "error",
|
124 | {
|
125 | endOfLine: "lf",
|
126 | parser: "typescript",
|
127 | printWidth: 80,
|
128 | quoteProps: "consistent",
|
129 | semi: false,
|
130 | singleQuote: true,
|
131 | tabWidth: 2,
|
132 | trailingComma: "es5",
|
133 | useTabs: false
|
134 | }
|
135 | ],
|
136 |
|
137 |
|
138 |
|
139 | "valid-jsdoc": [
|
140 | "error",
|
141 | {
|
142 | prefer: {
|
143 | arg: "param",
|
144 | argument: "param",
|
145 | return: "returns"
|
146 | },
|
147 | requireParamDescription: true,
|
148 | requireParamType: false,
|
149 | requireReturn: false,
|
150 | requireReturnDescription: true,
|
151 | requireReturnType: false
|
152 | }
|
153 | ],
|
154 |
|
155 |
|
156 | "@typescript-eslint/member-naming": [
|
157 | "error",
|
158 | { private: "^_", protected: "^_", public: "^[^_]" }
|
159 | ],
|
160 | "@typescript-eslint/no-parameter-properties": "off",
|
161 | "@typescript-eslint/no-useless-constructor": "error",
|
162 | "@typescript-eslint/prefer-readonly": "error",
|
163 |
|
164 |
|
165 | "@typescript-eslint/no-unnecessary-type-assertion": "error",
|
166 | "@typescript-eslint/prefer-includes": "error",
|
167 | "@typescript-eslint/prefer-regexp-exec": "error",
|
168 |
|
169 |
|
170 |
|
171 |
|
172 | "@typescript-eslint/no-use-before-define": [
|
173 | "error",
|
174 | { functions: false, classes: false, typedefs: false }
|
175 | ],
|
176 |
|
177 | "no-dupe-class-members": "off",
|
178 |
|
179 | "no-case-declarations": "off",
|
180 |
|
181 | "no-unused-vars": "off",
|
182 |
|
183 | "valid-typeof": "off"
|
184 | }
|
185 | },
|
186 | ]
|
187 | };
|