1 import cspellConfigs
from '@cspell/eslint-plugin/configs'
2 import js
from '@eslint/js'
3 import { defineFlatConfig
} from 'eslint-define-config'
4 import jsdoc
from 'eslint-plugin-jsdoc'
5 import simpleImportSort
from 'eslint-plugin-simple-import-sort'
6 import globals
from 'globals'
7 import neostandard
, { plugins
} from 'neostandard'
8 // FIXME: https://github.com/neostandard/neostandard/pull/88
9 // eslint-disable-next-line n/no-extraneous-import
10 import tseslint
from 'typescript-eslint'
12 export default defineFlatConfig([
14 ignores
: ['docs/**', '**/dist/**', 'lib/**', 'outputs/**'],
16 cspellConfigs
.recommended
,
17 js
.configs
.recommended
,
18 plugins
.promise
.configs
['flat/recommended'],
19 ...plugins
.n
.configs
['flat/mixed-esm-and-cjs'],
20 jsdoc
.configs
['flat/recommended-typescript'],
23 'jsdoc/check-tag-names': [
27 definedTags
: ['defaultValue', 'experimental', 'typeParam'],
32 // ...tseslint.config(
33 // ...tseslint.configs.strictTypeChecked,
34 // ...tseslint.configs.stylisticTypeChecked
47 tsconfigRootDir
: import.meta
.dirname
,
53 'simple-import-sort': simpleImportSort
,
56 '@cspell/spellchecker': [
74 'simple-import-sort/imports': 'error',
75 'simple-import-sort/exports': 'error',
80 'src/pools/selection-strategies/fair-share-worker-choice-strategy.ts',
83 '@stylistic/operator-linebreak': 'off',
87 files
: ['**/*.js', '**/*.mjs', '**/*.cjs'],
88 ...tseslint
.configs
.disableTypeChecked
,
90 // examples specific configuration
92 files
: ['examples/**/*.ts'],
94 '@typescript-eslint/no-unsafe-argument': 'off',
95 '@typescript-eslint/no-unsafe-call': 'off',
96 '@typescript-eslint/no-unsafe-return': 'off',
97 '@typescript-eslint/no-unsafe-assignment': 'off',
98 '@typescript-eslint/no-unsafe-member-access': 'off',
99 '@typescript-eslint/no-unnecessary-type-assertion': 'off',
100 '@typescript-eslint/no-redundant-type-constituents': 'off',
104 files
: ['examples/**/*.js', 'examples/**/*.cjs'],
106 'n/no-missing-import': [
109 allowModules
: ['ws'],
112 '@typescript-eslint/no-require-imports': 'off',
115 // benchmarks specific configuration
117 files
: ['benchmarks/**/*.cjs'],
119 '@typescript-eslint/no-require-imports': 'off',
122 // tests specific configuration
124 files
: ['tests/**/*.js', 'tests/**/*.mjs', 'tests/**/*.cjs'],
126 '@typescript-eslint/no-require-imports': 'off',
127 '@typescript-eslint/no-empty-function': 'off',