react-native-healthkit-bridge
Version:
A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries
51 lines (50 loc) • 2.32 kB
JavaScript
export class HealthKitMapper {
toQuantitySample(rawData) {
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) {
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) {
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)
};
}
toSourceRevision(rawSourceRevision) {
var _a, _b;
return {
source: {
name: ((_a = rawSourceRevision === null || rawSourceRevision === void 0 ? void 0 : rawSourceRevision.source) === null || _a === void 0 ? void 0 : _a.name) || '',
bundleIdentifier: ((_b = rawSourceRevision === null || rawSourceRevision === void 0 ? void 0 : rawSourceRevision.source) === null || _b === void 0 ? void 0 : _b.bundleIdentifier) || ''
},
version: (rawSourceRevision === null || rawSourceRevision === void 0 ? void 0 : rawSourceRevision.version) || '',
productType: (rawSourceRevision === null || rawSourceRevision === void 0 ? void 0 : rawSourceRevision.productType) || '',
systemVersion: (rawSourceRevision === null || rawSourceRevision === void 0 ? void 0 : rawSourceRevision.systemVersion) || ''
};
}
}