import { FlatCompat } from '@eslint/eslintrc'; import importPlugin from 'eslint-plugin-import'; import eslint from '@eslint/js'; import eslintConfigPrettier from 'eslint-config-prettier'; import tseslint from 'typescript-eslint'; const compat = new FlatCompat({ baseDirectory: import.meta.__dirname, resolvePluginsRelativeTo: import.meta.__dirname, }); export default tseslint.config( eslint.configs.recommended, ...tseslint.configs.strict, ...tseslint.configs.stylistic, eslintConfigPrettier, { files: ['**/*.{ts,tsxx}'], extends: [importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.typescript], rules: { 'import/no-unresolved': 'off', 'import/extensions': ['error', 'ignorePackages'], 'import/exports-last': 'error', 'import/no-default-export': 'error', 'import/order': [ 'error', { groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], 'newlines-between': 'always', }, ], 'import/no-duplicates': 'error', }, }, { rules: { '@typescript-eslint/consistent-type-definitions': ['error', 'type'], }, }, { files: ['**.d.ts'], rules: { '@typescript-eslint/triple-slash-reference': 'off', '@typescript-eslint/consistent-type-definitions': 'off', }, }, ...compat.extends('plugin:prettier/recommended'), { ignores: ['**/node_modules/', '**/dist/', '**/.turbo/', '**/__generated__/'], }, );