docs: add comment on fastify TS example
[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: [
494d9576 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',
a8706532 60 'fastify',
bdaf31cd 61 'fibonacci',
a8706532 62 'fp',
7a6a0a96 63 'fs',
a76fac14 64 'inheritDoc',
5c5a1fb7 65 'jsdoc',
7a6a0a96 66 'microjob',
fe18768d 67 'mjs',
fe2f6f84 68 'num',
23ff945a 69 'os',
62c15a68 70 'perf',
7a6a0a96 71 'piscina',
8d75fd5f 72 'pnpm',
a35560ba 73 'poolifier',
7a6a0a96 74 'poolify',
5c5a1fb7 75 'readonly',
d21911e6 76 'resize',
a3809289 77 'sinon',
7a6a0a96
JB
78 'threadjs',
79 'threadwork',
afd32690 80 'tinypool',
7d82d90e 81 'tsconfig',
38e795c1 82 'tsdoc',
fe2f6f84 83 'typedoc',
7a6a0a96 84 'unlink',
dcd9851c 85 'unref',
5c5a1fb7 86 'unregister',
7a6a0a96 87 'utf8',
2fc5cae3
JB
88 'workerpool',
89 'wwr'
5c5a1fb7
S
90 ],
91 skipIfMatch: ['^@.*', '^plugin:.*']
92 }
777b7824 93 ]
3c5eaeb9
JB
94 },
95 overrides: [
50eceb07 96 {
a17cc27a 97 files: ['**/*.ts'],
38e795c1 98 plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc'],
815d4289 99 parser: '@typescript-eslint/parser',
f3636726 100 parserOptions: {
2092c35f 101 project: './tsconfig.eslint.json'
f3636726 102 },
a17cc27a 103 extends: [
a17cc27a 104 'plugin:@typescript-eslint/recommended',
f3636726 105 'plugin:@typescript-eslint/recommended-requiring-type-checking',
3aa14de1
JB
106 'plugin:import/typescript',
107 'standard-with-typescript'
a17cc27a 108 ],
50eceb07 109 rules: {
a17cc27a
JB
110 '@typescript-eslint/no-inferrable-types': [
111 'error',
112 { ignoreProperties: true }
113 ],
afc003b2 114 'tsdoc/syntax': 'warn'
50eceb07
S
115 }
116 },
7a6a0a96
JB
117 {
118 files: ['examples/typescript/**/*.ts'],
119 rules: {
95e50651
JB
120 'import/no-unresolved': 'off',
121 '@typescript-eslint/no-unsafe-argument': 'off',
7a6a0a96 122 '@typescript-eslint/no-unsafe-call': 'off',
fcb46565 123 '@typescript-eslint/no-unsafe-return': 'off',
95e50651
JB
124 '@typescript-eslint/no-unsafe-assignment': 'off',
125 '@typescript-eslint/no-unsafe-member-access': 'off',
a93426dc 126 '@typescript-eslint/no-unnecessary-type-assertion': 'off',
e18b3556
JB
127 '@typescript-eslint/strict-boolean-expressions': 'off',
128 '@typescript-eslint/restrict-template-expressions': 'off',
129 '@typescript-eslint/return-await': 'off'
7a6a0a96
JB
130 }
131 },
3c5eaeb9 132 {
30eafb1e 133 files: ['**/*.js', '**/*.mjs'],
38e795c1 134 plugins: ['jsdoc'],
3aa14de1 135 extends: ['plugin:n/recommended', 'plugin:jsdoc/recommended', 'standard']
fa699c42
JB
136 },
137 {
305aeaa7
JB
138 files: ['tests/**/*.js'],
139 rules: {
140 'jsdoc/require-jsdoc': 'off'
141 }
142 },
4bf99d51
JB
143 {
144 files: ['tests/pools/selection-strategies/**/*.js'],
145 rules: {
2f8c5b5c 146 'n/no-missing-require': 'off'
4bf99d51
JB
147 }
148 },
305aeaa7 149 {
c9577f2d 150 files: ['benchmarks/**/*.js', 'benchmarks/**/*.mjs'],
fa699c42 151 rules: {
a17cc27a 152 'jsdoc/require-jsdoc': 'off'
fa699c42 153 }
583a27ce 154 },
d44e66fc
JB
155 {
156 files: ['benchmarks/versus-external-pools/**/*.js'],
157 rules: {
2f8c5b5c 158 'n/no-missing-require': 'off'
d44e66fc
JB
159 }
160 },
c9577f2d
JB
161 {
162 files: ['benchmarks/versus-external-pools/**/*.mjs'],
163 rules: {
6056130c
JB
164 'n/no-missing-import': 'off',
165 'import/no-unresolved': 'off'
c9577f2d
JB
166 }
167 },
583a27ce 168 {
7a923e5b 169 files: ['examples/javascript/**/*.js'],
583a27ce 170 rules: {
2f8c5b5c 171 'n/no-missing-require': 'off',
305aeaa7
JB
172 'jsdoc/require-jsdoc': 'off'
173 }
3c5eaeb9 174 }
38e795c1 175 ]
6a6e81d0 176})