feat: add ws server request pool handlers example
[poolifier.git] / .eslintrc.js
CommitLineData
6a6e81d0
S
1const { defineConfig } = require('eslint-define-config')
2
3module.exports = defineConfig({
97c16550 4 root: true,
777b7824 5 env: {
54541487 6 es2022: true,
777b7824
S
7 node: true,
8 mocha: true
9 },
6d0425b4 10 parserOptions: {
54541487 11 ecmaVersion: 2022,
6d0425b4
JB
12 sourceType: 'module'
13 },
38e795c1 14 plugins: ['promise', 'spellcheck'],
777b7824 15 extends: [
777b7824 16 'eslint:recommended',
305aeaa7 17 'plugin:import/recommended',
78cea37e 18 'plugin:promise/recommended'
777b7824 19 ],
b70e9c5e
JB
20 settings: {
21 'import/resolver': {
22 typescript: {
23 project: './tsconfig.eslint.json'
24 }
25 }
26 },
777b7824 27 rules: {
fa699c42 28 'sort-imports': [
65d7a1c9 29 'error',
fa699c42 30 {
50aa7901 31 ignoreDeclarationSort: true
fa699c42 32 }
5c5a1fb7 33 ],
65d7a1c9 34 'import/order': 'error',
5c5a1fb7
S
35
36 'spellcheck/spell-checker': [
37 'warn',
38 {
39 skipWords: [
d68ce4c6 40 'axios',
494d9576 41 'benoit',
ca6c7d70 42 'benny',
fe2f6f84 43 'browserslist',
e4bc7a49 44 'builtins',
5c5a1fb7 45 'christopher',
7a6a0a96 46 'cjs',
e102732c 47 'cloneable',
74750c7f 48 'comparator',
23ff945a
JB
49 'cpu',
50 'cpus',
7a6a0a96 51 'ctx',
30eafb1e 52 'deprecations',
adc3c320 53 'dequeue',
a0d41544 54 'dequeued',
5c5a1fb7 55 'ecma',
62c15a68 56 'elu',
adc3c320 57 'enqueue',
3832ad95 58 'enum',
02706357 59 'errored',
e5a5c0fc 60 'esm',
a8706532 61 'fastify',
bdaf31cd 62 'fibonacci',
a8706532 63 'fp',
7a6a0a96 64 'fs',
a76fac14 65 'inheritDoc',
5c5a1fb7 66 'jsdoc',
7a6a0a96 67 'microjob',
fe18768d 68 'mjs',
2ab81545 69 'npx',
fe2f6f84 70 'num',
23ff945a 71 'os',
62c15a68 72 'perf',
7a6a0a96 73 'piscina',
8d75fd5f 74 'pnpm',
a35560ba 75 'poolifier',
7a6a0a96 76 'poolify',
5c5a1fb7 77 'readonly',
167c661c 78 'req',
d21911e6 79 'resize',
a3809289 80 'sinon',
7a6a0a96
JB
81 'threadjs',
82 'threadwork',
afd32690 83 'tinypool',
7d82d90e 84 'tsconfig',
38e795c1 85 'tsdoc',
fe2f6f84 86 'typedoc',
7a6a0a96 87 'unlink',
dcd9851c 88 'unref',
5c5a1fb7 89 'unregister',
7a6a0a96 90 'utf8',
2fc5cae3
JB
91 'workerpool',
92 'wwr'
5c5a1fb7
S
93 ],
94 skipIfMatch: ['^@.*', '^plugin:.*']
95 }
777b7824 96 ]
3c5eaeb9
JB
97 },
98 overrides: [
50eceb07 99 {
a17cc27a 100 files: ['**/*.ts'],
38e795c1 101 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
815d4289 102 parser: '@typescript-eslint/parser',
f3636726 103 parserOptions: {
2092c35f 104 project: './tsconfig.eslint.json'
f3636726 105 },
a17cc27a 106 extends: [
a17cc27a 107 'plugin:@typescript-eslint/recommended',
f3636726 108 'plugin:@typescript-eslint/recommended-requiring-type-checking',
3aa14de1
JB
109 'plugin:import/typescript',
110 'standard-with-typescript'
a17cc27a 111 ],
50eceb07 112 rules: {
a17cc27a
JB
113 '@typescript-eslint/no-inferrable-types': [
114 'error',
115 { ignoreProperties: true }
116 ],
afc003b2 117 'tsdoc/syntax': 'warn'
50eceb07
S
118 }
119 },
7a6a0a96
JB
120 {
121 files: ['examples/typescript/**/*.ts'],
122 rules: {
219d4044
JB
123 // 'import/no-unresolved': 'off',
124 // '@typescript-eslint/no-unsafe-argument': 'off',
7a6a0a96 125 '@typescript-eslint/no-unsafe-call': 'off',
219d4044 126 // '@typescript-eslint/no-unsafe-return': 'off',
95e50651 127 '@typescript-eslint/no-unsafe-assignment': 'off',
219d4044
JB
128 '@typescript-eslint/no-unsafe-member-access': 'off'
129 // '@typescript-eslint/no-unnecessary-type-assertion': 'off',
130 // '@typescript-eslint/strict-boolean-expressions': 'off',
131 // '@typescript-eslint/restrict-template-expressions': 'off',
132 // '@typescript-eslint/return-await': 'off'
7a6a0a96
JB
133 }
134 },
3c5eaeb9 135 {
30eafb1e 136 files: ['**/*.js', '**/*.mjs'],
38e795c1 137 plugins: ['jsdoc'],
3aa14de1 138 extends: ['plugin:n/recommended', 'plugin:jsdoc/recommended', 'standard']
fa699c42
JB
139 },
140 {
305aeaa7
JB
141 files: ['tests/**/*.js'],
142 rules: {
143 'jsdoc/require-jsdoc': 'off'
144 }
145 },
4bf99d51
JB
146 {
147 files: ['tests/pools/selection-strategies/**/*.js'],
148 rules: {
2f8c5b5c 149 'n/no-missing-require': 'off'
4bf99d51
JB
150 }
151 },
305aeaa7 152 {
c9577f2d 153 files: ['benchmarks/**/*.js', 'benchmarks/**/*.mjs'],
fa699c42 154 rules: {
a17cc27a 155 'jsdoc/require-jsdoc': 'off'
fa699c42 156 }
583a27ce 157 },
d44e66fc
JB
158 {
159 files: ['benchmarks/versus-external-pools/**/*.js'],
160 rules: {
2f8c5b5c 161 'n/no-missing-require': 'off'
d44e66fc
JB
162 }
163 },
c9577f2d
JB
164 {
165 files: ['benchmarks/versus-external-pools/**/*.mjs'],
166 rules: {
6056130c
JB
167 'n/no-missing-import': 'off',
168 'import/no-unresolved': 'off'
c9577f2d
JB
169 }
170 },
583a27ce 171 {
7a923e5b 172 files: ['examples/javascript/**/*.js'],
583a27ce 173 rules: {
2f8c5b5c 174 'n/no-missing-require': 'off',
305aeaa7
JB
175 'jsdoc/require-jsdoc': 'off'
176 }
3c5eaeb9 177 }
38e795c1 178 ]
6a6e81d0 179})