import type { FlatESLintConfig } from '@aet/eslint-define-config'; import js from '@eslint/js'; import * as tsParser from '@typescript-eslint/parser'; import importPlugin from 'eslint-plugin-import-x'; import unicorn from 'eslint-plugin-unicorn'; import tsEslint from 'typescript-eslint'; import { importRules } from './src/presets/typescript'; export default [ js.configs.recommended, // ...tsEslint.configs.recommendedTypeChecked, unicorn.configs['flat/recommended'], importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.react, importPlugin.flatConfigs.typescript, { files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'], languageOptions: { parserOptions: { parser: tsParser, projectService: true, ecmaVersion: 'latest', // https://github.com/unjs/jiti/issues/167 import.meta.dirname tsconfigRootDir: __dirname, sourceType: 'module', }, }, settings: { 'import-x/parsers': { '@typescript-eslint/parser': ['.ts', '.tsx', '.mts', '.cts'], }, 'import-x/resolver': { typescript: true, node: true, }, }, ignores: ['eslint.config.cjs'], rules: { ...importRules, }, }, { rules: { 'unicorn/prevent-abbreviations': 'off', 'unicorn/import-style': 'off', 'unicorn/switch-case-braces': ['error', 'avoid'], 'unicorn/no-null': 'off', }, }, ] as FlatESLintConfig[];