토너먼트 state의 stage 전이만 공용 실시간 채널에 발행하고 공개 invalidation으로 변환한다. 메인 dashboard store가 단계 값을 소유해 상단 문구와 메뉴 강조를 단일/다중 탭에서 함께 갱신한다. Redis 통합 테스트와 production Chromium 회귀 검증을 추가한다.
22 lines
833 B
TypeScript
22 lines
833 B
TypeScript
import { buildGameEventChannel } from '@sammo-ts/common';
|
|
|
|
export interface TournamentKeys {
|
|
stateKey: string;
|
|
participantsKey: string;
|
|
matchesKey: string;
|
|
bettingKey: string;
|
|
sourceRevisionKey: string;
|
|
sourceRevisionChannel: string;
|
|
realtimeEventChannel: string;
|
|
}
|
|
|
|
export const buildTournamentKeys = (profileName: string): TournamentKeys => ({
|
|
stateKey: `sammo:${profileName}:tournament:state`,
|
|
participantsKey: `sammo:${profileName}:tournament:participants`,
|
|
matchesKey: `sammo:${profileName}:tournament:matches`,
|
|
bettingKey: `sammo:${profileName}:tournament:betting`,
|
|
sourceRevisionKey: `sammo:${profileName}:tournament:source-revision`,
|
|
sourceRevisionChannel: `sammo:${profileName}:tournament:source-changed`,
|
|
realtimeEventChannel: buildGameEventChannel(profileName),
|
|
});
|