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
text/typescript
// 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 = {
[]: ['HKQuantityTypeIdentifierStepCount', 'HKQuantityTypeIdentifierFlightsClimbed', 'HKQuantityTypeIdentifierSwimmingStrokeCount'],
[]: ['HKQuantityTypeIdentifierDistanceWalkingRunning', 'HKQuantityTypeIdentifierDistanceCycling', 'HKQuantityTypeIdentifierDistanceSwimming'],
[]: ['HKQuantityTypeIdentifierActiveEnergyBurned', 'HKQuantityTypeIdentifierBasalEnergyBurned'],
[]: ['HKQuantityTypeIdentifierAppleExerciseTime'],
[]: ['HKQuantityTypeIdentifierHeartRate', 'HKQuantityTypeIdentifierRestingHeartRate', 'HKQuantityTypeIdentifierWalkingHeartRateAverage'],
[]: ['HKQuantityTypeIdentifierBodyMass', 'HKQuantityTypeIdentifierLeanBodyMass'],
[]: ['HKQuantityTypeIdentifierHeight'],
[]: ['HKQuantityTypeIdentifierBodyTemperature'],
[]: ['HKQuantityTypeIdentifierBloodPressureSystolic', 'HKQuantityTypeIdentifierBloodPressureDiastolic'],
[]: ['HKQuantityTypeIdentifierBloodGlucose'],
[]: ['HKQuantityTypeIdentifierOxygenSaturation', 'HKQuantityTypeIdentifierBodyFatPercentage'],
[]: ['HKQuantityTypeIdentifierRespiratoryRate'],
[]: ['HKQuantityTypeIdentifierVO2Max'],
[]: ['HKQuantityTypeIdentifierHeartRateVariabilitySDNN']
} as const;