import tseslint from '@typescript-eslint/eslint-plugin' import tsparser from '@typescript-eslint/parser' export default [ { ignores: ['**/dist/**', '**/node_modules/**', '**/*.js', '**/*.mjs', '**/*.cjs', '**/*.vue', '**/vite.config.ts', '**/drizzle.config.ts', 'server/scripts/**'], }, { files: ['**/*.ts'], languageOptions: { parser: tsparser, parserOptions: { projectService: true, }, }, plugins: { '@typescript-eslint': tseslint, }, rules: { '@typescript-eslint/no-floating-promises': 'error', 'no-console': ['warn', { allow: ['warn', 'error'] }], }, }, // Frontend game engine: fire-and-forget async (audio, animations) is intentional { files: ['frontend/src/game/**/*.ts'], rules: { '@typescript-eslint/no-floating-promises': 'warn', }, }, ]