js.configs.recommended,
...nodePlugin.configs['flat/mixed-esm-and-cjs'],
jsdoc.configs['flat/recommended-typescript'],
- // ...tseslint.config(...tseslint.configs.strictTypeChecked, ...tseslint.configs.stylisticTypeChecked),
- ...tseslint.config(...tseslint.configs.strict, ...tseslint.configs.stylistic),
+ {
+ rules: {
+ 'jsdoc/check-tag-names': ['warn', { typed: true, definedTags: ['defaultValue', 'experimental', 'typeParam'] }],
+ },
+ },
+ ...tseslint.config(
+ ...tseslint.configs.strictTypeChecked,
+ ...tseslint.configs.stylisticTypeChecked
+ ),
...neostandard({
ts: true,
globals: {
...globals.mocha,
},
}),
+ {
+ languageOptions: {
+ parserOptions: {
+ project: true,
+ tsconfigRootDir: import.meta.dirname,
+ },
+ },
+ },
{
plugins: {
'simple-import-sort': simpleImportSort,
},
rules: {
+ '@cspell/spellchecker': [
+ 'warn',
+ {
+ autoFix: true,
+ cspell: {
+ words: [
+ 'Alessandro',
+ 'Ardizio',
+ 'Benoit',
+ 'IWRR',
+ 'Quadflieg',
+ 'neostandard',
+ 'poolifier',
+ 'tseslint',
+ ],
+ },
+ },
+ ],
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
},
'@stylistic/operator-linebreak': 'off',
},
},
+ {
+ files: ['**/*.js', '**/*.mjs', '**/*.cjs'],
+ ...tseslint.configs.disableTypeChecked,
+ },
+ // examples specific configuration
{
files: ['examples/**/*.ts'],
rules: {
- 'no-undef': 'off',
+ '@typescript-eslint/no-unsafe-argument': 'off',
+ '@typescript-eslint/no-unsafe-call': 'off',
+ '@typescript-eslint/no-unsafe-return': 'off',
+ '@typescript-eslint/no-unsafe-assignment': 'off',
+ '@typescript-eslint/no-unsafe-member-access': 'off',
+ '@typescript-eslint/no-unnecessary-type-assertion': 'off',
+ '@typescript-eslint/no-redundant-type-constituents': 'off',
},
},
{
'@typescript-eslint/no-require-imports': 'off',
},
},
+ // benchmarks specific configuration
{
files: ['benchmarks/**/*.cjs'],
rules: {
'@typescript-eslint/no-require-imports': 'off',
},
},
+ // tests specific configuration
{
files: ['tests/**/*.js', 'tests/**/*.mjs', 'tests/**/*.cjs'],
rules: {