43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
import js from '@eslint/js';
|
|
import tsPlugin from '@typescript-eslint/eslint-plugin';
|
|
import prettier from 'eslint-plugin-prettier';
|
|
import prettierConfig from 'eslint-config-prettier';
|
|
import unusedImports from 'eslint-plugin-unused-imports';
|
|
import globals from 'globals';
|
|
|
|
export default [
|
|
{
|
|
ignores: ['lib/**', 'docs/**', 'node_modules/**', '**/*.js', '**/*.mjs', '**/*.cjs'],
|
|
},
|
|
js.configs.recommended,
|
|
tsPlugin.configs['flat/eslint-recommended'],
|
|
...tsPlugin.configs['flat/recommended'],
|
|
prettierConfig,
|
|
{
|
|
files: ['src/**/*.ts'],
|
|
languageOptions: {
|
|
ecmaVersion: 2020,
|
|
sourceType: 'module',
|
|
globals: {
|
|
...globals.browser,
|
|
__VERSION__: 'readonly',
|
|
},
|
|
},
|
|
plugins: {
|
|
'unused-imports': unusedImports,
|
|
prettier,
|
|
},
|
|
rules: {
|
|
'prettier/prettier': 'error',
|
|
// Newly part of eslint:recommended in v9+; would require ES2022 Error `cause`.
|
|
'preserve-caught-error': 'off',
|
|
'no-unused-vars': 'off',
|
|
'unused-imports/no-unused-imports': 'error',
|
|
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
|
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
'@typescript-eslint/ban-ts-comment': 'off',
|
|
},
|
|
},
|
|
];
|