refactor: cleanup benchmarks code
[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: [
d21911e6 40 'Benoit',
ca6c7d70 41 'benny',
fe2f6f84 42 'browserslist',
e4bc7a49 43 'builtins',
5c5a1fb7 44 'christopher',
7a6a0a96 45 'cjs',
74750c7f 46 'comparator',
23ff945a
JB
47 'cpu',
48 'cpus',
7a6a0a96 49 'ctx',
30eafb1e 50 'deprecations',
adc3c320 51 'dequeue',
a0d41544 52 'dequeued',
5c5a1fb7 53 'ecma',
62c15a68 54 'elu',
adc3c320 55 'enqueue',
3832ad95 56 'enum',
02706357 57 'errored',
e5a5c0fc 58 'esm',
bdaf31cd 59 'fibonacci',
7a6a0a96 60 'fs',
a76fac14 61 'inheritDoc',
5c5a1fb7 62 'jsdoc',
7a6a0a96 63 'microjob',
fe18768d 64 'mjs',
fe2f6f84 65 'num',
23ff945a 66 'os',
62c15a68 67 'perf',
7a6a0a96 68 'piscina',
8d75fd5f 69 'pnpm',
a35560ba 70 'poolifier',
7a6a0a96 71 'poolify',
5c5a1fb7 72 'readonly',
d21911e6 73 'resize',
5c5a1fb7 74 'serializable',
a3809289 75 'sinon',
7a6a0a96
JB
76 'threadjs',
77 'threadwork',
7d82d90e 78 'tsconfig',
38e795c1 79 'tsdoc',
fe2f6f84 80 'typedoc',
7a6a0a96 81 'unlink',
5c5a1fb7 82 'unregister',
7a6a0a96 83 'utf8',
2fc5cae3
JB
84 'workerpool',
85 'wwr'
5c5a1fb7
S
86 ],
87 skipIfMatch: ['^@.*', '^plugin:.*']
88 }
777b7824 89 ]
3c5eaeb9
JB
90 },
91 overrides: [
50eceb07 92 {
a17cc27a 93 files: ['**/*.ts'],
38e795c1 94 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
815d4289 95 parser: '@typescript-eslint/parser',
f3636726 96 parserOptions: {
2092c35f 97 project: './tsconfig.eslint.json'
f3636726 98 },
a17cc27a 99 extends: [
f3636726 100 'plugin:@typescript-eslint/eslint-recommended',
a17cc27a 101 'plugin:@typescript-eslint/recommended',
f3636726 102 'plugin:@typescript-eslint/recommended-requiring-type-checking',
3aa14de1
JB
103 'plugin:import/typescript',
104 'standard-with-typescript'
a17cc27a 105 ],
50eceb07 106 rules: {
a17cc27a
JB
107 '@typescript-eslint/no-inferrable-types': [
108 'error',
109 { ignoreProperties: true }
110 ],
afc003b2 111 'tsdoc/syntax': 'warn'
50eceb07
S
112 }
113 },
7a6a0a96
JB
114 {
115 files: ['examples/typescript/**/*.ts'],
116 rules: {
7a6a0a96
JB
117 '@typescript-eslint/no-unsafe-argument': 'off',
118 '@typescript-eslint/no-unsafe-call': 'off',
119 '@typescript-eslint/no-unsafe-assignment': 'off'
120 }
121 },
3c5eaeb9 122 {
30eafb1e 123 files: ['**/*.js', '**/*.mjs'],
38e795c1 124 plugins: ['jsdoc'],
3aa14de1 125 extends: ['plugin:n/recommended', 'plugin:jsdoc/recommended', 'standard']
fa699c42
JB
126 },
127 {
305aeaa7
JB
128 files: ['tests/**/*.js'],
129 rules: {
130 'jsdoc/require-jsdoc': 'off'
131 }
132 },
4bf99d51
JB
133 {
134 files: ['tests/pools/selection-strategies/**/*.js'],
135 rules: {
2f8c5b5c 136 'n/no-missing-require': 'off'
4bf99d51
JB
137 }
138 },
305aeaa7 139 {
c9577f2d 140 files: ['benchmarks/**/*.js', 'benchmarks/**/*.mjs'],
fa699c42 141 rules: {
a17cc27a 142 'jsdoc/require-jsdoc': 'off'
fa699c42 143 }
583a27ce 144 },
d44e66fc
JB
145 {
146 files: ['benchmarks/versus-external-pools/**/*.js'],
147 rules: {
2f8c5b5c 148 'n/no-missing-require': 'off'
d44e66fc
JB
149 }
150 },
c9577f2d
JB
151 {
152 files: ['benchmarks/versus-external-pools/**/*.mjs'],
153 rules: {
6056130c
JB
154 'n/no-missing-import': 'off',
155 'import/no-unresolved': 'off'
c9577f2d
JB
156 }
157 },
583a27ce
JB
158 {
159 files: ['examples/**/*.js'],
160 rules: {
2f8c5b5c 161 'n/no-missing-require': 'off',
305aeaa7
JB
162 'jsdoc/require-jsdoc': 'off'
163 }
3c5eaeb9 164 }
38e795c1 165 ]
6a6e81d0 166})