UNPKG

workouts-transfer

Version:

Workouts transfer between services as inversify modules.

45 lines (44 loc) 1.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const luxon_1 = require("luxon"); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore const xml2js_1 = __importDefault(require("xml2js")); const parser = new xml2js_1.default.Parser(); function parse(data) { return new Promise((resolve, reject) => { // eslint-disable-next-line promise/prefer-await-to-callbacks parser.parseString(data, (err, result) => { if (err) { reject(err); } resolve(result); }); }); } // eslint-disable-next-line sonarjs/cognitive-complexity async function tcx(data) { const parsedData = await parse(data); if (!parsedData.TrainingCenterDatabase.Activities[0].Activity[0].Lap) { return null; } return parsedData.TrainingCenterDatabase.Activities[0].Activity[0].Lap.flatMap((lap, key) => { // eslint-disable-next-line complexity return lap.Track[0].Trackpoint.map((point) => { return { time: luxon_1.DateTime.fromISO(point.Time[0]), latitude: point.Position ? Number(point.Position[0].LatitudeDegrees[0]) : undefined, longitude: point.Position ? Number(point.Position[0].LongitudeDegrees[0]) : undefined, altitude: point.AltitudeMeters ? Number(point.AltitudeMeters[0]) : undefined, distance: point.DistanceMeters ? Number(point.DistanceMeters[0]) : undefined, hr: point.HeartRateBpm ? Number(point.HeartRateBpm[0].Value[0]) : undefined, cadence: point.Cadence ? Number(point.Cadence[0]) : undefined, lap: key, }; }); }); } exports.default = tcx;