trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
77 lines (76 loc) • 4.3 kB
JavaScript
;
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;