mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-11 16:01:56 +00:00
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
import { buildInitialState } from "match-state-engine"
|
|
|
|
export function buildMatchMetadata(values) {
|
|
return {
|
|
tournamentId: values.tournamentId,
|
|
boutNumber: values.boutNumber,
|
|
weightLabel: values.weightLabel,
|
|
ruleset: values.ruleset,
|
|
bracketPosition: values.bracketPosition,
|
|
w1Name: values.w1Name,
|
|
w2Name: values.w2Name,
|
|
w1School: values.w1School,
|
|
w2School: values.w2School
|
|
}
|
|
}
|
|
|
|
export function buildStorageKey(tournamentId, boutNumber) {
|
|
return `match-state:${tournamentId}:${boutNumber}`
|
|
}
|
|
|
|
export function buildPersistedState(state, metadata) {
|
|
return {
|
|
...state,
|
|
metadata
|
|
}
|
|
}
|
|
|
|
export function restorePersistedState(config, parsedState) {
|
|
const initialState = buildInitialState(config)
|
|
|
|
return {
|
|
...initialState,
|
|
...parsedState,
|
|
participantScores: {
|
|
...initialState.participantScores,
|
|
...(parsedState.participantScores || {})
|
|
},
|
|
assignment: {
|
|
...initialState.assignment,
|
|
...(parsedState.assignment || {})
|
|
},
|
|
clock: {
|
|
...initialState.clock,
|
|
...(parsedState.clock || {})
|
|
},
|
|
timers: {
|
|
w1: {
|
|
...initialState.timers.w1,
|
|
...(parsedState.timers?.w1 || {})
|
|
},
|
|
w2: {
|
|
...initialState.timers.w2,
|
|
...(parsedState.timers?.w2 || {})
|
|
}
|
|
},
|
|
clocksByPhase: Object.fromEntries(
|
|
Object.entries(initialState.clocksByPhase).map(([phaseKey, defaultClock]) => [
|
|
phaseKey,
|
|
{
|
|
...defaultClock,
|
|
...(parsedState.clocksByPhase?.[phaseKey] || {})
|
|
}
|
|
])
|
|
)
|
|
}
|
|
}
|