@kingstinct/react-native-healthkit 4.1.1 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/ios/ReactNativeHealthkit.m +15 -10
- package/ios/ReactNativeHealthkit.swift +365 -177
- package/lib/commonjs/index.ios.js +104 -106
- package/lib/commonjs/index.ios.js.map +1 -1
- package/lib/commonjs/index.js +11 -10
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native-types.js +25 -1
- package/lib/commonjs/native-types.js.map +1 -1
- package/lib/commonjs/types.js +4 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/example/App.js +197 -0
- package/lib/index.ios.js +310 -0
- package/lib/index.js +44 -0
- package/lib/module/index.ios.js +104 -106
- package/lib/module/index.ios.js.map +1 -1
- package/lib/module/index.js +4 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/native-types.js +20 -1
- package/lib/module/native-types.js.map +1 -1
- package/lib/module/types.js +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/native-types.js +447 -0
- package/lib/src/index.ios.js +314 -0
- package/lib/src/index.js +45 -0
- package/lib/src/native-types.js +453 -0
- package/lib/src/types.js +1 -0
- package/lib/types.js +1 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.ios.d.ts +1 -1
- package/lib/typescript/src/native-types.d.ts +142 -108
- package/lib/typescript/src/types.d.ts +80 -78
- package/package.json +25 -39
- package/src/index.ios.tsx +260 -264
- package/src/index.tsx +14 -13
- package/src/native-types.ts +213 -179
- package/src/types.ts +106 -100
- package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
- package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcuserdata/robertherber.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/ReactNativeHealthkit.xcodeproj/xcuserdata/robertherber.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
package/lib/module/index.ios.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
2
|
import Native, { EventEmitter, HKQuantityTypeIdentifier, HKUnit } from './native-types';
|
|
3
3
|
|
|
4
4
|
const getPreferredUnit = async type => {
|
|
@@ -29,22 +29,16 @@ function deserializeWorkout(sample) {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
const deserializCategorySample = sample => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
};
|
|
32
|
+
const deserializCategorySample = sample => ({ ...sample,
|
|
33
|
+
startDate: new Date(sample.startDate),
|
|
34
|
+
endDate: new Date(sample.endDate)
|
|
35
|
+
});
|
|
38
36
|
|
|
39
|
-
const serializeDate = date =>
|
|
40
|
-
return date ? date.toISOString() : new Date(0).toISOString();
|
|
41
|
-
};
|
|
37
|
+
const serializeDate = date => date ? date.toISOString() : new Date(0).toISOString();
|
|
42
38
|
|
|
43
39
|
const prepareOptions = options => {
|
|
44
|
-
var _options$ascending;
|
|
45
|
-
|
|
46
40
|
const limit = !options.limit || options.limit === Infinity ? 0 : options.limit;
|
|
47
|
-
const ascending =
|
|
41
|
+
const ascending = options.ascending ?? limit === 0;
|
|
48
42
|
const from = serializeDate(options.from);
|
|
49
43
|
const to = serializeDate(options.to);
|
|
50
44
|
return {
|
|
@@ -62,19 +56,51 @@ const queryQuantitySamples = async (identifier, options) => {
|
|
|
62
56
|
return quantitySamples.map(deserializeSample);
|
|
63
57
|
};
|
|
64
58
|
|
|
59
|
+
async function getPreferredUnitsTyped(options) {
|
|
60
|
+
let energyUnit = options === null || options === void 0 ? void 0 : options.energyUnit;
|
|
61
|
+
let distanceUnit = options === null || options === void 0 ? void 0 : options.distanceUnit;
|
|
62
|
+
|
|
63
|
+
if (!energyUnit || !distanceUnit) {
|
|
64
|
+
const units = await Native.getPreferredUnits([HKQuantityTypeIdentifier.distanceWalkingRunning, HKQuantityTypeIdentifier.activeEnergyBurned]);
|
|
65
|
+
|
|
66
|
+
if (!energyUnit) {
|
|
67
|
+
energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (!distanceUnit) {
|
|
71
|
+
distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (!energyUnit) {
|
|
76
|
+
energyUnit = HKUnit.Kilocalories;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (!distanceUnit) {
|
|
80
|
+
distanceUnit = HKUnit.Meters;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
energyUnit,
|
|
85
|
+
distanceUnit
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
65
89
|
const subscribeToChanges = async (identifier, callback) => {
|
|
66
|
-
const subscription = EventEmitter.addListener('onChange',
|
|
67
|
-
|
|
68
|
-
|
|
90
|
+
const subscription = EventEmitter.addListener('onChange', _ref => {
|
|
91
|
+
let {
|
|
92
|
+
typeIdentifier
|
|
93
|
+
} = _ref;
|
|
94
|
+
|
|
69
95
|
if (typeIdentifier === identifier) {
|
|
70
96
|
callback();
|
|
71
97
|
}
|
|
72
98
|
});
|
|
73
|
-
const queryId = await Native.subscribeToObserverQuery(identifier).catch(error => {
|
|
99
|
+
const queryId = await Native.subscribeToObserverQuery(identifier).catch(async error => {
|
|
74
100
|
subscription.remove();
|
|
75
101
|
return Promise.reject(error);
|
|
76
102
|
});
|
|
77
|
-
return () => {
|
|
103
|
+
return async () => {
|
|
78
104
|
subscription.remove();
|
|
79
105
|
return Native.unsubscribeQuery(queryId);
|
|
80
106
|
};
|
|
@@ -83,7 +109,7 @@ const subscribeToChanges = async (identifier, callback) => {
|
|
|
83
109
|
const getMostRecentQuantitySample = async (identifier, unit) => {
|
|
84
110
|
const samples = await queryQuantitySamples(identifier, {
|
|
85
111
|
limit: 1,
|
|
86
|
-
unit
|
|
112
|
+
unit
|
|
87
113
|
});
|
|
88
114
|
return samples[0];
|
|
89
115
|
};
|
|
@@ -98,23 +124,26 @@ function useMostRecentWorkout(options) {
|
|
|
98
124
|
energyUnit,
|
|
99
125
|
distanceUnit
|
|
100
126
|
} = await getPreferredUnitsTyped(options);
|
|
101
|
-
cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', () => {
|
|
102
|
-
getMostRecentWorkout({
|
|
127
|
+
cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', async () => {
|
|
128
|
+
const w = await getMostRecentWorkout({
|
|
103
129
|
energyUnit,
|
|
104
130
|
distanceUnit
|
|
105
|
-
})
|
|
131
|
+
});
|
|
132
|
+
setWorkout(w);
|
|
106
133
|
});
|
|
107
134
|
};
|
|
108
135
|
|
|
109
|
-
init();
|
|
136
|
+
void init();
|
|
110
137
|
return () => {
|
|
111
|
-
|
|
138
|
+
var _cancelSubscription;
|
|
139
|
+
|
|
140
|
+
void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
|
|
112
141
|
};
|
|
113
142
|
}, [options]);
|
|
114
143
|
return workout;
|
|
115
144
|
}
|
|
116
145
|
|
|
117
|
-
const getMostRecentCategorySample = async
|
|
146
|
+
const getMostRecentCategorySample = async identifier => {
|
|
118
147
|
const samples = await queryCategorySamples(identifier, {
|
|
119
148
|
limit: 1,
|
|
120
149
|
ascending: false
|
|
@@ -122,15 +151,6 @@ const getMostRecentCategorySample = async (identifier) => {
|
|
|
122
151
|
return samples[0];
|
|
123
152
|
};
|
|
124
153
|
|
|
125
|
-
function useMostRecentCategorySample(identifier) {
|
|
126
|
-
const [category, setCategory] = useState(null);
|
|
127
|
-
const updater = useCallback(() => {
|
|
128
|
-
getMostRecentCategorySample(identifier).then(setCategory);
|
|
129
|
-
}, [identifier]);
|
|
130
|
-
useSubscribeToChanges(identifier, updater);
|
|
131
|
-
return category;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
154
|
function useSubscribeToChanges(identifier, onChange) {
|
|
135
155
|
useEffect(() => {
|
|
136
156
|
let cancelSubscription;
|
|
@@ -139,13 +159,24 @@ function useSubscribeToChanges(identifier, onChange) {
|
|
|
139
159
|
cancelSubscription = await subscribeToChanges(identifier, onChange);
|
|
140
160
|
};
|
|
141
161
|
|
|
142
|
-
init();
|
|
162
|
+
void init();
|
|
143
163
|
return () => {
|
|
144
|
-
|
|
164
|
+
var _cancelSubscription2;
|
|
165
|
+
|
|
166
|
+
void ((_cancelSubscription2 = cancelSubscription) === null || _cancelSubscription2 === void 0 ? void 0 : _cancelSubscription2());
|
|
145
167
|
};
|
|
146
168
|
}, [identifier, onChange]);
|
|
147
169
|
}
|
|
148
170
|
|
|
171
|
+
function useMostRecentCategorySample(identifier) {
|
|
172
|
+
const [category, setCategory] = useState(null);
|
|
173
|
+
const updater = useCallback(() => {
|
|
174
|
+
void getMostRecentCategorySample(identifier).then(setCategory);
|
|
175
|
+
}, [identifier]);
|
|
176
|
+
useSubscribeToChanges(identifier, updater);
|
|
177
|
+
return category;
|
|
178
|
+
}
|
|
179
|
+
|
|
149
180
|
function useMostRecentQuantitySample(identifier, unit) {
|
|
150
181
|
const [lastSample, setLastSample] = useState(null);
|
|
151
182
|
useEffect(() => {
|
|
@@ -153,22 +184,23 @@ function useMostRecentQuantitySample(identifier, unit) {
|
|
|
153
184
|
|
|
154
185
|
const init = async () => {
|
|
155
186
|
const actualUnit = await ensureUnit(identifier, unit);
|
|
156
|
-
cancelSubscription = await subscribeToChanges(identifier, () => {
|
|
157
|
-
getMostRecentQuantitySample(identifier, actualUnit)
|
|
158
|
-
|
|
159
|
-
});
|
|
187
|
+
cancelSubscription = await subscribeToChanges(identifier, async () => {
|
|
188
|
+
const value = await getMostRecentQuantitySample(identifier, actualUnit);
|
|
189
|
+
setLastSample(value);
|
|
160
190
|
});
|
|
161
191
|
};
|
|
162
192
|
|
|
163
|
-
init();
|
|
193
|
+
void init();
|
|
164
194
|
return () => {
|
|
165
|
-
|
|
195
|
+
var _cancelSubscription3;
|
|
196
|
+
|
|
197
|
+
void ((_cancelSubscription3 = cancelSubscription) === null || _cancelSubscription3 === void 0 ? void 0 : _cancelSubscription3());
|
|
166
198
|
};
|
|
167
199
|
}, [identifier, unit]);
|
|
168
200
|
return lastSample;
|
|
169
201
|
}
|
|
170
202
|
|
|
171
|
-
const saveQuantitySample = (identifier, unit, value, options) => {
|
|
203
|
+
const saveQuantitySample = async (identifier, unit, value, options) => {
|
|
172
204
|
const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
|
|
173
205
|
const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
|
|
174
206
|
const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
|
|
@@ -193,17 +225,14 @@ const queryStatisticsForQuantity = async (identifier, options, from, to, unit) =
|
|
|
193
225
|
return response;
|
|
194
226
|
};
|
|
195
227
|
|
|
196
|
-
const requestAuthorization = (read
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
[cur]: true
|
|
205
|
-
};
|
|
206
|
-
}, {});
|
|
228
|
+
const requestAuthorization = async function (read) {
|
|
229
|
+
let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
230
|
+
const readPermissions = read.reduce((obj, cur) => ({ ...obj,
|
|
231
|
+
[cur]: true
|
|
232
|
+
}), {});
|
|
233
|
+
const writePermissions = write.reduce((obj, cur) => ({ ...obj,
|
|
234
|
+
[cur]: true
|
|
235
|
+
}), {});
|
|
207
236
|
return Native.requestAuthorization(writePermissions, readPermissions);
|
|
208
237
|
};
|
|
209
238
|
|
|
@@ -212,17 +241,14 @@ const getDateOfBirth = async () => {
|
|
|
212
241
|
return new Date(dateOfBirth);
|
|
213
242
|
};
|
|
214
243
|
|
|
215
|
-
const getRequestStatusForAuthorization = (read
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
[cur]: true
|
|
224
|
-
};
|
|
225
|
-
}, {});
|
|
244
|
+
const getRequestStatusForAuthorization = async function (read) {
|
|
245
|
+
let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
246
|
+
const readPermissions = read.reduce((obj, cur) => ({ ...obj,
|
|
247
|
+
[cur]: true
|
|
248
|
+
}), {});
|
|
249
|
+
const writePermissions = write.reduce((obj, cur) => ({ ...obj,
|
|
250
|
+
[cur]: true
|
|
251
|
+
}), {});
|
|
226
252
|
return Native.getRequestStatusForAuthorization(writePermissions, readPermissions);
|
|
227
253
|
};
|
|
228
254
|
|
|
@@ -232,36 +258,6 @@ const queryCategorySamples = async (identifier, options) => {
|
|
|
232
258
|
return results.map(deserializCategorySample);
|
|
233
259
|
};
|
|
234
260
|
|
|
235
|
-
async function getPreferredUnitsTyped(options) {
|
|
236
|
-
let energyUnit = options === null || options === void 0 ? void 0 : options.energyUnit;
|
|
237
|
-
let distanceUnit = options === null || options === void 0 ? void 0 : options.distanceUnit;
|
|
238
|
-
|
|
239
|
-
if (!energyUnit || !distanceUnit) {
|
|
240
|
-
const units = await Native.getPreferredUnits([HKQuantityTypeIdentifier.distanceWalkingRunning, HKQuantityTypeIdentifier.activeEnergyBurned]);
|
|
241
|
-
|
|
242
|
-
if (!energyUnit) {
|
|
243
|
-
energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning];
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
if (!distanceUnit) {
|
|
247
|
-
distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned];
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
if (!energyUnit) {
|
|
252
|
-
energyUnit = HKUnit.Kilocalories;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
if (!distanceUnit) {
|
|
256
|
-
distanceUnit = HKUnit.Meters;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
return {
|
|
260
|
-
energyUnit,
|
|
261
|
-
distanceUnit
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
|
|
265
261
|
const queryWorkouts = async options => {
|
|
266
262
|
const {
|
|
267
263
|
energyUnit,
|
|
@@ -282,7 +278,7 @@ const getMostRecentWorkout = async options => {
|
|
|
282
278
|
return workouts[0];
|
|
283
279
|
};
|
|
284
280
|
|
|
285
|
-
function saveCategorySample(identifier, value, options) {
|
|
281
|
+
async function saveCategorySample(identifier, value, options) {
|
|
286
282
|
const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
|
|
287
283
|
const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
|
|
288
284
|
const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
|
|
@@ -294,13 +290,12 @@ const getPreferredUnits = async identifiers => {
|
|
|
294
290
|
return identifiers.map(i => units[i]);
|
|
295
291
|
};
|
|
296
292
|
|
|
297
|
-
const buildUnitWithPrefix = (prefix, unit) => {
|
|
298
|
-
return `${prefix}${unit}`;
|
|
299
|
-
};
|
|
293
|
+
const buildUnitWithPrefix = (prefix, unit) => `${prefix}${unit}`;
|
|
300
294
|
|
|
301
295
|
function deserializeCorrelation(s) {
|
|
302
296
|
return { ...s,
|
|
303
297
|
objects: s.objects.map(o => {
|
|
298
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
304
299
|
// @ts-ignore
|
|
305
300
|
if (o.quantity !== undefined) {
|
|
306
301
|
return deserializeSample(o);
|
|
@@ -329,25 +324,27 @@ const saveCorrelationSample = async (typeIdentifier, samples, options) => {
|
|
|
329
324
|
return Native.saveCorrelationSample(typeIdentifier, samples, start, end, ensureMetadata(options === null || options === void 0 ? void 0 : options.metadata));
|
|
330
325
|
};
|
|
331
326
|
|
|
332
|
-
const saveWorkoutSample = (typeIdentifier, quantities, _start, options) => {
|
|
327
|
+
const saveWorkoutSample = async (typeIdentifier, quantities, _start, options) => {
|
|
333
328
|
const start = _start.toISOString();
|
|
334
329
|
|
|
335
330
|
const end = ((options === null || options === void 0 ? void 0 : options.end) || new Date()).toISOString();
|
|
336
331
|
return Native.saveWorkoutSample(typeIdentifier, quantities, start, end, ensureMetadata(options === null || options === void 0 ? void 0 : options.metadata));
|
|
337
332
|
};
|
|
338
333
|
|
|
334
|
+
const getWorkoutRoutes = async workoutUUID => Native.getWorkoutRoutes(workoutUUID);
|
|
335
|
+
|
|
339
336
|
const Healthkit = {
|
|
340
|
-
authorizationStatusFor: Native.authorizationStatusFor,
|
|
341
|
-
isHealthDataAvailable: Native.isHealthDataAvailable,
|
|
337
|
+
authorizationStatusFor: Native.authorizationStatusFor.bind(Native),
|
|
338
|
+
isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),
|
|
342
339
|
buildUnitWithPrefix,
|
|
343
340
|
disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,
|
|
344
341
|
disableBackgroundDelivery: Native.disableBackgroundDelivery,
|
|
345
342
|
enableBackgroundDelivery: Native.enableBackgroundDelivery,
|
|
346
343
|
// simple convenience getters
|
|
347
|
-
getBiologicalSex: Native.getBiologicalSex,
|
|
348
|
-
getFitzpatrickSkinType: Native.getFitzpatrickSkinType,
|
|
344
|
+
getBiologicalSex: Native.getBiologicalSex.bind(Native),
|
|
345
|
+
getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),
|
|
349
346
|
getWheelchairUse: Native.getWheelchairUse,
|
|
350
|
-
getBloodType: Native.getBloodType,
|
|
347
|
+
getBloodType: Native.getBloodType.bind(Native),
|
|
351
348
|
getDateOfBirth,
|
|
352
349
|
getMostRecentQuantitySample,
|
|
353
350
|
getMostRecentCategorySample,
|
|
@@ -355,6 +352,7 @@ const Healthkit = {
|
|
|
355
352
|
getPreferredUnit,
|
|
356
353
|
getPreferredUnits,
|
|
357
354
|
getRequestStatusForAuthorization,
|
|
355
|
+
getWorkoutRoutes,
|
|
358
356
|
// query methods
|
|
359
357
|
queryCategorySamples,
|
|
360
358
|
queryCorrelationSamples,
|
|
@@ -375,7 +373,7 @@ const Healthkit = {
|
|
|
375
373
|
useMostRecentWorkout,
|
|
376
374
|
useSubscribeToChanges
|
|
377
375
|
};
|
|
378
|
-
export * from './types';
|
|
379
376
|
export * from './native-types';
|
|
377
|
+
export * from './types';
|
|
380
378
|
export default Healthkit;
|
|
381
379
|
//# sourceMappingURL=index.ios.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ios.tsx"],"names":["useState","useEffect","useCallback","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","then","getMostRecentCategorySample","queryCategorySamples","useMostRecentCategorySample","category","setCategory","updater","useSubscribeToChanges","onChange","useMostRecentQuantitySample","lastSample","setLastSample","actualUnit","value","saveQuantitySample","start","end","metadata","queryStatisticsForQuantity","toDate","mostRecentQuantityDateInterval","rawResponse","response","requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","getDateOfBirth","dateOfBirth","getRequestStatusForAuthorization","results","units","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","Healthkit","authorizationStatusFor","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"mappings":"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","sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport Native, {\n EventEmitter,\n HKCategorySampleRaw,\n HKCategoryTypeIdentifier,\n HKCategoryValueForIdentifier,\n HKCharacteristicTypeIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKQuantityTypeIdentifier,\n HKSampleTypeIdentifier,\n HKUnit,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n} from './native-types';\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n HKCategorySample,\n HKCorrelation,\n HKQuantitySample,\n HKWorkout,\n QueryCategorySamplesFn,\n QueryCorrelationSamplesFn,\n QueryQuantitySamplesFn,\n QueryStatisticsForQuantityFn,\n QueryWorkoutsFn,\n ReactNativeHealthkit,\n SaveCorrelationSampleFn,\n SaveQuantitySampleFn,\n SaveWorkoutSampleFn,\n SubscribeToChangesFn,\n} from './types';\n\nconst getPreferredUnit: GetPreferredUnitFn = async (type) => {\n const [unit] = await getPreferredUnits([type]);\n return unit;\n};\n\nconst ensureUnit = async <TUnit extends HKUnit>(\n type: HKQuantityTypeIdentifier,\n providedUnit?: TUnit\n) => {\n if (providedUnit) {\n return providedUnit;\n }\n const unit = await Native.getPreferredUnits([type]);\n return unit[type] as TUnit;\n};\n\nfunction deserializeSample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit\n>(\n sample: HKQuantitySampleRaw<TIdentifier, TUnit>\n): HKQuantitySample<TIdentifier, TUnit> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nfunction deserializeWorkout<TEnergy extends HKUnit, TDistance extends HKUnit>(\n sample: HKWorkoutRaw<TEnergy, TDistance>\n): HKWorkout<TEnergy, TDistance> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nconst deserializCategorySample = <T extends HKCategoryTypeIdentifier>(\n sample: HKCategorySampleRaw<T>\n): HKCategorySample<T> => {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n};\n\nconst serializeDate = (date?: Date | null): string => {\n return date ? date.toISOString() : new Date(0).toISOString();\n};\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit =\n !options.limit || options.limit === Infinity ? 0 : options.limit;\n const ascending = options.ascending ?? limit === 0;\n const from = serializeDate(options.from);\n const to = serializeDate(options.to);\n return { limit, ascending, from, to };\n};\n\nconst queryQuantitySamples: QueryQuantitySamplesFn = async (\n identifier,\n options\n) => {\n const unit = await ensureUnit(identifier, options.unit);\n const opts = prepareOptions(options);\n\n const quantitySamples = await Native.queryQuantitySamples(\n identifier,\n unit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return quantitySamples.map(deserializeSample);\n};\n\nconst subscribeToChanges: SubscribeToChangesFn = async (\n identifier,\n callback\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback();\n }\n }\n );\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n (error) => {\n subscription.remove();\n return Promise.reject(error);\n }\n );\n\n return () => {\n subscription.remove();\n return Native.unsubscribeQuery(queryId);\n };\n};\n\nconst getMostRecentQuantitySample: GetMostRecentQuantitySampleFn = async (\n identifier,\n unit\n) => {\n const samples = await queryQuantitySamples(identifier, {\n limit: 1,\n unit: unit,\n });\n return samples[0];\n};\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(\n null\n );\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n options\n );\n\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n () => {\n getMostRecentWorkout({ energyUnit, distanceUnit }).then(setWorkout);\n }\n );\n };\n init();\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [options]);\n return workout;\n}\n\nconst getMostRecentCategorySample: GetMostRecentCategorySampleFn = async (\n identifier\n) => {\n const samples = await queryCategorySamples(identifier, {\n limit: 1,\n ascending: false,\n });\n\n return samples[0];\n};\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null\n );\n const updater = useCallback(() => {\n getMostRecentCategorySample(identifier).then(setCategory);\n }, [identifier]);\n\n useSubscribeToChanges(identifier, updater);\n\n return category;\n}\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void\n): void {\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChange);\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, onChange]);\n}\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier,\n TUnit\n > | null>(null);\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit);\n\n cancelSubscription = await subscribeToChanges(identifier, () => {\n getMostRecentQuantitySample(identifier, actualUnit).then((value) => {\n setLastSample(value);\n });\n });\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, unit]);\n\n return lastSample;\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = (\n identifier,\n unit,\n value,\n options\n) => {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata\n );\n};\n\nconst queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (\n identifier,\n options,\n from,\n to,\n unit\n) => {\n const actualUnit = await ensureUnit(identifier, unit);\n const toDate = to || new Date();\n const {\n mostRecentQuantityDateInterval,\n ...rawResponse\n } = await Native.queryStatisticsForQuantity(\n identifier,\n actualUnit,\n from.toISOString(),\n toDate.toISOString(),\n options\n );\n\n const response = {\n ...rawResponse,\n ...(mostRecentQuantityDateInterval\n ? {\n mostRecentQuantityDateInterval: {\n from: new Date(mostRecentQuantityDateInterval.from),\n to: new Date(mostRecentQuantityDateInterval.to),\n },\n }\n : {}),\n };\n\n return response;\n};\n\nconst requestAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.requestAuthorization(writePermissions, readPermissions);\n};\n\nconst getDateOfBirth = async () => {\n const dateOfBirth = await Native.getDateOfBirth();\n return new Date(dateOfBirth);\n};\n\nconst getRequestStatusForAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n) => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.getRequestStatusForAuthorization(\n writePermissions,\n readPermissions\n );\n};\n\nconst queryCategorySamples: QueryCategorySamplesFn = async (\n identifier,\n options\n) => {\n const opts = prepareOptions(options);\n const results = await Native.queryCategorySamples(\n identifier,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return results.map(deserializCategorySample);\n};\n\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n let energyUnit = options?.energyUnit;\n let distanceUnit = options?.distanceUnit;\n if (!energyUnit || !distanceUnit) {\n const units = await Native.getPreferredUnits([\n HKQuantityTypeIdentifier.distanceWalkingRunning,\n HKQuantityTypeIdentifier.activeEnergyBurned,\n ]);\n if (!energyUnit) {\n energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning] as\n | TEnergy\n | undefined;\n }\n if (!distanceUnit) {\n distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned] as\n | TDistance\n | undefined;\n }\n }\n if (!energyUnit) {\n energyUnit = HKUnit.Kilocalories as TEnergy;\n }\n if (!distanceUnit) {\n distanceUnit = HKUnit.Meters as TDistance;\n }\n return { energyUnit, distanceUnit };\n}\n\nconst queryWorkouts: QueryWorkoutsFn = async (options) => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options);\n const opts = prepareOptions(options);\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return workouts.map(deserializeWorkout);\n};\n\nconst getMostRecentWorkout: GetMostRecentWorkoutFn = async (options) => {\n const workouts = await queryWorkouts({\n limit: 1,\n ascending: false,\n energyUnit: options?.energyUnit,\n distanceUnit: options?.distanceUnit,\n });\n\n return workouts[0];\n};\n\nfunction saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n start?: Date;\n end?: Date;\n metadata?: MetadataMapperForCategoryIdentifier<T>;\n }\n) {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {}\n );\n}\n\nconst getPreferredUnits: GetPreferredUnitsFn = async (identifiers) => {\n const units = await Native.getPreferredUnits(identifiers);\n return identifiers.map((i) => units[i]);\n};\n\nconst buildUnitWithPrefix = (prefix: HKUnitSIPrefix, unit: HKUnitSI) => {\n return `${prefix}${unit}` as HKUnit;\n};\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // @ts-ignore\n if (o.quantity !== undefined) {\n return deserializeSample(o as HKQuantitySampleRaw);\n }\n\n return deserializCategorySample(o as HKCategorySampleRaw);\n }),\n endDate: new Date(s.endDate),\n startDate: new Date(s.startDate),\n };\n}\n\nfunction ensureMetadata<TMetadata>(metadata?: TMetadata) {\n return metadata || ({} as TMetadata);\n}\n\nconst queryCorrelationSamples: QueryCorrelationSamplesFn = async (\n typeIdentifier,\n options\n) => {\n const opts = prepareOptions(options);\n const correlations = await Native.queryCorrelationSamples(\n typeIdentifier,\n opts.from,\n opts.to\n );\n\n return correlations.map(deserializeCorrelation);\n};\n\nconst saveCorrelationSample: SaveCorrelationSampleFn = async (\n typeIdentifier,\n samples,\n options\n) => {\n const start = (options?.start || new Date()).toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst saveWorkoutSample: SaveWorkoutSampleFn = (\n typeIdentifier,\n quantities,\n _start,\n options\n) => {\n const start = _start.toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor,\n\n isHealthDataAvailable: Native.isHealthDataAvailable,\n\n buildUnitWithPrefix,\n\n disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,\n disableBackgroundDelivery: Native.disableBackgroundDelivery,\n enableBackgroundDelivery: Native.enableBackgroundDelivery,\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex,\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType,\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType,\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n // query methods\n queryCategorySamples,\n queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // save methods\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n\n // subscriptions\n subscribeToChanges,\n\n // hooks\n useMostRecentCategorySample,\n\n useMostRecentQuantitySample,\n useMostRecentWorkout,\n\n useSubscribeToChanges,\n};\n\nexport * from './types';\nexport * from './native-types';\n\nexport default Healthkit;\n"]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","getPreferredUnitsTyped","energyUnit","distanceUnit","units","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","useMostRecentCategorySample","category","setCategory","updater","then","useMostRecentQuantitySample","lastSample","setLastSample","actualUnit","value","saveQuantitySample","start","end","metadata","queryStatisticsForQuantity","toDate","mostRecentQuantityDateInterval","rawResponse","response","requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","getDateOfBirth","dateOfBirth","getRequestStatusForAuthorization","results","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport Native, {\n EventEmitter,\n HKQuantityTypeIdentifier,\n HKUnit,\n} from './native-types'\n\nimport type {\n HKCategorySampleRaw,\n HKCategoryTypeIdentifier,\n HKCategoryValueForIdentifier,\n HKCharacteristicTypeIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKSampleTypeIdentifier,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n ReadPermissions,\n WritePermissions,\n} from './native-types'\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\n HKCategorySample,\n HKCorrelation,\n HKQuantitySample,\n HKWorkout,\n QueryCategorySamplesFn,\n QueryCorrelationSamplesFn,\n QueryQuantitySamplesFn,\n QueryStatisticsForQuantityFn,\n QueryWorkoutsFn,\n ReactNativeHealthkit,\n SaveCorrelationSampleFn,\n SaveQuantitySampleFn,\n SaveWorkoutSampleFn,\n SubscribeToChangesFn,\n} from './types'\n\nconst getPreferredUnit: GetPreferredUnitFn = async (type) => {\n const [unit] = await getPreferredUnits([type])\n return unit\n}\n\nconst ensureUnit = async <TUnit extends HKUnit>(\n type: HKQuantityTypeIdentifier,\n providedUnit?: TUnit,\n) => {\n if (providedUnit) {\n return providedUnit\n }\n const unit = await Native.getPreferredUnits([type])\n return unit[type] as TUnit\n}\n\nfunction deserializeSample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit\n>(\n sample: HKQuantitySampleRaw<TIdentifier, TUnit>,\n): HKQuantitySample<TIdentifier, TUnit> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n }\n}\n\nfunction deserializeWorkout<TEnergy extends HKUnit, TDistance extends HKUnit>(\n sample: HKWorkoutRaw<TEnergy, TDistance>,\n): HKWorkout<TEnergy, TDistance> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n }\n}\n\nconst deserializCategorySample = <T extends HKCategoryTypeIdentifier>(\n sample: HKCategorySampleRaw<T>,\n): HKCategorySample<T> => ({\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n})\n\nconst serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit = !options.limit || options.limit === Infinity ? 0 : options.limit\n const ascending = options.ascending ?? limit === 0\n const from = serializeDate(options.from)\n const to = serializeDate(options.to)\n return {\n limit, ascending, from, to,\n }\n}\n\nconst queryQuantitySamples: QueryQuantitySamplesFn = async (\n identifier,\n options,\n) => {\n const unit = await ensureUnit(identifier, options.unit)\n const opts = prepareOptions(options)\n\n const quantitySamples = await Native.queryQuantitySamples(\n identifier,\n unit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return quantitySamples.map(deserializeSample)\n}\n\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n let energyUnit = options?.energyUnit\n let distanceUnit = options?.distanceUnit\n if (!energyUnit || !distanceUnit) {\n const units = await Native.getPreferredUnits([\n HKQuantityTypeIdentifier.distanceWalkingRunning,\n HKQuantityTypeIdentifier.activeEnergyBurned,\n ])\n if (!energyUnit) {\n energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning] as\n | TEnergy\n | undefined\n }\n if (!distanceUnit) {\n distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned] as\n | TDistance\n | undefined\n }\n }\n if (!energyUnit) {\n energyUnit = HKUnit.Kilocalories as TEnergy\n }\n if (!distanceUnit) {\n distanceUnit = HKUnit.Meters as TDistance\n }\n return { energyUnit, distanceUnit }\n}\n\nconst subscribeToChanges: SubscribeToChangesFn = async (\n identifier,\n callback,\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback()\n }\n },\n )\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\n subscription.remove()\n return Native.unsubscribeQuery(queryId)\n }\n}\n\nconst getMostRecentQuantitySample: GetMostRecentQuantitySampleFn = async (\n identifier,\n unit,\n) => {\n const samples = await queryQuantitySamples(identifier, {\n limit: 1,\n unit,\n })\n return samples[0]\n}\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(\n null,\n )\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n options,\n )\n\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n async () => {\n const w = await getMostRecentWorkout({ energyUnit, distanceUnit })\n setWorkout(w)\n },\n )\n }\n void init()\n return () => {\n void cancelSubscription?.()\n }\n }, [options])\n return workout\n}\n\nconst getMostRecentCategorySample: GetMostRecentCategorySampleFn = async (\n identifier,\n) => {\n const samples = await queryCategorySamples(identifier, {\n limit: 1,\n ascending: false,\n })\n\n return samples[0]\n}\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void,\n): void {\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChange)\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, onChange])\n}\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null,\n )\n const updater = useCallback(() => {\n void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\n}\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier,\n TUnit\n > | null>(null)\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit)\n\n cancelSubscription = await subscribeToChanges(identifier, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = async (\n identifier,\n unit,\n value,\n options,\n) => {\n const start = options?.start || options?.end || new Date()\n const end = options?.end || options?.start || new Date()\n const metadata = options?.metadata || {}\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata,\n )\n}\n\nconst queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (\n identifier,\n options,\n from,\n to,\n unit,\n) => {\n const actualUnit = await ensureUnit(identifier, unit)\n const toDate = to || new Date()\n const { mostRecentQuantityDateInterval, ...rawResponse } = await Native.queryStatisticsForQuantity(\n identifier,\n actualUnit,\n from.toISOString(),\n toDate.toISOString(),\n options,\n )\n\n const response = {\n ...rawResponse,\n ...(mostRecentQuantityDateInterval\n ? {\n mostRecentQuantityDateInterval: {\n from: new Date(mostRecentQuantityDateInterval.from),\n to: new Date(mostRecentQuantityDateInterval.to),\n },\n }\n : {}),\n }\n\n return response\n}\n\nconst requestAuthorization = async (\n read: readonly (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: readonly HKSampleTypeIdentifier[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\n\n return Native.requestAuthorization(writePermissions, readPermissions)\n}\n\nconst getDateOfBirth = async () => {\n const dateOfBirth = await Native.getDateOfBirth()\n return new Date(dateOfBirth)\n}\n\nconst getRequestStatusForAuthorization = async (\n read: readonly (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: readonly HKSampleTypeIdentifier[] = [],\n) => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\n\n return Native.getRequestStatusForAuthorization(\n writePermissions,\n readPermissions,\n )\n}\n\nconst queryCategorySamples: QueryCategorySamplesFn = async (\n identifier,\n options,\n) => {\n const opts = prepareOptions(options)\n const results = await Native.queryCategorySamples(\n identifier,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return results.map(deserializCategorySample)\n}\n\nconst queryWorkouts: QueryWorkoutsFn = async (options) => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options)\n const opts = prepareOptions(options)\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return workouts.map(deserializeWorkout)\n}\n\nconst getMostRecentWorkout: GetMostRecentWorkoutFn = async (options) => {\n const workouts = await queryWorkouts({\n limit: 1,\n ascending: false,\n energyUnit: options?.energyUnit,\n distanceUnit: options?.distanceUnit,\n })\n\n return workouts[0]\n}\n\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly metadata?: MetadataMapperForCategoryIdentifier<T>;\n },\n) {\n const start = options?.start || options?.end || new Date()\n const end = options?.end || options?.start || new Date()\n const metadata = options?.metadata || {}\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {},\n )\n}\n\nconst getPreferredUnits: GetPreferredUnitsFn = async (identifiers) => {\n const units = await Native.getPreferredUnits(identifiers)\n return identifiers.map((i) => units[i])\n}\n\nconst buildUnitWithPrefix = (prefix: HKUnitSIPrefix, unit: HKUnitSI) => `${prefix}${unit}` as HKUnit\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (o.quantity !== undefined) {\n return deserializeSample(o as HKQuantitySampleRaw)\n }\n\n return deserializCategorySample(o as HKCategorySampleRaw)\n }),\n endDate: new Date(s.endDate),\n startDate: new Date(s.startDate),\n }\n}\n\nfunction ensureMetadata<TMetadata>(metadata?: TMetadata) {\n return metadata || ({} as TMetadata)\n}\n\nconst queryCorrelationSamples: QueryCorrelationSamplesFn = async (\n typeIdentifier,\n options,\n) => {\n const opts = prepareOptions(options)\n const correlations = await Native.queryCorrelationSamples(\n typeIdentifier,\n opts.from,\n opts.to,\n )\n\n return correlations.map(deserializeCorrelation)\n}\n\nconst saveCorrelationSample: SaveCorrelationSampleFn = async (\n typeIdentifier,\n samples,\n options,\n) => {\n const start = (options?.start || new Date()).toISOString()\n const end = (options?.end || new Date()).toISOString()\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples,\n start,\n end,\n ensureMetadata(options?.metadata),\n )\n}\n\nconst saveWorkoutSample: SaveWorkoutSampleFn = async (\n typeIdentifier,\n quantities,\n _start,\n options,\n) => {\n const start = _start.toISOString()\n const end = (options?.end || new Date()).toISOString()\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities,\n start,\n end,\n ensureMetadata(options?.metadata),\n )\n}\n\nconst getWorkoutRoutes: GetWorkoutRoutesFn = async (workoutUUID: string) => Native.getWorkoutRoutes(workoutUUID)\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\n\n buildUnitWithPrefix,\n\n disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,\n disableBackgroundDelivery: Native.disableBackgroundDelivery,\n enableBackgroundDelivery: Native.enableBackgroundDelivery,\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType.bind(Native),\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\n\n // query methods\n queryCategorySamples,\n queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // save methods\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n\n // subscriptions\n subscribeToChanges,\n\n // hooks\n useMostRecentCategorySample,\n\n useMostRecentQuantitySample,\n useMostRecentWorkout,\n\n useSubscribeToChanges,\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
|
-
const notAvailableError =
|
|
2
|
+
const notAvailableError = `Platform "${Platform.OS}" not supported, use isHealthDataAvailable to check for availability before using it`;
|
|
3
3
|
|
|
4
4
|
const UnavailableFn = () => {
|
|
5
5
|
throw new Error(notAvailableError);
|
|
@@ -22,7 +22,8 @@ const Healthkit = {
|
|
|
22
22
|
getPreferredUnits: UnavailableFn,
|
|
23
23
|
getRequestStatusForAuthorization: UnavailableFn,
|
|
24
24
|
getWheelchairUse: UnavailableFn,
|
|
25
|
-
|
|
25
|
+
getWorkoutRoutes: UnavailableFn,
|
|
26
|
+
isHealthDataAvailable: async () => Promise.resolve(false),
|
|
26
27
|
queryCategorySamples: UnavailableFn,
|
|
27
28
|
queryCorrelationSamples: UnavailableFn,
|
|
28
29
|
queryQuantitySamples: UnavailableFn,
|
|
@@ -39,7 +40,7 @@ const Healthkit = {
|
|
|
39
40
|
useMostRecentWorkout: UnavailableFn,
|
|
40
41
|
useSubscribeToChanges: UnavailableFn
|
|
41
42
|
};
|
|
42
|
-
export * from './types';
|
|
43
43
|
export * from './native-types';
|
|
44
|
+
export * from './types';
|
|
44
45
|
export default Healthkit;
|
|
45
46
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Platform","notAvailableError","OS","UnavailableFn","Error","Healthkit","authorizationStatusFor","buildUnitWithPrefix","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getMostRecentCategorySample","getMostRecentQuantitySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","getWorkoutRoutes","isHealthDataAvailable","Promise","resolve","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","queryWorkouts","requestAuthorization","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport type { ReactNativeHealthkit } from './types'\n\nconst notAvailableError = `Platform \"${\n Platform.OS\n}\" not supported, use isHealthDataAvailable to check for availability before using it`\n\nconst UnavailableFn = () => {\n throw new Error(notAvailableError)\n}\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: UnavailableFn,\n buildUnitWithPrefix: UnavailableFn,\n disableAllBackgroundDelivery: UnavailableFn,\n disableBackgroundDelivery: UnavailableFn,\n enableBackgroundDelivery: UnavailableFn,\n getBiologicalSex: UnavailableFn,\n getBloodType: UnavailableFn,\n getDateOfBirth: UnavailableFn,\n getFitzpatrickSkinType: UnavailableFn,\n getMostRecentCategorySample: UnavailableFn,\n getMostRecentQuantitySample: UnavailableFn,\n getMostRecentWorkout: UnavailableFn,\n getPreferredUnit: UnavailableFn,\n getPreferredUnits: UnavailableFn,\n getRequestStatusForAuthorization: UnavailableFn,\n getWheelchairUse: UnavailableFn,\n getWorkoutRoutes: UnavailableFn,\n isHealthDataAvailable: async () => Promise.resolve(false),\n queryCategorySamples: UnavailableFn,\n queryCorrelationSamples: UnavailableFn,\n queryQuantitySamples: UnavailableFn,\n queryStatisticsForQuantity: UnavailableFn,\n queryWorkouts: UnavailableFn,\n requestAuthorization: UnavailableFn,\n saveCategorySample: UnavailableFn,\n saveCorrelationSample: UnavailableFn,\n saveQuantitySample: UnavailableFn,\n saveWorkoutSample: UnavailableFn,\n subscribeToChanges: UnavailableFn,\n useMostRecentCategorySample: UnavailableFn,\n useMostRecentQuantitySample: UnavailableFn,\n useMostRecentWorkout: UnavailableFn,\n useSubscribeToChanges: UnavailableFn,\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAIA,MAAMC,iBAAiB,GAAI,aACzBD,QAAQ,CAACE,EACV,sFAFD;;AAIA,MAAMC,aAAa,GAAG,MAAM;EAC1B,MAAM,IAAIC,KAAJ,CAAUH,iBAAV,CAAN;AACD,CAFD;;AAIA,MAAMI,SAA+B,GAAG;EACtCC,sBAAsB,EAAEH,aADc;EAEtCI,mBAAmB,EAAEJ,aAFiB;EAGtCK,4BAA4B,EAAEL,aAHQ;EAItCM,yBAAyB,EAAEN,aAJW;EAKtCO,wBAAwB,EAAEP,aALY;EAMtCQ,gBAAgB,EAAER,aANoB;EAOtCS,YAAY,EAAET,aAPwB;EAQtCU,cAAc,EAAEV,aARsB;EAStCW,sBAAsB,EAAEX,aATc;EAUtCY,2BAA2B,EAAEZ,aAVS;EAWtCa,2BAA2B,EAAEb,aAXS;EAYtCc,oBAAoB,EAAEd,aAZgB;EAatCe,gBAAgB,EAAEf,aAboB;EActCgB,iBAAiB,EAAEhB,aAdmB;EAetCiB,gCAAgC,EAAEjB,aAfI;EAgBtCkB,gBAAgB,EAAElB,aAhBoB;EAiBtCmB,gBAAgB,EAAEnB,aAjBoB;EAkBtCoB,qBAAqB,EAAE,YAAYC,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAlBG;EAmBtCC,oBAAoB,EAAEvB,aAnBgB;EAoBtCwB,uBAAuB,EAAExB,aApBa;EAqBtCyB,oBAAoB,EAAEzB,aArBgB;EAsBtC0B,0BAA0B,EAAE1B,aAtBU;EAuBtC2B,aAAa,EAAE3B,aAvBuB;EAwBtC4B,oBAAoB,EAAE5B,aAxBgB;EAyBtC6B,kBAAkB,EAAE7B,aAzBkB;EA0BtC8B,qBAAqB,EAAE9B,aA1Be;EA2BtC+B,kBAAkB,EAAE/B,aA3BkB;EA4BtCgC,iBAAiB,EAAEhC,aA5BmB;EA6BtCiC,kBAAkB,EAAEjC,aA7BkB;EA8BtCkC,2BAA2B,EAAElC,aA9BS;EA+BtCmC,2BAA2B,EAAEnC,aA/BS;EAgCtCoC,oBAAoB,EAAEpC,aAhCgB;EAiCtCqC,qBAAqB,EAAErC;AAjCe,CAAxC;AAoCA,cAAc,gBAAd;AACA,cAAc,SAAd;AAEA,eAAeE,SAAf"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NativeEventEmitter, NativeModules } from 'react-native';
|
|
2
|
+
export const HKWorkoutTypeIdentifier = 'HKWorkoutTypeIdentifier';
|
|
3
|
+
export const HKAudiogramTypeIdentifier = 'HKAudiogramTypeIdentifier';
|
|
4
|
+
export const HKWorkoutRouteTypeIdentifier = 'HKWorkoutRouteTypeIdentifier';
|
|
5
|
+
export const HKDataTypeIdentifierHeartbeatSeries = 'HKDataTypeIdentifierHeartbeatSeries';
|
|
2
6
|
export let HKHeartRateMotionContext;
|
|
3
7
|
|
|
4
8
|
(function (HKHeartRateMotionContext) {
|
|
@@ -234,6 +238,13 @@ export let HKQuantityTypeIdentifier;
|
|
|
234
238
|
HKQuantityTypeIdentifier["dietaryPotassium"] = "HKQuantityTypeIdentifierDietaryPotassium";
|
|
235
239
|
HKQuantityTypeIdentifier["dietaryCaffeine"] = "HKQuantityTypeIdentifierDietaryCaffeine";
|
|
236
240
|
HKQuantityTypeIdentifier["dietaryWater"] = "HKQuantityTypeIdentifierDietaryWater";
|
|
241
|
+
HKQuantityTypeIdentifier["sixMinuteWalkTestDistance"] = "HKQuantityTypeIdentifierSixMinuteWalkTestDistance";
|
|
242
|
+
HKQuantityTypeIdentifier["walkingSpeed"] = "HKQuantityTypeIdentifierWalkingSpeed";
|
|
243
|
+
HKQuantityTypeIdentifier["walkingStepLength"] = "HKQuantityTypeIdentifierWalkingStepLength";
|
|
244
|
+
HKQuantityTypeIdentifier["walkingAsymmetryPercentage"] = "HKQuantityTypeIdentifierWalkingAsymmetryPercentage";
|
|
245
|
+
HKQuantityTypeIdentifier["walkingDoubleSupportPercentage"] = "HKQuantityTypeIdentifierWalkingDoubleSupportPercentage";
|
|
246
|
+
HKQuantityTypeIdentifier["stairAscentSpeed"] = "HKQuantityTypeIdentifierStairAscentSpeed";
|
|
247
|
+
HKQuantityTypeIdentifier["stairDescentSpeed"] = "HKQuantityTypeIdentifierStairDescentSpeed";
|
|
237
248
|
HKQuantityTypeIdentifier["uvExposure"] = "HKQuantityTypeIdentifierUvExposure";
|
|
238
249
|
})(HKQuantityTypeIdentifier || (HKQuantityTypeIdentifier = {}));
|
|
239
250
|
|
|
@@ -245,6 +256,14 @@ export let HKAuthorizationRequestStatus;
|
|
|
245
256
|
HKAuthorizationRequestStatus[HKAuthorizationRequestStatus["unnecessary"] = 2] = "unnecessary";
|
|
246
257
|
})(HKAuthorizationRequestStatus || (HKAuthorizationRequestStatus = {}));
|
|
247
258
|
|
|
259
|
+
export let HKAuthorizationStatus;
|
|
260
|
+
|
|
261
|
+
(function (HKAuthorizationStatus) {
|
|
262
|
+
HKAuthorizationStatus[HKAuthorizationStatus["notDetermined"] = 0] = "notDetermined";
|
|
263
|
+
HKAuthorizationStatus[HKAuthorizationStatus["sharingDenied"] = 1] = "sharingDenied";
|
|
264
|
+
HKAuthorizationStatus[HKAuthorizationStatus["sharingAuthorized"] = 2] = "sharingAuthorized";
|
|
265
|
+
})(HKAuthorizationStatus || (HKAuthorizationStatus = {}));
|
|
266
|
+
|
|
248
267
|
export let HKBloodType;
|
|
249
268
|
|
|
250
269
|
(function (HKBloodType) {
|