fix: unref check active interval
[poolifier.git] / .eslintrc.js
1 const { defineConfig } = require('eslint-define-config')
2
3 module.exports = defineConfig({
4 root: true,
5 env: {
6 es2022: true,
7 node: true,
8 mocha: true
9 },
10 parserOptions: {
11 ecmaVersion: 2022,
12 sourceType: 'module'
13 },
14 plugins: ['promise', 'spellcheck'],
15 extends: [
16 'eslint:recommended',
17 'plugin:import/recommended',
18 'plugin:promise/recommended'
19 ],
20 settings: {
21 'import/resolver': {
22 typescript: {
23 project: './tsconfig.eslint.json'
24 }
25 }
26 },
27 rules: {
28 'sort-imports': [
29 'error',
30 {
31 ignoreDeclarationSort: true
32 }
33 ],
34 'import/order': 'error',
35
36 'spellcheck/spell-checker': [
37 'warn',
38 {
39 skipWords: [
40 'Benoit',
41 'benny',
42 'browserslist',
43 'builtins',
44 'christopher',
45 'cjs',
46 'cloneable',
47 'comparator',
48 'cpu',
49 'cpus',
50 'ctx',
51 'deprecations',
52 'dequeue',
53 'dequeued',
54 'ecma',
55 'elu',
56 'enqueue',
57 'enum',
58 'errored',
59 'esm',
60 'fibonacci',
61 'fs',
62 'inheritDoc',
63 'jsdoc',
64 'microjob',
65 'mjs',
66 'num',
67 'os',
68 'perf',
69 'piscina',
70 'pnpm',
71 'poolifier',
72 'poolify',
73 'readonly',
74 'resize',
75 'sinon',
76 'threadjs',
77 'threadwork',
78 'tinypool',
79 'tsconfig',
80 'tsdoc',
81 'typedoc',
82 'unlink',
83 'unregister',
84 'utf8',
85 'workerpool',
86 'wwr'
87 ],
88 skipIfMatch: ['^@.*', '^plugin:.*']
89 }
90 ]
91 },
92 overrides: [
93 {
94 files: ['**/*.ts'],
95 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
96 parser: '@typescript-eslint/parser',
97 parserOptions: {
98 project: './tsconfig.eslint.json'
99 },
100 extends: [
101 'plugin:@typescript-eslint/recommended',
102 'plugin:@typescript-eslint/recommended-requiring-type-checking',
103 'plugin:import/typescript',
104 'standard-with-typescript'
105 ],
106 rules: {
107 '@typescript-eslint/no-inferrable-types': [
108 'error',
109 { ignoreProperties: true }
110 ],
111 'tsdoc/syntax': 'warn'
112 }
113 },
114 {
115 files: ['examples/typescript/**/*.ts'],
116 rules: {
117 '@typescript-eslint/no-unsafe-argument': 'off',
118 '@typescript-eslint/no-unsafe-call': 'off',
119 '@typescript-eslint/no-unsafe-assignment': 'off'
120 }
121 },
122 {
123 files: ['**/*.js', '**/*.mjs'],
124 plugins: ['jsdoc'],
125 extends: ['plugin:n/recommended', 'plugin:jsdoc/recommended', 'standard']
126 },
127 {
128 files: ['tests/**/*.js'],
129 rules: {
130 'jsdoc/require-jsdoc': 'off'
131 }
132 },
133 {
134 files: ['tests/pools/selection-strategies/**/*.js'],
135 rules: {
136 'n/no-missing-require': 'off'
137 }
138 },
139 {
140 files: ['benchmarks/**/*.js', 'benchmarks/**/*.mjs'],
141 rules: {
142 'jsdoc/require-jsdoc': 'off'
143 }
144 },
145 {
146 files: ['benchmarks/versus-external-pools/**/*.js'],
147 rules: {
148 'n/no-missing-require': 'off'
149 }
150 },
151 {
152 files: ['benchmarks/versus-external-pools/**/*.mjs'],
153 rules: {
154 'n/no-missing-import': 'off',
155 'import/no-unresolved': 'off'
156 }
157 },
158 {
159 files: ['examples/**/*.js'],
160 rules: {
161 'n/no-missing-require': 'off',
162 'jsdoc/require-jsdoc': 'off'
163 }
164 }
165 ]
166 })