From f9e7e819a0a673befb11b24404efeb9d6644bceb Mon Sep 17 00:00:00 2001 From: Joris Date: Thu, 20 May 2021 09:43:02 +0200 Subject: Provide named exercices --- src/state.ts | 87 ------------------------------------------------------------ 1 file changed, 87 deletions(-) delete mode 100644 src/state.ts (limited to 'src/state.ts') diff --git a/src/state.ts b/src/state.ts deleted file mode 100644 index a0348f0..0000000 --- a/src/state.ts +++ /dev/null @@ -1,87 +0,0 @@ -import * as Config from 'config' - -export enum Step { - WarmUp, - Prepare, - Work, - Rest, - End, -} - -export function prettyPrintStep(step: Step): string { - if (step === Step.WarmUp) - return 'Warm Up' - if (step === Step.Prepare) - return 'Prepare' - else if (step === Step.Work) - return 'Work' - else if (step === Step.Rest) - return 'Rest' - else - return 'End' -} - -export interface State { - step: Step, - remaining: number, - info: string, - elapsed: number, -} - -export function getAt(config: Config.Config, elapsed: number): State { - if (elapsed < config.warmup) { - return { - step: Step.WarmUp, - remaining: config.warmup - elapsed, - info: '', - elapsed - } - } - - const tabataElapsed = elapsed - config.warmup - - const cycleDuration = config.work + config.rest - const tabataDuration = config.prepare + (config.cycles * cycleDuration) - - if (tabataElapsed >= tabataDuration * config.tabatas) { - return { - step: Step.End, - remaining: 0, - info: '', - elapsed - } - } - - const currentTabataElapsed = tabataElapsed % tabataDuration - let step, remaining - if (currentTabataElapsed < config.prepare) { - step = Step.Prepare - remaining = config.prepare - currentTabataElapsed - } else { - const currentCycleElapsed = (currentTabataElapsed - config.prepare) % cycleDuration - if (currentCycleElapsed < config.work) { - step = Step.Work - remaining = config.work - currentCycleElapsed - } else { - step = Step.Rest - remaining = config.work + config.rest - currentCycleElapsed - } - } - - const tabata = Math.floor(tabataElapsed / tabataDuration) + 1 - const cycle = - currentTabataElapsed < config.prepare - ? 1 - : Math.floor((currentTabataElapsed - config.prepare) / cycleDuration) + 1 - const info = stepCount(step, tabata, cycle) - - return { step, remaining, info, elapsed } -} - -function stepCount(step: Step, tabata: number, cycle: number): string { - if (step === Step.Work || step === Step.Rest) { - return `#${tabata.toString()}.${cycle.toString()}` - } else { - return `#${tabata.toString()}` - } -} -- cgit v1.2.3