2026-03-09 07:47:43 +00:00
|
|
|
import tseslint from '@typescript-eslint/eslint-plugin'
|
|
|
|
|
import tsparser from '@typescript-eslint/parser'
|
|
|
|
|
|
|
|
|
|
export default [
|
|
|
|
|
{
|
2026-03-09 08:55:26 +00:00
|
|
|
ignores: ['**/dist/**', '**/node_modules/**', '**/*.js', '**/*.mjs', '**/*.cjs', '**/*.vue', '**/vite.config.ts', '**/drizzle.config.ts', 'server/scripts/**'],
|
2026-03-09 07:47:43 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
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',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
]
|