UNPKG

@sports-alliance/sports-lib

Version:

A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc

40 lines (39 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataPowerCurve = void 0; const data_bare_1 = require("./data.bare"); const data_duration_1 = require("./data.duration"); const data_power_1 = require("./data.power"); const data_power_watts_per_kg_1 = require("./data.power-watts-per-kg"); class DataPowerCurve extends data_bare_1.DataBare { constructor(value) { super(DataPowerCurve.hydrate(value)); } static hydrate(value) { return (value || []).map(point => ({ duration: point.duration instanceof data_duration_1.DataDuration ? point.duration : new data_duration_1.DataDuration(point.duration), power: point.power instanceof data_power_1.DataPower ? point.power : new data_power_1.DataPower(point.power), wattsPerKg: point.wattsPerKg ? point.wattsPerKg instanceof data_power_watts_per_kg_1.DataPowerWattsPerKg ? point.wattsPerKg : new data_power_watts_per_kg_1.DataPowerWattsPerKg(point.wattsPerKg) : undefined })); } toJSON() { return { [DataPowerCurve.type]: this.value.map(point => { const json = { duration: point.duration.getValue(), power: point.power.getValue() }; if (point.wattsPerKg) { json.wattsPerKg = point.wattsPerKg.getValue(); } return json; }) }; } } exports.DataPowerCurve = DataPowerCurve; DataPowerCurve.type = 'PowerCurve';