import typescriptEslint from '@typescript-eslint/eslint-plugin' import prettier from 'eslint-plugin-prettier' import globals from 'globals' import tsParser from '@typescript-eslint/parser' import path from 'node:path' import { fileURLToPath } from 'node:url' import js from '@eslint/js' import { FlatCompat } from '@eslint/eslintrc' const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all, }) export default [ { ignores: ['**/dist/', '**/.vscode/', '**/.idea/', '**/node_modules/'], }, ...compat.extends('plugin:@typescript-eslint/recommended', 'prettier'), { plugins: { '@typescript-eslint': typescriptEslint, prettier, }, languageOptions: { globals: { ...globals.node, }, parser: tsParser, ecmaVersion: 2022, sourceType: 'commonjs', }, settings: { 'import/parsers': { '@typescript-eslint/parser': ['.ts', '.tsx', '.js'], }, 'import/resolver': { typescript: './tsconfig.json', }, }, rules: { '@typescript-eslint/no-explicit-any': 'off', }, }, ]