import js from '@eslint/js'
import { defineFlatConfig } from 'eslint-define-config'
import jsdoc from 'eslint-plugin-jsdoc'
-import nodePlugin from 'eslint-plugin-n'
import simpleImportSort from 'eslint-plugin-simple-import-sort'
import globals from 'globals'
-import neostandard from 'neostandard'
+import neostandard, { plugins } from 'neostandard'
+// FIXME: https://github.com/neostandard/neostandard/pull/88
// eslint-disable-next-line n/no-extraneous-import
import tseslint from 'typescript-eslint'
},
cspellConfigs.recommended,
js.configs.recommended,
- ...nodePlugin.configs['flat/mixed-esm-and-cjs'],
+ plugins.promise.configs['flat/recommended'],
+ ...plugins.n.configs['flat/mixed-esm-and-cjs'],
jsdoc.configs['flat/recommended-typescript'],
- ...tseslint.config(
- ...tseslint.configs.strictTypeChecked,
- ...tseslint.configs.stylisticTypeChecked
- ),
+ {
+ rules: {
+ 'jsdoc/check-tag-names': [
+ 'warn',
+ {
+ typed: true,
+ definedTags: ['defaultValue', 'experimental', 'typeParam'],
+ },
+ ],
+ },
+ },
+ // ...tseslint.config(
+ // ...tseslint.configs.strictTypeChecked,
+ // ...tseslint.configs.stylisticTypeChecked
+ // ),
...neostandard({
ts: true,
globals: {
...tseslint.configs.disableTypeChecked,
},
// examples specific configuration
- // {
- // files: ['examples/**/*.ts'],
- // rules: {
- // 'no-undef': 'off',
- // },
- // },
+ {
+ files: ['examples/**/*.ts'],
+ rules: {
+ '@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',
+ },
+ },
{
files: ['examples/**/*.js', 'examples/**/*.cjs'],
rules: {