1module.exports = {
2 parserOptions: {
3 ecmaVersion: 9,
4 sourceType: 'module',
5 ecmaFeatures: {
6 modules: true,
7 },
8 },
9 extends: ['prettier'],
10 plugins: ['prettier', 'tsdoc'],
11 ignorePatterns: ['node_modules/', 'dist/', 'coverage/', 'perf/'],
12 rules: {
13 'sort-keys': 'off',
14 'no-console': ['error', { allow: ['warn', 'error'] }],
15 'prefer-arrow/prefer-arrow-functions': 'off',
16 'prefer-rest-params': 'off',
17
18 'prettier/prettier': [
19 'error',
20 {
21 singleQuote: true,
22 arrowParens: 'avoid',
23 trailingComma: 'es5',
24 },
25 ],
26 },
27
28 overrides: [
29 {
30 files: ['*.ts'],
31 parser: '@typescript-eslint/parser',
32 extends: ['plugin:@typescript-eslint/recommended', 'prettier'],
33 rules: {
34 '@typescript-eslint/explicit-module-boundary-types': 'off',
35 '@typescript-eslint/no-use-before-define': 'off',
36 '@typescript-eslint/ban-types': 'off',
37 '@typescript-eslint/ban-ts-comment': 'off',
38 '@typescript-eslint/member-ordering': 'off',
39 '@typescript-eslint/explicit-member-accessibility': 'off',
40 '@typescript-eslint/no-object-literal-type-assertion': 'off',
41 '@typescript-eslint/explicit-function-return-type': 'off',
42 '@typescript-eslint/interface-name-prefix': 'off',
43 '@typescript-eslint/no-non-null-assertion': 'off',
44 '@typescript-eslint/no-misused-new': 'off',
45 '@typescript-eslint/no-explicit-any': 'off',
46 '@typescript-eslint/array-type': 'off',
47 '@typescript-eslint/no-empty-function': 'off',
48 '@typescript-eslint/no-unused-vars': 'off',
49 'prefer-rest-params': 'off',
50 'tsdoc/syntax': 'error',
51 },
52 },
53 ],
54};