UNPKG

react-native-healthkit-bridge

Version:

A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries

54 lines (50 loc) 1.89 kB
import { HealthKitQuantitySample, HealthKitCategorySample, HealthKitWorkout, HealthKitSourceRevision } from '../../domain/entities/HealthKitSample'; export class HealthKitMapper { toQuantitySample(rawData: any): HealthKitQuantitySample { return { uuid: rawData.uuid, value: rawData.value, unit: rawData.unit, identifier: rawData.identifier, startDate: new Date(rawData.startDate), endDate: new Date(rawData.endDate), sourceRevision: this.toSourceRevision(rawData.sourceRevision) }; } toCategorySample(rawData: any): HealthKitCategorySample { return { uuid: rawData.uuid, value: rawData.value, identifier: rawData.identifier, startDate: new Date(rawData.startDate), endDate: new Date(rawData.endDate), sourceRevision: this.toSourceRevision(rawData.sourceRevision) }; } toWorkout(rawData: any): HealthKitWorkout { return { uuid: rawData.uuid, workoutActivityType: rawData.workoutActivityType, duration: rawData.duration, totalEnergyBurned: rawData.totalEnergyBurned, totalDistance: rawData.totalDistance, totalSwimmingStrokeCount: rawData.totalSwimmingStrokeCount, totalFlightsClimbed: rawData.totalFlightsClimbed, metadata: rawData.metadata, startDate: new Date(rawData.startDate), endDate: new Date(rawData.endDate), sourceRevision: this.toSourceRevision(rawData.sourceRevision) }; } private toSourceRevision(rawSourceRevision: any): HealthKitSourceRevision { return { source: { name: rawSourceRevision?.source?.name || '', bundleIdentifier: rawSourceRevision?.source?.bundleIdentifier || '' }, version: rawSourceRevision?.version || '', productType: rawSourceRevision?.productType || '', systemVersion: rawSourceRevision?.systemVersion || '' }; } }