UNPKG

react-native-healthkit-bridge

Version:

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

112 lines (97 loc) 3.44 kB
// HealthKit units organized by measurement type export const HealthKitUnits = { // Count measurements Count: { count: 'count' }, // Distance measurements Distance: { meters: 'm', kilometers: 'km', millimeters: 'mm', centimeters: 'cm', feet: 'ft', inches: 'in', miles: 'mi' }, // Energy measurements Energy: { kilocalories: 'kcal', calories: 'cal', kilojoules: 'kJ' }, // Time measurements Time: { seconds: 's', minutes: 'min', hours: 'hr' }, // Heart rate measurements HeartRate: { beatsPerMinute: 'bpm' }, // Mass measurements Mass: { kilograms: 'kg', grams: 'g', pounds: 'lb', ounces: 'oz' }, // Temperature measurements Temperature: { celsius: '°C', fahrenheit: '°F' }, // Pressure measurements Pressure: { millimetersOfMercury: 'mmHg' }, // Blood glucose measurements BloodGlucose: { milligramsPerDeciliter: 'mg/dL', millimolesPerLiter: 'mmol/L' }, // Percentage measurements Percentage: { percent: '%' }, // Respiratory rate measurements RespiratoryRate: { breathsPerMinute: 'breaths/min' }, // VO2 Max measurements VO2Max: { millilitersPerKilogramPerMinute: 'mL/kg·min' }, // Heart rate variability measurements HeartRateVariability: { milliseconds: 'ms' } } as const; // Flatten all units for easy lookup export const AllHealthKitUnits = Object.values(HealthKitUnits).reduce( (acc, category) => ({ ...acc, ...category }), {} ) as Record<string, string>; // Array of all units export const HealthKitUnitsList = Object.values(AllHealthKitUnits); // Unit mappings for specific data types export const UnitMappings = { [HealthKitUnits.Count.count]: ['HKQuantityTypeIdentifierStepCount', 'HKQuantityTypeIdentifierFlightsClimbed', 'HKQuantityTypeIdentifierSwimmingStrokeCount'], [HealthKitUnits.Distance.meters]: ['HKQuantityTypeIdentifierDistanceWalkingRunning', 'HKQuantityTypeIdentifierDistanceCycling', 'HKQuantityTypeIdentifierDistanceSwimming'], [HealthKitUnits.Energy.kilocalories]: ['HKQuantityTypeIdentifierActiveEnergyBurned', 'HKQuantityTypeIdentifierBasalEnergyBurned'], [HealthKitUnits.Time.minutes]: ['HKQuantityTypeIdentifierAppleExerciseTime'], [HealthKitUnits.HeartRate.beatsPerMinute]: ['HKQuantityTypeIdentifierHeartRate', 'HKQuantityTypeIdentifierRestingHeartRate', 'HKQuantityTypeIdentifierWalkingHeartRateAverage'], [HealthKitUnits.Mass.kilograms]: ['HKQuantityTypeIdentifierBodyMass', 'HKQuantityTypeIdentifierLeanBodyMass'], [HealthKitUnits.Distance.centimeters]: ['HKQuantityTypeIdentifierHeight'], [HealthKitUnits.Temperature.celsius]: ['HKQuantityTypeIdentifierBodyTemperature'], [HealthKitUnits.Pressure.millimetersOfMercury]: ['HKQuantityTypeIdentifierBloodPressureSystolic', 'HKQuantityTypeIdentifierBloodPressureDiastolic'], [HealthKitUnits.BloodGlucose.milligramsPerDeciliter]: ['HKQuantityTypeIdentifierBloodGlucose'], [HealthKitUnits.Percentage.percent]: ['HKQuantityTypeIdentifierOxygenSaturation', 'HKQuantityTypeIdentifierBodyFatPercentage'], [HealthKitUnits.RespiratoryRate.breathsPerMinute]: ['HKQuantityTypeIdentifierRespiratoryRate'], [HealthKitUnits.VO2Max.millilitersPerKilogramPerMinute]: ['HKQuantityTypeIdentifierVO2Max'], [HealthKitUnits.HeartRateVariability.milliseconds]: ['HKQuantityTypeIdentifierHeartRateVariabilitySDNN'] } as const;