feat: add fastify hybrid pools 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',
72855e92 67 'localhost',
7a6a0a96 68 'microjob',
fe18768d 69 'mjs',
2ab81545 70 'npx',
fe2f6f84 71 'num',
23ff945a 72 'os',
62c15a68 73 'perf',
7a6a0a96 74 'piscina',
8d75fd5f 75 'pnpm',
a35560ba 76 'poolifier',
7a6a0a96 77 'poolify',
5c5a1fb7 78 'readonly',
167c661c 79 'req',
d21911e6 80 'resize',
a3809289 81 'sinon',
7a6a0a96
JB
82 'threadjs',
83 'threadwork',
afd32690 84 'tinypool',
7d82d90e 85 'tsconfig',
38e795c1 86 'tsdoc',
fe2f6f84 87 'typedoc',
7a6a0a96 88 'unlink',
dcd9851c 89 'unref',
5c5a1fb7 90 'unregister',
7a6a0a96 91 'utf8',
2fc5cae3 92 'workerpool',
72855e92
JB
93 'ws',
94 'wss',
2fc5cae3 95 'wwr'
5c5a1fb7
S
96 ],
97 skipIfMatch: ['^@.*', '^plugin:.*']
98 }
777b7824 99 ]
3c5eaeb9
JB
100 },
101 overrides: [
50eceb07 102 {
a17cc27a 103 files: ['**/*.ts'],
38e795c1 104 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
815d4289 105 parser: '@typescript-eslint/parser',
f3636726 106 parserOptions: {
2092c35f 107 project: './tsconfig.eslint.json'
f3636726 108 },
a17cc27a 109 extends: [
a17cc27a 110 'plugin:@typescript-eslint/recommended',
f3636726 111 'plugin:@typescript-eslint/recommended-requiring-type-checking',
3aa14de1
JB
112 'plugin:import/typescript',
113 'standard-with-typescript'
a17cc27a 114 ],
50eceb07 115 rules: {
a17cc27a
JB
116 '@typescript-eslint/no-inferrable-types': [
117 'error',
118 { ignoreProperties: true }
119 ],
afc003b2 120 'tsdoc/syntax': 'warn'
50eceb07
S
121 }
122 },
7a6a0a96
JB
123 {
124 files: ['examples/typescript/**/*.ts'],
125 rules: {
7288e334
JB
126 'import/no-unresolved': 'off',
127 '@typescript-eslint/no-unsafe-argument': 'off',
7a6a0a96 128 '@typescript-eslint/no-unsafe-call': 'off',
7288e334 129 '@typescript-eslint/no-unsafe-return': 'off',
95e50651 130 '@typescript-eslint/no-unsafe-assignment': 'off',
7288e334
JB
131 '@typescript-eslint/no-unsafe-member-access': 'off',
132 '@typescript-eslint/no-unnecessary-type-assertion': 'off',
133 '@typescript-eslint/strict-boolean-expressions': 'off',
134 '@typescript-eslint/return-await': 'off'
7a6a0a96
JB
135 }
136 },
3c5eaeb9 137 {
30eafb1e 138 files: ['**/*.js', '**/*.mjs'],
38e795c1 139 plugins: ['jsdoc'],
3aa14de1 140 extends: ['plugin:n/recommended', 'plugin:jsdoc/recommended', 'standard']
fa699c42
JB
141 },
142 {
305aeaa7
JB
143 files: ['tests/**/*.js'],
144 rules: {
145 'jsdoc/require-jsdoc': 'off'
146 }
147 },
4bf99d51
JB
148 {
149 files: ['tests/pools/selection-strategies/**/*.js'],
150 rules: {
2f8c5b5c 151 'n/no-missing-require': 'off'
4bf99d51
JB
152 }
153 },
305aeaa7 154 {
c9577f2d 155 files: ['benchmarks/**/*.js', 'benchmarks/**/*.mjs'],
fa699c42 156 rules: {
a17cc27a 157 'jsdoc/require-jsdoc': 'off'
fa699c42 158 }
583a27ce 159 },
d44e66fc
JB
160 {
161 files: ['benchmarks/versus-external-pools/**/*.js'],
162 rules: {
2f8c5b5c 163 'n/no-missing-require': 'off'
d44e66fc
JB
164 }
165 },
c9577f2d
JB
166 {
167 files: ['benchmarks/versus-external-pools/**/*.mjs'],
168 rules: {
6056130c
JB
169 'n/no-missing-import': 'off',
170 'import/no-unresolved': 'off'
c9577f2d
JB
171 }
172 },
583a27ce 173 {
7a923e5b 174 files: ['examples/javascript/**/*.js'],
583a27ce 175 rules: {
2f8c5b5c 176 'n/no-missing-require': 'off',
305aeaa7
JB
177 'jsdoc/require-jsdoc': 'off'
178 }
3c5eaeb9 179 }
38e795c1 180 ]
6a6e81d0 181})