738e7df94c87ec612a42acc67b43dff4fbd6a048
[poolifier.git] / .eslintrc.js
1 module.exports = {
2 env: {
3 es2021: true,
4 node: true,
5 mocha: true
6 },
7 parser: '@typescript-eslint/parser',
8 parserOptions: {
9 ecmaVersion: 2020,
10 sourceType: 'module'
11 },
12 plugins: ['@typescript-eslint', 'promise', 'prettierx', 'jsdoc'],
13 extends: [
14 'standard',
15 'eslint:recommended',
16 'plugin:@typescript-eslint/recommended',
17 'plugin:import/errors',
18 'plugin:import/warnings',
19 'plugin:import/typescript',
20 'plugin:promise/recommended',
21 'plugin:prettierx/standardx',
22 'plugin:prettierx/@typescript-eslint'
23 ],
24 rules: {
25 'no-void': 'off',
26
27 // We have some intentionally empty functions
28 '@typescript-eslint/no-empty-function': 'off',
29
30 '@typescript-eslint/no-inferrable-types': [
31 'error',
32 { ignoreProperties: true }
33 ],
34
35 'sort-imports': [
36 'warn',
37 {
38 ignoreMemberSort: true,
39 ignoreDeclarationSort: true
40 }
41 ]
42 },
43 overrides: [
44 {
45 files: ['src/**/*.ts'],
46 extends: 'plugin:jsdoc/recommended',
47 rules: {
48 'jsdoc/no-types': 'error',
49 'jsdoc/require-param-type': 'off',
50 'jsdoc/require-returns-type': 'off'
51 }
52 },
53 {
54 files: ['*.js'],
55 extends: 'plugin:node/recommended',
56 rules: {
57 '@typescript-eslint/no-unused-vars': 'off',
58 '@typescript-eslint/no-var-requires': 'off'
59 }
60 },
61 {
62 files: ['examples/typescript/**/*.ts'],
63 rules: {
64 'import/no-unresolved': 'off'
65 }
66 },
67 {
68 files: ['examples/**/*.js'],
69 rules: {
70 'node/no-missing-require': 'off'
71 }
72 }
73 ]
74 }