fix: unref check active interval
[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',
a3809289 75 'sinon',
7a6a0a96
JB
76 'threadjs',
77 'threadwork',
afd32690 78 'tinypool',
7d82d90e 79 'tsconfig',
38e795c1 80 'tsdoc',
fe2f6f84 81 'typedoc',
7a6a0a96 82 'unlink',
5c5a1fb7 83 'unregister',
7a6a0a96 84 'utf8',
2fc5cae3
JB
85 'workerpool',
86 'wwr'
5c5a1fb7
S
87 ],
88 skipIfMatch: ['^@.*', '^plugin:.*']
89 }
777b7824 90 ]
3c5eaeb9
JB
91 },
92 overrides: [
50eceb07 93 {
a17cc27a 94 files: ['**/*.ts'],
38e795c1 95 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
815d4289 96 parser: '@typescript-eslint/parser',
f3636726 97 parserOptions: {
2092c35f 98 project: './tsconfig.eslint.json'
f3636726 99 },
a17cc27a 100 extends: [
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})