fix(lint): resolve all eslint errors across monorepo
- Type response bodies in gameController.test.ts to fix no-unsafe-member-access - Replace async methods with Promise.resolve() in InMemoryGameSessionStore and InMemoryLobbyGameStore to satisfy require-await rule - Add argsIgnorePattern and varsIgnorePattern to eslint config so underscore-prefixed params are globally ignored - Fix no-misused-promises in ws/index.ts, lobbyHandlers, gameHandlers, __root.tsx, login.tsx and play.tsx by using void + .catch() - Fix no-floating-promises on navigate calls in login.tsx - Move API_URL outside Play component to fix useCallback dependency warning - Type fetch response bodies in play.tsx to fix no-unsafe-assignment - Add only-throw-error: off for route files (TanStack Router throw redirect) - Remove unused WebSocket import from express.d.ts - Fix unsafe return in connections.ts by typing empty Map constructor - Exclude scripts/ folder from eslint - Add targeted override for better-auth auth-client.ts (upstream typing issue)
This commit is contained in:
parent
a6d8ddec3b
commit
ce19740cc8
12 changed files with 160 additions and 91 deletions
|
|
@ -126,27 +126,29 @@ export const resolveRound = async (
|
|||
await endGame(lobbyId, state);
|
||||
} else {
|
||||
// Wait 3s then broadcast next question
|
||||
setTimeout(async () => {
|
||||
const fresh = await lobbyGameStore.get(lobbyId);
|
||||
if (!fresh) return;
|
||||
const nextQuestion = fresh.questions[fresh.currentIndex];
|
||||
if (!nextQuestion) return;
|
||||
broadcastToLobby(lobbyId, {
|
||||
type: "game:question",
|
||||
question: {
|
||||
questionId: nextQuestion.questionId,
|
||||
prompt: nextQuestion.prompt,
|
||||
gloss: nextQuestion.gloss,
|
||||
options: nextQuestion.options,
|
||||
},
|
||||
questionNumber: fresh.currentIndex + 1,
|
||||
totalQuestions,
|
||||
});
|
||||
// Restart timer for next round
|
||||
const timer = setTimeout(async () => {
|
||||
await resolveRound(lobbyId, fresh.currentIndex, totalQuestions);
|
||||
}, 15000);
|
||||
timers.set(lobbyId, timer);
|
||||
setTimeout(() => {
|
||||
void (async () => {
|
||||
const fresh = await lobbyGameStore.get(lobbyId);
|
||||
if (!fresh) return;
|
||||
const nextQuestion = fresh.questions[fresh.currentIndex];
|
||||
if (!nextQuestion) return;
|
||||
broadcastToLobby(lobbyId, {
|
||||
type: "game:question",
|
||||
question: {
|
||||
questionId: nextQuestion.questionId,
|
||||
prompt: nextQuestion.prompt,
|
||||
gloss: nextQuestion.gloss,
|
||||
options: nextQuestion.options,
|
||||
},
|
||||
questionNumber: fresh.currentIndex + 1,
|
||||
totalQuestions,
|
||||
});
|
||||
// Restart timer for next round
|
||||
const timer = setTimeout(() => {
|
||||
void resolveRound(lobbyId, fresh.currentIndex, totalQuestions);
|
||||
}, 15000);
|
||||
timers.set(lobbyId, timer);
|
||||
})();
|
||||
}, 3000);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -148,8 +148,10 @@ const startRoundTimer = (
|
|||
questionIndex: number,
|
||||
totalQuestions: number,
|
||||
): void => {
|
||||
const timer = setTimeout(async () => {
|
||||
await resolveRound(lobbyId, questionIndex, totalQuestions);
|
||||
const timer = setTimeout(() => {
|
||||
void resolveRound(lobbyId, questionIndex, totalQuestions).catch((err) => {
|
||||
console.error("Error resolving round after timeout:", err);
|
||||
});
|
||||
}, 15000);
|
||||
timers.set(lobbyId, timer);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue