/
kochkatech
/
CorpGame
Обзор
Документация
Войти
/
kochkatech
/
CorpGame
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
dev
backend/src/common/session-time.ts
21 строка
1017 B
kochkareal
chore: добавлен .gitattributes, нормализованы переносы строк (LF везде, кроме .bat/.cmd)
06 авг 2026, 15:18
06 авг 2026, 15:18
c25ef1b
Код
Авторство
О чём код?
import { GameSession } from '@prisma/client'; /** Сколько секунд игрового времени фактически прошло (за вычетом пауз) на текущий момент */ export function elapsedRunningSec(session: GameSession, now: Date = new Date()): number { if (!session.startedAt) return 0; const totalMs = now.getTime() - session.startedAt.getTime(); let pauseMs = session.accumulatedPauseSec * 1000; if (session.status === 'PAUSED' && session.pausedAt) { pauseMs += now.getTime() - session.pausedAt.getTime(); } return Math.max(0, (totalMs - pauseMs) / 1000); } export function remainingSec(session: GameSession, now: Date = new Date()): number { if (!session.startedAt) return session.durationSec; return Math.max(0, session.durationSec - elapsedRunningSec(session, now)); } export function isTimeUp(session: GameSession, now: Date = new Date()): boolean { return !!session.startedAt && elapsedRunningSec(session, now) >= session.durationSec; }