UNPKG

trainingpeaks-sdk

Version:
77 lines (76 loc) 4.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLongSteadyWorkout = exports.createTempoWorkout = exports.createIntervalWorkout = void 0; const workout_structure_builder_1 = require("../../domain/builders/workout-structure-builder.js"); const workout_structure_element_builder_1 = require("../../domain/builders/workout-structure-element-builder.js"); const types_1 = require("../../types/index.js"); const workout_steps_1 = require("./workout-steps.js"); const createIntervalWorkout = (warmupMinutes = 10, intervalMinutes = 5, intervalIntensity = 120, recoveryMinutes = 3, intervals = 6, cooldownMinutes = 10) => { const builder = new workout_structure_builder_1.WorkoutStructureBuilder(); const warmupElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createWarmupStep)(warmupMinutes)) .build(); builder.addElement(warmupElement); for (let i = 0; i < intervals; i++) { const intervalElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createIntervalStep)(intervalMinutes, intervalIntensity)) .build(); builder.addElement(intervalElement); if (i < intervals - 1) { const recoveryElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createRecoveryStep)(recoveryMinutes)) .build(); builder.addElement(recoveryElement); } } const cooldownElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createCooldownStep)(cooldownMinutes)) .build(); builder.addElement(cooldownElement); return builder.build(); }; exports.createIntervalWorkout = createIntervalWorkout; const createTempoWorkout = (warmupMinutes = 15, tempoMinutes = 30, tempoIntensity = 90, cooldownMinutes = 10) => { const builder = new workout_structure_builder_1.WorkoutStructureBuilder(); const warmupElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createWarmupStep)(warmupMinutes)) .build(); builder.addElement(warmupElement); const tempoElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createSteadyStep)(tempoMinutes, tempoIntensity)) .build(); builder.addElement(tempoElement); const cooldownElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createCooldownStep)(cooldownMinutes)) .build(); builder.addElement(cooldownElement); return builder.build(); }; exports.createTempoWorkout = createTempoWorkout; const createLongSteadyWorkout = (warmupMinutes = 10, steadyMinutes = 120, steadyIntensity = 75, cooldownMinutes = 10) => { const builder = new workout_structure_builder_1.WorkoutStructureBuilder(); const warmupElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createWarmupStep)(warmupMinutes)) .build(); builder.addElement(warmupElement); const steadyElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createSteadyStep)(steadyMinutes, steadyIntensity)) .build(); builder.addElement(steadyElement); const cooldownElement = new workout_structure_element_builder_1.WorkoutStructureElementBuilder() .type(types_1.ElementType.STEP) .addStep((0, workout_steps_1.createCooldownStep)(cooldownMinutes)) .build(); builder.addElement(cooldownElement); return builder.build(); }; exports.createLongSteadyWorkout = createLongSteadyWorkout;