// @ts-check import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; import * as path from 'node:path'; import * as url from 'node:url'; export default tseslint.config( eslint.configs.recommended, tseslint.configs.strictTypeChecked, tseslint.configs.stylisticTypeChecked, { languageOptions: { parserOptions: { projectService: { allowDefaultProject: [ 'eslint.config.mjs' ] }, tsconfigRootDir: path.dirname(url.fileURLToPath(import.meta.url)) } }, rules: { '@typescript-eslint/no-unnecessary-condition': [ 'error', { allowConstantLoopConditions: 'only-allowed-literals' } ], quotes: [ 'error', 'single', { allowTemplateLiterals: true } ], semi: 'error', indent: [ 'error', 4, { SwitchCase: 1 } ], eqeqeq: 'error' } }, { ignores: [ 'build/', 'node_modules/' ] }, { files: [ 'src/test/**/*' ], rules: { '@typescript-eslint/no-floating-promises': 'off' } } );