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