import path from 'path'; import { fileURLToPath } from 'url'; import globals from 'globals'; import tseslint from 'typescript-eslint'; import tsParser from '@typescript-eslint/parser'; // TS parser import js from '@eslint/js'; import { defineConfig } from 'eslint/config'; import eslintConfigPrettier from 'eslint-config-prettier'; import importPlugin from 'eslint-plugin-import'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); export default defineConfig([ js.configs.recommended, tseslint.configs.recommended, importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.errors, importPlugin.flatConfigs.warnings, importPlugin.flatConfigs.typescript, eslintConfigPrettier, { ignores: ['node_modules', 'dist', 'public', 'lib'] }, { files: ['**/*.{js,mjs,cjs,ts,tsx}'], languageOptions: { parser: tsParser, parserOptions: { ecmaFeatures: { jsx: true }, ecmaVersion: 'latest', sourceType: 'module', project: ['tsconfig.json', 'tsconfig.dev.json'], tsconfigRootDir: __dirname, }, globals: globals.node, }, rules: { '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-var-requires': 'error', '@typescript-eslint/strict-boolean-expressions': 'off', 'import/no-unresolved': 0, }, }, eslintConfigPrettier, ]);