module.exports = { env: { browser: true, es2021: true, node: true, jest: true, es6: true, }, extends: [ 'eslint:recommended', 'airbnb-base', 'plugin:import/errors', 'plugin:import/warnings', 'plugin:prettier/recommended', 'prettier', ], parserOptions: { ecmaVersion: 2023, sourceType: 'module', ecmaFeatures: { impliedStrict: true, }, }, rules: { 'no-console': 'warn', 'no-unused-vars': ['error', { argsIgnorePattern: '^_' }], 'no-underscore-dangle': 'off', 'import/prefer-default-export': 'off', 'no-param-reassign': ['error', { props: false }], 'arrow-body-style': ['error', 'as-needed'], 'import/extensions': [ 'error', 'ignorePackages', { js: 'never', jsx: 'never', ts: 'never', tsx: 'never', }, ], // Defer to Prettier for all formatting concerns 'prettier/prettier': 'error', }, settings: { 'import/resolver': { node: { extensions: ['.js', '.jsx', '.ts', '.tsx'], }, }, }, overrides: [ { files: ['**/*.test.js', '**/*.spec.js'], env: { jest: true, }, rules: { 'no-unused-expressions': 'off', }, }, ], };