mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 15:23:03 +02:00
Frontend (React 19 + Vite 6 + TypeScript strict): - DropZone, ModeSelect, GameCanvas, PuzzleCanvas, ScoreScreen, PuzzleResult - File-drop game with AABB collision; download (JSZip) and upload (NestJS) modes - Puzzle mode: NxN image slice via OffscreenCanvas; Union-Find spatial clustering guarantees 100% catch rate is always achievable regardless of piece speeds - ESLint typescript-eslint strict-type-checked (zero errors) - 145 Vitest tests; 100% coverage on statements/branches/functions/lines Backend (NestJS 11): - POST /files/upload (multer disk storage) and GET /health Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YZ8QTmreFcaqrsvVb38Grd
30 lines
784 B
JavaScript
30 lines
784 B
JavaScript
import js from '@eslint/js';
|
|
import reactHooksPlugin from 'eslint-plugin-react-hooks';
|
|
import tseslint from 'typescript-eslint';
|
|
|
|
export default tseslint.config(
|
|
{ ignores: ['dist', 'coverage'] },
|
|
js.configs.recommended,
|
|
...tseslint.configs.strictTypeChecked,
|
|
...tseslint.configs.stylisticTypeChecked,
|
|
{
|
|
plugins: {
|
|
'react-hooks': reactHooksPlugin,
|
|
},
|
|
languageOptions: {
|
|
parserOptions: {
|
|
project: './tsconfig.json',
|
|
tsconfigRootDir: import.meta.dirname,
|
|
},
|
|
},
|
|
rules: {
|
|
...reactHooksPlugin.configs.recommended.rules,
|
|
'@typescript-eslint/restrict-template-expressions': ['error', { allowNumber: true }],
|
|
},
|
|
},
|
|
{
|
|
files: ['*.js', '*.mjs', '*.cjs'],
|
|
...tseslint.configs.disableTypeChecked,
|
|
},
|
|
);
|