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