import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; import globals from 'globals'; import eslintConfigPrettier from 'eslint-config-prettier'; const weAreHighlyProficientInTypeScript = true; const weLikeCodeStylingConsistencyEvenIfSomeRulesAreOpinionated = true; export default tseslint.config( { ignores: ['node_modules', 'dist', 'build', 'coverage', '.react-router'], }, { languageOptions: { globals: { ...globals.node, }, parserOptions: { projectService: { allowDefaultProject: ['*.mjs', '*.js'], }, tsconfigRootDir: import.meta.dirname, }, }, }, eslint.configs.recommended, ...(weAreHighlyProficientInTypeScript ? [tseslint.configs.strict] : [tseslint.configs.recommended]), ...(weLikeCodeStylingConsistencyEvenIfSomeRulesAreOpinionated ? [tseslint.configs.stylistic] : []), { rules: { 'no-empty-pattern': 'off', }, }, { files: ['**/*.test.ts'], rules: {}, }, eslintConfigPrettier );