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