Merge branch 'master' into waittime
[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',
86bf340d
JB
41 'Uint8',
42 'Uint16',
43 'Uint32',
44 'Uint64',
ca6c7d70 45 'benny',
fe2f6f84 46 'browserslist',
e4bc7a49 47 'builtins',
5c5a1fb7 48 'christopher',
7a6a0a96 49 'cjs',
74750c7f 50 'comparator',
23ff945a
JB
51 'cpu',
52 'cpus',
7a6a0a96 53 'ctx',
30eafb1e 54 'deprecations',
adc3c320 55 'dequeue',
a0d41544 56 'dequeued',
5c5a1fb7 57 'ecma',
adc3c320 58 'enqueue',
3832ad95 59 'enum',
02706357 60 'errored',
e5a5c0fc 61 'esm',
bdaf31cd 62 'fibonacci',
7a6a0a96 63 'fs',
a76fac14 64 'inheritDoc',
5c5a1fb7 65 'jsdoc',
7a6a0a96 66 'microjob',
fe18768d 67 'mjs',
fe2f6f84 68 'num',
23ff945a 69 'os',
7a6a0a96 70 'piscina',
8d75fd5f 71 'pnpm',
a35560ba 72 'poolifier',
7a6a0a96 73 'poolify',
5c5a1fb7 74 'readonly',
d21911e6 75 'resize',
5c5a1fb7 76 'serializable',
a3809289 77 'sinon',
7a6a0a96
JB
78 'threadjs',
79 'threadwork',
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
JB
141 {
142 files: ['benchmarks/**/*.js'],
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 },
583a27ce
JB
153 {
154 files: ['examples/**/*.js'],
155 rules: {
2f8c5b5c 156 'n/no-missing-require': 'off',
305aeaa7
JB
157 'jsdoc/require-jsdoc': 'off'
158 }
3c5eaeb9 159 }
38e795c1 160 ]
6a6e81d0 161})