/** @type {import('eslint').Linter.Config} */ module.exports = { root: false, parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 2022, sourceType: 'module', }, plugins: ['@typescript-eslint', 'import'], extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:import/recommended', 'plugin:import/typescript', 'prettier', ], settings: { 'import/resolver': { typescript: { alwaysTryTypes: true, }, node: true, }, }, rules: { '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], '@typescript-eslint/consistent-type-imports': [ 'error', { prefer: 'type-imports', fixStyle: 'inline-type-imports' }, ], 'import/order': [ 'error', { groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], 'newlines-between': 'always', alphabetize: { order: 'asc', caseInsensitive: true }, }, ], 'import/no-default-export': 'off', }, overrides: [ { files: ['*.cjs', '*.config.js', '*.config.mjs'], env: { node: true }, rules: { '@typescript-eslint/no-var-requires': 'off', }, }, ], ignorePatterns: [ 'node_modules/', 'dist/', 'build/', '.next/', 'out/', 'coverage/', '*.config.js', '*.config.cjs', '*.config.mjs', ], };