fix: validate worker node event to wait
[poolifier.git] / .eslintrc.cjs
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: {
ded253e2
JB
11 sourceType: 'module',
12 ecmaVersion: 2022
6d0425b4 13 },
ded253e2 14 plugins: ['simple-import-sort', '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: {
7d1fc6d3 23 project: './tsconfig.json'
b70e9c5e
JB
24 }
25 }
26 },
777b7824 27 rules: {
ded253e2
JB
28 'simple-import-sort/imports': 'error',
29 'simple-import-sort/exports': 'error',
5c5a1fb7
S
30
31 'spellcheck/spell-checker': [
32 'warn',
33 {
34 skipWords: [
0804b9b4 35 'argv',
d68ce4c6 36 'axios',
494d9576 37 'benoit',
8f01ffbe 38 'bmf',
fe2f6f84 39 'browserslist',
e4bc7a49 40 'builtins',
5c5a1fb7 41 'christopher',
7a6a0a96 42 'cjs',
e102732c 43 'cloneable',
74750c7f 44 'comparator',
23ff945a
JB
45 'cpu',
46 'cpus',
147be6fe 47 'cryptographically',
7a6a0a96 48 'ctx',
65729b19 49 'decrement',
30eafb1e 50 'deprecations',
574b351d 51 'deque',
adc3c320 52 'dequeue',
a0d41544 53 'dequeued',
dad86fd8 54 'deregisters',
b40c4b06 55 'dts',
5c5a1fb7 56 'ecma',
62c15a68 57 'elu',
adc3c320 58 'enqueue',
3832ad95 59 'enum',
02706357 60 'errored',
e5a5c0fc 61 'esm',
a8706532 62 'fastify',
bdaf31cd 63 'fibonacci',
a8706532 64 'fp',
7a6a0a96 65 'fs',
e97e8563 66 'func',
a76fac14 67 'inheritDoc',
02999424 68 'javascript',
5c5a1fb7 69 'jsdoc',
a29a2fac 70 'linebreak',
72855e92 71 'localhost',
7a6a0a96 72 'microjob',
fe18768d 73 'mjs',
3c5dc3fb 74 'nodemailer',
2ab81545 75 'npx',
fe2f6f84 76 'num',
23ff945a 77 'os',
62c15a68 78 'perf',
7a6a0a96 79 'piscina',
8d75fd5f 80 'pnpm',
a35560ba 81 'poolifier',
574b351d
JB
82 'prepend',
83 'prepends',
0804b9b4 84 'positionals',
02999424 85 'readdir',
5c5a1fb7 86 'readonly',
167c661c 87 'req',
d21911e6 88 'resize',
a3809289 89 'sinon',
9aef1431 90 'smtp',
7a6a0a96
JB
91 'threadjs',
92 'threadwork',
afd32690 93 'tinypool',
88c482fa
JB
94 'tld',
95 'tos',
7d82d90e 96 'tsconfig',
38e795c1 97 'tsdoc',
fe2f6f84 98 'typedoc',
7a6a0a96 99 'unlink',
dcd9851c 100 'unref',
7a6a0a96 101 'utf8',
2fc5cae3 102 'workerpool',
72855e92
JB
103 'ws',
104 'wss',
2fc5cae3 105 'wwr'
5c5a1fb7
S
106 ],
107 skipIfMatch: ['^@.*', '^plugin:.*']
108 }
777b7824 109 ]
3c5eaeb9
JB
110 },
111 overrides: [
50eceb07 112 {
a17cc27a 113 files: ['**/*.ts'],
38e795c1 114 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
815d4289 115 parser: '@typescript-eslint/parser',
f3636726 116 parserOptions: {
7d1fc6d3 117 project: './tsconfig.json'
f3636726 118 },
a17cc27a 119 extends: [
c63a35a0
JB
120 'plugin:@typescript-eslint/strict-type-checked',
121 'plugin:@typescript-eslint/stylistic-type-checked',
3aa14de1 122 'plugin:import/typescript',
7471ae6b 123 'love'
a17cc27a 124 ],
50eceb07 125 rules: {
67f3f2d6 126 'operator-linebreak': 'off',
afc003b2 127 'tsdoc/syntax': 'warn'
50eceb07
S
128 }
129 },
7a6a0a96
JB
130 {
131 files: ['examples/typescript/**/*.ts'],
132 rules: {
26bb464f
JB
133 'import/no-unresolved': [
134 'error',
135 {
136 ignore: [
137 '^axios$',
138 '^express$',
139 '^fastify$',
140 '^fastify-plugin$',
141 '^node-fetch$',
142 '^nodemailer$',
143 '^poolifier$',
144 '^ws$'
145 ]
146 }
147 ],
7288e334 148 '@typescript-eslint/no-unsafe-argument': 'off',
7a6a0a96 149 '@typescript-eslint/no-unsafe-call': 'off',
7288e334 150 '@typescript-eslint/no-unsafe-return': 'off',
95e50651 151 '@typescript-eslint/no-unsafe-assignment': 'off',
7288e334
JB
152 '@typescript-eslint/no-unsafe-member-access': 'off',
153 '@typescript-eslint/no-unnecessary-type-assertion': 'off',
417b3b41 154 '@typescript-eslint/no-redundant-type-constituents': 'off',
7288e334 155 '@typescript-eslint/strict-boolean-expressions': 'off',
8b81cdcf 156 '@typescript-eslint/return-await': 'off',
67f3f2d6 157 '@typescript-eslint/no-non-null-assertion': 'off'
7a6a0a96
JB
158 }
159 },
3c5eaeb9 160 {
28883f84 161 files: ['**/*.cjs', '**/*.js', '**/*.mjs'],
38e795c1 162 plugins: ['jsdoc'],
3aa14de1 163 extends: ['plugin:n/recommended', 'plugin:jsdoc/recommended', 'standard']
fa699c42
JB
164 },
165 {
28883f84 166 files: ['tests/**/*.cjs', 'tests/**/*.js', 'tests/**/*.mjs'],
305aeaa7
JB
167 rules: {
168 'jsdoc/require-jsdoc': 'off'
169 }
170 },
171 {
28883f84
JB
172 files: [
173 'benchmarks/**/*.cjs',
174 'benchmarks/**/*.js',
175 'benchmarks/**/*.mjs'
176 ],
fa699c42 177 rules: {
a17cc27a 178 'jsdoc/require-jsdoc': 'off'
fa699c42 179 }
583a27ce
JB
180 },
181 {
28883f84 182 files: ['examples/javascript/**/*.cjs', 'examples/javascript/**/*.js'],
583a27ce 183 rules: {
305aeaa7
JB
184 'jsdoc/require-jsdoc': 'off'
185 }
3c5eaeb9 186 }
38e795c1 187 ]
6a6e81d0 188})