@kingstinct/react-native-healthkit 6.1.0 → 7.0.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 +7 -5
- package/app.plugin.js +69 -0
- package/ios/Constants.swift +28 -0
- package/ios/Helpers.swift +152 -0
- package/ios/ReactNativeHealthkit.m +24 -0
- package/ios/ReactNativeHealthkit.swift +534 -728
- package/ios/Serializers.swift +206 -0
- package/lib/commonjs/hooks/useHealthkitAuthorization.js +0 -6
- package/lib/commonjs/hooks/useHealthkitAuthorization.js.map +1 -1
- package/lib/commonjs/hooks/useHealthkitAuthorization.test.js +2 -9
- package/lib/commonjs/hooks/useHealthkitAuthorization.test.js.map +1 -1
- package/lib/commonjs/hooks/useIsHealthDataAvailable.js +0 -6
- package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +1 -1
- package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js +1 -6
- package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js.map +1 -1
- package/lib/commonjs/hooks/useMostRecentCategorySample.js +1 -7
- package/lib/commonjs/hooks/useMostRecentCategorySample.js.map +1 -1
- package/lib/commonjs/hooks/useMostRecentQuantitySample.js +0 -10
- package/lib/commonjs/hooks/useMostRecentQuantitySample.js.map +1 -1
- package/lib/commonjs/hooks/useMostRecentWorkout.js +0 -10
- package/lib/commonjs/hooks/useMostRecentWorkout.js.map +1 -1
- package/lib/commonjs/hooks/useSources.js +0 -5
- package/lib/commonjs/hooks/useSources.js.map +1 -1
- package/lib/commonjs/hooks/useStatisticsForQuantity.js +1 -7
- package/lib/commonjs/hooks/useStatisticsForQuantity.js.map +1 -1
- package/lib/commonjs/hooks/useSubscribeToChanges.js +0 -8
- package/lib/commonjs/hooks/useSubscribeToChanges.js.map +1 -1
- package/lib/commonjs/index.ios.js +6 -33
- package/lib/commonjs/index.ios.js.map +1 -1
- package/lib/commonjs/index.js +7 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/jest.setup.js +3 -1
- package/lib/commonjs/jest.setup.js.map +1 -1
- package/lib/commonjs/native-types.js +166 -250
- package/lib/commonjs/native-types.js.map +1 -1
- package/lib/commonjs/test-utils.js +1 -3
- package/lib/commonjs/test-utils.js.map +1 -1
- package/lib/commonjs/types.js +0 -2
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/deleteQuantitySample.js +0 -4
- package/lib/commonjs/utils/deleteQuantitySample.js.map +1 -1
- package/lib/commonjs/utils/deleteSamples.js +0 -4
- package/lib/commonjs/utils/deleteSamples.js.map +1 -1
- package/lib/commonjs/utils/deserializeCategorySample.js +2 -3
- package/lib/commonjs/utils/deserializeCategorySample.js.map +1 -1
- package/lib/commonjs/utils/deserializeCategorySample.test.js +3 -5
- package/lib/commonjs/utils/deserializeCategorySample.test.js.map +1 -1
- package/lib/commonjs/utils/deserializeCorrelation.js +2 -7
- package/lib/commonjs/utils/deserializeCorrelation.js.map +1 -1
- package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js +2 -3
- package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js.map +1 -1
- package/lib/commonjs/utils/deserializeSample.js +2 -3
- package/lib/commonjs/utils/deserializeSample.js.map +1 -1
- package/lib/commonjs/utils/deserializeWorkout.js +2 -3
- package/lib/commonjs/utils/deserializeWorkout.js.map +1 -1
- package/lib/commonjs/utils/ensureMetadata.js +0 -2
- package/lib/commonjs/utils/ensureMetadata.js.map +1 -1
- package/lib/commonjs/utils/ensureUnit.js +0 -5
- package/lib/commonjs/utils/ensureUnit.js.map +1 -1
- package/lib/commonjs/utils/getDateOfBirth.js +0 -4
- package/lib/commonjs/utils/getDateOfBirth.js.map +1 -1
- package/lib/commonjs/utils/getMostRecentCategorySample.js +1 -5
- package/lib/commonjs/utils/getMostRecentCategorySample.js.map +1 -1
- package/lib/commonjs/utils/getMostRecentQuantitySample.js +1 -5
- package/lib/commonjs/utils/getMostRecentQuantitySample.js.map +1 -1
- package/lib/commonjs/utils/getMostRecentWorkout.js +0 -4
- package/lib/commonjs/utils/getMostRecentWorkout.js.map +1 -1
- package/lib/commonjs/utils/getPreferredUnit.js +0 -4
- package/lib/commonjs/utils/getPreferredUnit.js.map +1 -1
- package/lib/commonjs/utils/getPreferredUnits.js +0 -4
- package/lib/commonjs/utils/getPreferredUnits.js.map +1 -1
- package/lib/commonjs/utils/getPreferredUnitsTyped.js +0 -11
- package/lib/commonjs/utils/getPreferredUnitsTyped.js.map +1 -1
- package/lib/commonjs/utils/getRequestStatusForAuthorization.js +4 -6
- package/lib/commonjs/utils/getRequestStatusForAuthorization.js.map +1 -1
- package/lib/commonjs/utils/prepareOptions.js +0 -4
- package/lib/commonjs/utils/prepareOptions.js.map +1 -1
- package/lib/commonjs/utils/queryCategorySamples.js +3 -14
- package/lib/commonjs/utils/queryCategorySamples.js.map +1 -1
- package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js +22 -0
- package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js.map +1 -0
- package/lib/commonjs/utils/queryCorrelationSamples.js +1 -7
- package/lib/commonjs/utils/queryCorrelationSamples.js.map +1 -1
- package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js +3 -13
- package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js.map +1 -1
- package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js +22 -0
- package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +1 -0
- package/lib/commonjs/utils/queryQuantitySamples.js +3 -15
- package/lib/commonjs/utils/queryQuantitySamples.js.map +1 -1
- package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js +24 -0
- package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js.map +1 -0
- package/lib/commonjs/utils/querySources.js +0 -4
- package/lib/commonjs/utils/querySources.js.map +1 -1
- package/lib/commonjs/utils/queryStatisticsForQuantity.js +3 -7
- package/lib/commonjs/utils/queryStatisticsForQuantity.js.map +1 -1
- package/lib/commonjs/utils/queryWorkouts.js +1 -8
- package/lib/commonjs/utils/queryWorkouts.js.map +1 -1
- package/lib/commonjs/utils/requestAuthorization.js +4 -6
- package/lib/commonjs/utils/requestAuthorization.js.map +1 -1
- package/lib/commonjs/utils/saveCategorySample.js +0 -4
- package/lib/commonjs/utils/saveCategorySample.js.map +1 -1
- package/lib/commonjs/utils/saveCorrelationSample.js +3 -7
- package/lib/commonjs/utils/saveCorrelationSample.js.map +1 -1
- package/lib/commonjs/utils/saveQuantitySample.js +0 -4
- package/lib/commonjs/utils/saveQuantitySample.js.map +1 -1
- package/lib/commonjs/utils/saveWorkoutSample.js +3 -8
- package/lib/commonjs/utils/saveWorkoutSample.js.map +1 -1
- package/lib/commonjs/utils/serializeDate.js +0 -2
- package/lib/commonjs/utils/serializeDate.js.map +1 -1
- package/lib/commonjs/utils/serializeDate.test.js +0 -2
- package/lib/commonjs/utils/serializeDate.test.js.map +1 -1
- package/lib/commonjs/utils/subscribeToChanges.js +0 -7
- package/lib/commonjs/utils/subscribeToChanges.js.map +1 -1
- package/lib/module/hooks/useHealthkitAuthorization.js +0 -2
- package/lib/module/hooks/useHealthkitAuthorization.js.map +1 -1
- package/lib/module/hooks/useHealthkitAuthorization.test.js +1 -1
- package/lib/module/hooks/useHealthkitAuthorization.test.js.map +1 -1
- package/lib/module/hooks/useIsHealthDataAvailable.js +0 -3
- package/lib/module/hooks/useIsHealthDataAvailable.js.map +1 -1
- package/lib/module/hooks/useIsHealthDataAvailable.test.js +1 -1
- package/lib/module/hooks/useIsHealthDataAvailable.test.js.map +1 -1
- package/lib/module/hooks/useMostRecentCategorySample.js +1 -3
- package/lib/module/hooks/useMostRecentCategorySample.js.map +1 -1
- package/lib/module/hooks/useMostRecentQuantitySample.js +0 -5
- package/lib/module/hooks/useMostRecentQuantitySample.js.map +1 -1
- package/lib/module/hooks/useMostRecentWorkout.js +0 -5
- package/lib/module/hooks/useMostRecentWorkout.js.map +1 -1
- package/lib/module/hooks/useSources.js +0 -2
- package/lib/module/hooks/useSources.js.map +1 -1
- package/lib/module/hooks/useStatisticsForQuantity.js +1 -3
- package/lib/module/hooks/useStatisticsForQuantity.js.map +1 -1
- package/lib/module/hooks/useSubscribeToChanges.js +0 -5
- package/lib/module/hooks/useSubscribeToChanges.js.map +1 -1
- package/lib/module/index.ios.js +6 -0
- package/lib/module/index.ios.js.map +1 -1
- package/lib/module/index.js +8 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest.setup.js +3 -0
- package/lib/module/jest.setup.js.map +1 -1
- package/lib/module/native-types.js +134 -201
- package/lib/module/native-types.js.map +1 -1
- package/lib/module/test-utils.js +0 -2
- package/lib/module/test-utils.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/deleteQuantitySample.js +0 -2
- package/lib/module/utils/deleteQuantitySample.js.map +1 -1
- package/lib/module/utils/deleteSamples.js +0 -2
- package/lib/module/utils/deleteSamples.js.map +1 -1
- package/lib/module/utils/deserializeCategorySample.js +2 -2
- package/lib/module/utils/deserializeCategorySample.js.map +1 -1
- package/lib/module/utils/deserializeCategorySample.test.js +3 -2
- package/lib/module/utils/deserializeCategorySample.test.js.map +1 -1
- package/lib/module/utils/deserializeCorrelation.js +2 -4
- package/lib/module/utils/deserializeCorrelation.js.map +1 -1
- package/lib/module/utils/deserializeHeartbeatSeriesSample.js +2 -2
- package/lib/module/utils/deserializeHeartbeatSeriesSample.js.map +1 -1
- package/lib/module/utils/deserializeSample.js +2 -2
- package/lib/module/utils/deserializeSample.js.map +1 -1
- package/lib/module/utils/deserializeWorkout.js +2 -2
- package/lib/module/utils/deserializeWorkout.js.map +1 -1
- package/lib/module/utils/ensureMetadata.js +0 -1
- package/lib/module/utils/ensureMetadata.js.map +1 -1
- package/lib/module/utils/ensureUnit.js +0 -3
- package/lib/module/utils/ensureUnit.js.map +1 -1
- package/lib/module/utils/getDateOfBirth.js +0 -2
- package/lib/module/utils/getDateOfBirth.js.map +1 -1
- package/lib/module/utils/getMostRecentCategorySample.js +1 -3
- package/lib/module/utils/getMostRecentCategorySample.js.map +1 -1
- package/lib/module/utils/getMostRecentQuantitySample.js +1 -3
- package/lib/module/utils/getMostRecentQuantitySample.js.map +1 -1
- package/lib/module/utils/getMostRecentWorkout.js +0 -2
- package/lib/module/utils/getMostRecentWorkout.js.map +1 -1
- package/lib/module/utils/getPreferredUnit.js +0 -2
- package/lib/module/utils/getPreferredUnit.js.map +1 -1
- package/lib/module/utils/getPreferredUnits.js +0 -2
- package/lib/module/utils/getPreferredUnits.js.map +1 -1
- package/lib/module/utils/getPreferredUnitsTyped.js +0 -8
- package/lib/module/utils/getPreferredUnitsTyped.js.map +1 -1
- package/lib/module/utils/getRequestStatusForAuthorization.js +4 -4
- package/lib/module/utils/getRequestStatusForAuthorization.js.map +1 -1
- package/lib/module/utils/prepareOptions.js +0 -2
- package/lib/module/utils/prepareOptions.js.map +1 -1
- package/lib/module/utils/queryCategorySamples.js +3 -10
- package/lib/module/utils/queryCategorySamples.js.map +1 -1
- package/lib/module/utils/queryCategorySamplesWithAnchor.js +14 -0
- package/lib/module/utils/queryCategorySamplesWithAnchor.js.map +1 -0
- package/lib/module/utils/queryCorrelationSamples.js +1 -3
- package/lib/module/utils/queryCorrelationSamples.js.map +1 -1
- package/lib/module/utils/queryHeartbeatSeriesSamples.js +3 -9
- package/lib/module/utils/queryHeartbeatSeriesSamples.js.map +1 -1
- package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js +14 -0
- package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +1 -0
- package/lib/module/utils/queryQuantitySamples.js +3 -10
- package/lib/module/utils/queryQuantitySamples.js.map +1 -1
- package/lib/module/utils/queryQuantitySamplesWithAnchor.js +16 -0
- package/lib/module/utils/queryQuantitySamplesWithAnchor.js.map +1 -0
- package/lib/module/utils/querySources.js +0 -2
- package/lib/module/utils/querySources.js.map +1 -1
- package/lib/module/utils/queryStatisticsForQuantity.js +3 -4
- package/lib/module/utils/queryStatisticsForQuantity.js.map +1 -1
- package/lib/module/utils/queryWorkouts.js +1 -3
- package/lib/module/utils/queryWorkouts.js.map +1 -1
- package/lib/module/utils/requestAuthorization.js +4 -4
- package/lib/module/utils/requestAuthorization.js.map +1 -1
- package/lib/module/utils/saveCategorySample.js +0 -2
- package/lib/module/utils/saveCategorySample.js.map +1 -1
- package/lib/module/utils/saveCorrelationSample.js +3 -4
- package/lib/module/utils/saveCorrelationSample.js.map +1 -1
- package/lib/module/utils/saveQuantitySample.js +0 -2
- package/lib/module/utils/saveQuantitySample.js.map +1 -1
- package/lib/module/utils/saveWorkoutSample.js +3 -5
- package/lib/module/utils/saveWorkoutSample.js.map +1 -1
- package/lib/module/utils/serializeDate.js +0 -1
- package/lib/module/utils/serializeDate.js.map +1 -1
- package/lib/module/utils/serializeDate.test.js.map +1 -1
- package/lib/module/utils/subscribeToChanges.js +0 -3
- package/lib/module/utils/subscribeToChanges.js.map +1 -1
- package/lib/typescript/src/hooks/useMostRecentCategorySample.d.ts +2 -3
- package/lib/typescript/src/hooks/useMostRecentQuantitySample.d.ts +2 -3
- package/lib/typescript/src/index.ios.d.ts +4 -1
- package/lib/typescript/src/native-types.d.ts +66 -63
- package/lib/typescript/src/types.d.ts +3 -3
- package/lib/typescript/src/utils/deleteQuantitySample.d.ts +1 -1
- package/lib/typescript/src/utils/deleteSamples.d.ts +1 -1
- package/lib/typescript/src/utils/getMostRecentCategorySample.d.ts +1 -1
- package/lib/typescript/src/utils/getMostRecentQuantitySample.d.ts +1 -1
- package/lib/typescript/src/utils/getMostRecentWorkout.d.ts +1 -1
- package/lib/typescript/src/utils/getPreferredUnit.d.ts +1 -1
- package/lib/typescript/src/utils/getPreferredUnits.d.ts +1 -1
- package/lib/typescript/src/utils/queryCategorySamples.d.ts +3 -8
- package/lib/typescript/src/utils/queryCategorySamplesWithAnchor.d.ts +10 -0
- package/lib/typescript/src/utils/queryCorrelationSamples.d.ts +1 -1
- package/lib/typescript/src/utils/queryHeartbeatSeriesSamples.d.ts +2 -2
- package/lib/typescript/src/utils/queryHeartbeatSeriesSamplesWithAnchor.d.ts +10 -0
- package/lib/typescript/src/utils/queryQuantitySamples.d.ts +4 -9
- package/lib/typescript/src/utils/queryQuantitySamplesWithAnchor.d.ts +12 -0
- package/lib/typescript/src/utils/querySources.d.ts +1 -1
- package/package.json +20 -18
- package/src/hooks/useHealthkitAuthorization.test.ts +1 -1
- package/src/hooks/useIsHealthDataAvailable.test.ts +1 -1
- package/src/hooks/useMostRecentCategorySample.ts +3 -4
- package/src/hooks/useMostRecentQuantitySample.ts +2 -3
- package/src/hooks/useStatisticsForQuantity.ts +1 -1
- package/src/index.ios.tsx +6 -0
- package/src/index.tsx +10 -5
- package/src/jest.setup.ts +3 -0
- package/src/native-types.ts +28 -7
- package/src/utils/deserializeCategorySample.test.ts +1 -1
- package/src/utils/getMostRecentCategorySample.ts +1 -1
- package/src/utils/getMostRecentQuantitySample.ts +1 -1
- package/src/utils/queryCategorySamples.ts +6 -18
- package/src/utils/queryCategorySamplesWithAnchor.ts +39 -0
- package/src/utils/queryCorrelationSamples.ts +2 -2
- package/src/utils/queryHeartbeatSeriesSamples.ts +3 -8
- package/src/utils/queryHeartbeatSeriesSamplesWithAnchor.ts +33 -0
- package/src/utils/queryQuantitySamples.ts +8 -18
- package/src/utils/queryQuantitySamplesWithAnchor.ts +46 -0
- package/src/utils/queryStatisticsForQuantity.ts +1 -1
- package/src/utils/queryWorkouts.ts +1 -1
- package/src/utils/saveCorrelationSample.ts +1 -1
- package/src/utils/saveWorkoutSample.ts +1 -1
- package/android/.project +0 -34
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/build.gradle +0 -130
- package/android/gradle.properties +0 -4
- package/android/src/main/AndroidManifest.xml +0 -4
- package/android/src/main/java/com/kingstinctreactnativehealthkit/ReactNativeHealthkitModule.kt +0 -24
- package/android/src/main/java/com/kingstinctreactnativehealthkit/ReactNativeHealthkitPackage.kt +0 -20
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Serializers.swift
|
|
3
|
+
// kingstinct-react-native-healthkit
|
|
4
|
+
//
|
|
5
|
+
// Created by Robert Herber on 2023-05-31.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import HealthKit
|
|
10
|
+
|
|
11
|
+
let _dateFormatter = ISO8601DateFormatter()
|
|
12
|
+
|
|
13
|
+
func serializeQuantity(unit: HKUnit, quantity: HKQuantity?) -> [String: Any]? {
|
|
14
|
+
guard let q = quantity else {
|
|
15
|
+
return nil
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return [
|
|
19
|
+
"quantity": q.doubleValue(for: unit),
|
|
20
|
+
"unit": unit.unitString
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
func serializeQuantitySample(sample: HKQuantitySample, unit: HKUnit) -> NSDictionary {
|
|
25
|
+
let endDate = _dateFormatter.string(from: sample.endDate)
|
|
26
|
+
let startDate = _dateFormatter.string(from: sample.startDate)
|
|
27
|
+
|
|
28
|
+
let quantity = sample.quantity.doubleValue(for: unit)
|
|
29
|
+
|
|
30
|
+
return [
|
|
31
|
+
"uuid": sample.uuid.uuidString,
|
|
32
|
+
"device": serializeDevice(_device: sample.device) as Any,
|
|
33
|
+
"quantityType": sample.quantityType.identifier,
|
|
34
|
+
"endDate": endDate,
|
|
35
|
+
"startDate": startDate,
|
|
36
|
+
"quantity": quantity,
|
|
37
|
+
"unit": unit.unitString,
|
|
38
|
+
"metadata": serializeMetadata(metadata: sample.metadata),
|
|
39
|
+
"sourceRevision": serializeSourceRevision(_sourceRevision: sample.sourceRevision) as Any
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
func serializeDeletedSample(sample: HKDeletedObject) -> NSDictionary {
|
|
44
|
+
return [
|
|
45
|
+
"uuid": sample.uuid.uuidString,
|
|
46
|
+
"metadata": serializeMetadata(metadata: sample.metadata)
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
func serializeCategorySample(sample: HKCategorySample) -> NSDictionary {
|
|
51
|
+
let endDate = _dateFormatter.string(from: sample.endDate)
|
|
52
|
+
let startDate = _dateFormatter.string(from: sample.startDate)
|
|
53
|
+
|
|
54
|
+
return [
|
|
55
|
+
"uuid": sample.uuid.uuidString,
|
|
56
|
+
"device": serializeDevice(_device: sample.device) as Any,
|
|
57
|
+
"categoryType": sample.categoryType.identifier,
|
|
58
|
+
"endDate": endDate,
|
|
59
|
+
"startDate": startDate,
|
|
60
|
+
"value": sample.value,
|
|
61
|
+
"metadata": serializeMetadata(metadata: sample.metadata),
|
|
62
|
+
"sourceRevision": serializeSourceRevision(_sourceRevision: sample.sourceRevision) as Any
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
func serializeSource(source: HKSource) -> NSDictionary {
|
|
67
|
+
|
|
68
|
+
return [
|
|
69
|
+
"bundleIdentifier": source.bundleIdentifier,
|
|
70
|
+
"name": source.name
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
func serializeUnknownQuantity(quantity: HKQuantity) -> [String: Any]? {
|
|
75
|
+
if quantity.is(compatibleWith: HKUnit.percent()) {
|
|
76
|
+
return serializeQuantity(unit: HKUnit.percent(), quantity: quantity)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if quantity.is(compatibleWith: HKUnit.second()) {
|
|
80
|
+
return serializeQuantity(unit: HKUnit.second(), quantity: quantity)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if quantity.is(compatibleWith: HKUnit.kilocalorie()) {
|
|
84
|
+
return serializeQuantity(unit: HKUnit.kilocalorie(), quantity: quantity)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if quantity.is(compatibleWith: HKUnit.count()) {
|
|
88
|
+
return serializeQuantity(unit: HKUnit.count(), quantity: quantity)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if quantity.is(compatibleWith: HKUnit.meter()) {
|
|
92
|
+
return serializeQuantity(unit: HKUnit.meter(), quantity: quantity)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if #available(iOS 11, *) {
|
|
96
|
+
if quantity.is(compatibleWith: HKUnit.internationalUnit()) {
|
|
97
|
+
return serializeQuantity(unit: HKUnit.internationalUnit(), quantity: quantity)
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if #available(iOS 13, *) {
|
|
102
|
+
if quantity.is(compatibleWith: HKUnit.hertz()) {
|
|
103
|
+
return serializeQuantity(unit: HKUnit.hertz(), quantity: quantity)
|
|
104
|
+
}
|
|
105
|
+
if quantity.is(compatibleWith: HKUnit.decibelHearingLevel()) {
|
|
106
|
+
return serializeQuantity(unit: HKUnit.decibelHearingLevel(), quantity: quantity)
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if quantity.is(compatibleWith: SpeedUnit) {
|
|
111
|
+
return serializeQuantity(unit: SpeedUnit, quantity: quantity)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if quantity.is(compatibleWith: METUnit) {
|
|
115
|
+
return serializeQuantity(unit: METUnit, quantity: quantity)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return nil
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
func serializeMetadata(metadata: [String: Any]?) -> NSDictionary {
|
|
122
|
+
let serialized: NSMutableDictionary = [:]
|
|
123
|
+
if let m = metadata {
|
|
124
|
+
for item in m {
|
|
125
|
+
if let bool = item.value as? Bool {
|
|
126
|
+
serialized.setValue(bool, forKey: item.key)
|
|
127
|
+
}
|
|
128
|
+
if let str = item.value as? String {
|
|
129
|
+
serialized.setValue(str, forKey: item.key)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if let double = item.value as? Double {
|
|
133
|
+
serialized.setValue(double, forKey: item.key)
|
|
134
|
+
}
|
|
135
|
+
if let quantity = item.value as? HKQuantity {
|
|
136
|
+
if let s = serializeUnknownQuantity(quantity: quantity) {
|
|
137
|
+
serialized.setValue(s, forKey: item.key)
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return serialized
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
func serializeDevice(_device: HKDevice?) -> [String: String?]? {
|
|
146
|
+
guard let device = _device else {
|
|
147
|
+
return nil
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return [
|
|
151
|
+
"name": device.name,
|
|
152
|
+
"firmwareVersion": device.firmwareVersion,
|
|
153
|
+
"hardwareVersion": device.hardwareVersion,
|
|
154
|
+
"localIdentifier": device.localIdentifier,
|
|
155
|
+
"manufacturer": device.manufacturer,
|
|
156
|
+
"model": device.model,
|
|
157
|
+
"softwareVersion": device.softwareVersion,
|
|
158
|
+
"udiDeviceIdentifier": device.udiDeviceIdentifier
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
func serializeOperatingSystemVersion(_version: OperatingSystemVersion?) -> String? {
|
|
163
|
+
guard let version = _version else {
|
|
164
|
+
return nil
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
let versionString = "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)"
|
|
168
|
+
|
|
169
|
+
return versionString
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
func serializeSourceRevision(_sourceRevision: HKSourceRevision?) -> [String: Any?]? {
|
|
173
|
+
guard let sourceRevision = _sourceRevision else {
|
|
174
|
+
return nil
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
var dict = [
|
|
178
|
+
"source": [
|
|
179
|
+
"name": sourceRevision.source.name,
|
|
180
|
+
"bundleIdentifier": sourceRevision.source.bundleIdentifier
|
|
181
|
+
],
|
|
182
|
+
"version": sourceRevision.version as Any
|
|
183
|
+
] as [String: Any]
|
|
184
|
+
|
|
185
|
+
if #available(iOS 11, *) {
|
|
186
|
+
dict["operatingSystemVersion"] = serializeOperatingSystemVersion(_version: sourceRevision.operatingSystemVersion)
|
|
187
|
+
dict["productType"] = sourceRevision.productType
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return dict
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
func deserializeHKQueryAnchor(anchor: String) -> HKQueryAnchor? {
|
|
194
|
+
return anchor.isEmpty ? nil : base64StringToHKQueryAnchor(base64String: anchor)
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
func serializeAnchor(anchor: HKQueryAnchor?) -> String? {
|
|
198
|
+
guard let anch = anchor else {
|
|
199
|
+
return nil
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
let data = NSKeyedArchiver.archivedData(withRootObject: anch)
|
|
203
|
+
let encoded = data.base64EncodedString()
|
|
204
|
+
|
|
205
|
+
return encoded
|
|
206
|
+
}
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _getRequestStatusForAuthorization = _interopRequireDefault(require("../utils/getRequestStatusForAuthorization"));
|
|
11
|
-
|
|
12
9
|
var _requestAuthorization = _interopRequireDefault(require("../utils/requestAuthorization"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
const useHealthkitAuthorization = (read, write) => {
|
|
17
12
|
const [status, setStatus] = (0, _react.useState)(null);
|
|
18
13
|
const readMemo = (0, _react.useRef)(read);
|
|
@@ -35,7 +30,6 @@ const useHealthkitAuthorization = (read, write) => {
|
|
|
35
30
|
}, [refreshAuthStatus]);
|
|
36
31
|
return [status, request];
|
|
37
32
|
};
|
|
38
|
-
|
|
39
33
|
var _default = useHealthkitAuthorization;
|
|
40
34
|
exports.default = _default;
|
|
41
35
|
//# sourceMappingURL=useHealthkitAuthorization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useHealthkitAuthorization","read","write","status","setStatus","useState","readMemo","useRef","writeMemo","useEffect","current","refreshAuthStatus","useCallback","auth","getRequestStatusForAuthorization","request","requestAuthorization"],"sources":["useHealthkitAuthorization.ts"],"sourcesContent":["import {\n useCallback, useEffect, useRef, useState,\n} from 'react'\n\nimport getRequestStatusForAuthorization from '../utils/getRequestStatusForAuthorization'\nimport requestAuthorization from '../utils/requestAuthorization'\n\nimport type { HealthkitReadAuthorization, HealthkitWriteAuthorization, HKAuthorizationRequestStatus } from '../native-types'\n\nconst useHealthkitAuthorization = (read: readonly HealthkitReadAuthorization[], write?: readonly HealthkitWriteAuthorization[]) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n\n const readMemo = useRef(read)\n const writeMemo = useRef(write)\n\n useEffect(() => {\n readMemo.current = read\n writeMemo.current = write\n }, [read, write])\n\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(readMemo.current, writeMemo.current)\n\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(readMemo.current, writeMemo.current)\n return refreshAuthStatus()\n }, [refreshAuthStatus])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [refreshAuthStatus])\n\n return [status, request] as const\n}\n\nexport default useHealthkitAuthorization\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_getRequestStatusForAuthorization","_interopRequireDefault","_requestAuthorization","obj","__esModule","default","useHealthkitAuthorization","read","write","status","setStatus","useState","readMemo","useRef","writeMemo","useEffect","current","refreshAuthStatus","useCallback","auth","getRequestStatusForAuthorization","request","requestAuthorization","_default","exports"],"sources":["useHealthkitAuthorization.ts"],"sourcesContent":["import {\n useCallback, useEffect, useRef, useState,\n} from 'react'\n\nimport getRequestStatusForAuthorization from '../utils/getRequestStatusForAuthorization'\nimport requestAuthorization from '../utils/requestAuthorization'\n\nimport type { HealthkitReadAuthorization, HealthkitWriteAuthorization, HKAuthorizationRequestStatus } from '../native-types'\n\nconst useHealthkitAuthorization = (read: readonly HealthkitReadAuthorization[], write?: readonly HealthkitWriteAuthorization[]) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n\n const readMemo = useRef(read)\n const writeMemo = useRef(write)\n\n useEffect(() => {\n readMemo.current = read\n writeMemo.current = write\n }, [read, write])\n\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(readMemo.current, writeMemo.current)\n\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(readMemo.current, writeMemo.current)\n return refreshAuthStatus()\n }, [refreshAuthStatus])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [refreshAuthStatus])\n\n return [status, request] as const\n}\n\nexport default useHealthkitAuthorization\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,iCAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAgE,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIhE,MAAMG,yBAAyB,GAAGA,CAACC,IAA2C,EAAEC,KAA8C,KAAK;EACjI,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAsC,IAAI,CAAC;EAE/E,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAACN,IAAI,CAAC;EAC7B,MAAMO,SAAS,GAAG,IAAAD,aAAM,EAACL,KAAK,CAAC;EAE/B,IAAAO,gBAAS,EAAC,MAAM;IACdH,QAAQ,CAACI,OAAO,GAAGT,IAAI;IACvBO,SAAS,CAACE,OAAO,GAAGR,KAAK;EAC3B,CAAC,EAAE,CAACD,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEjB,MAAMS,iBAAiB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAChD,MAAMC,IAAI,GAAG,MAAM,IAAAC,yCAAgC,EAACR,QAAQ,CAACI,OAAO,EAAEF,SAAS,CAACE,OAAO,CAAC;IAExFN,SAAS,CAACS,IAAI,CAAC;IACf,OAAOA,IAAI;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,OAAO,GAAG,IAAAH,kBAAW,EAAC,YAAY;IACtC,MAAM,IAAAI,6BAAoB,EAACV,QAAQ,CAACI,OAAO,EAAEF,SAAS,CAACE,OAAO,CAAC;IAC/D,OAAOC,iBAAiB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,IAAAF,gBAAS,EAAC,MAAM;IACd,KAAKE,iBAAiB,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,OAAO,CAACR,MAAM,EAAEY,OAAO,CAAC;AAC1B,CAAC;AAAA,IAAAE,QAAA,GAEcjB,yBAAyB;AAAAkB,OAAA,CAAAnB,OAAA,GAAAkB,QAAA"}
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _reactNative = require("@testing-library/react-native");
|
|
4
|
-
|
|
4
|
+
var _useHealthkitAuthorization = _interopRequireDefault(require("./useHealthkitAuthorization"));
|
|
5
5
|
var _nativeTypes = _interopRequireWildcard(require("../native-types"));
|
|
6
|
-
|
|
7
6
|
var _testUtils = _interopRequireDefault(require("../test-utils"));
|
|
8
|
-
|
|
9
|
-
var _useHealthkitAuthorization = _interopRequireDefault(require("./useHealthkitAuthorization"));
|
|
10
|
-
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
13
7
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
|
|
15
8
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
10
|
describe('useHealthkitAuthorization', () => {
|
|
18
11
|
test('should return shouldRequest', async () => {
|
|
19
12
|
jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","HKAuthorizationRequestStatus","shouldRequest","result","renderHook","useHealthkitAuthorization","HKCategoryTypeIdentifier","abdominalCramps","waitForNextUpdate","expect","current","toBe","spy","unnecessary","retVal","act"],"sources":["useHealthkitAuthorization.test.ts"],"sourcesContent":["import { renderHook, act } from '@testing-library/react-native'\n\nimport Native, { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier } from '../native-types'\nimport waitForNextUpdate from '../test-utils'\
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_useHealthkitAuthorization","_interopRequireDefault","_nativeTypes","_interopRequireWildcard","_testUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","HKAuthorizationRequestStatus","shouldRequest","result","renderHook","useHealthkitAuthorization","HKCategoryTypeIdentifier","abdominalCramps","waitForNextUpdate","expect","current","toBe","spy","unnecessary","retVal","act"],"sources":["useHealthkitAuthorization.test.ts"],"sourcesContent":["import { renderHook, act } from '@testing-library/react-native'\n\nimport useHealthkitAuthorization from './useHealthkitAuthorization'\nimport Native, { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier } from '../native-types'\nimport waitForNextUpdate from '../test-utils'\n\ndescribe('useHealthkitAuthorization', () => {\n test('should return shouldRequest', async () => {\n jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.shouldRequest))\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n await waitForNextUpdate()\n\n expect(result.current[0]).toBe(HKAuthorizationRequestStatus.shouldRequest)\n })\n\n test('should request permissions', async () => {\n const spy = jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.shouldRequest))\n jest.spyOn(Native, 'requestAuthorization').mockReturnValue(Promise.resolve(true))\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n await waitForNextUpdate()\n\n spy.mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.unnecessary))\n\n let retVal: HKAuthorizationRequestStatus | undefined\n await act(async () => {\n retVal = await result.current[1]()\n })\n\n expect(result.current[0]).toBe(HKAuthorizationRequestStatus.unnecessary)\n expect(retVal).toBe(HKAuthorizationRequestStatus.unnecessary)\n })\n\n test('should return unnecessary', async () => {\n jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.unnecessary))\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n await waitForNextUpdate()\n\n expect(result.current[0]).toBe(HKAuthorizationRequestStatus.unnecessary)\n })\n\n test('should return null before initalizing', async () => {\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n expect(result.current[0]).toBe(null)\n\n await waitForNextUpdate()\n })\n})\n"],"mappings":"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"}
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _nativeTypes = _interopRequireDefault(require("../native-types"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
const useIsHealthDataAvailable = () => {
|
|
15
11
|
const [isAvailable, setIsAvailable] = (0, _react.useState)(null);
|
|
16
12
|
(0, _react.useEffect)(() => {
|
|
@@ -18,12 +14,10 @@ const useIsHealthDataAvailable = () => {
|
|
|
18
14
|
const res = await _nativeTypes.default.isHealthDataAvailable();
|
|
19
15
|
setIsAvailable(res);
|
|
20
16
|
};
|
|
21
|
-
|
|
22
17
|
void init();
|
|
23
18
|
}, []);
|
|
24
19
|
return isAvailable;
|
|
25
20
|
};
|
|
26
|
-
|
|
27
21
|
var _default = useIsHealthDataAvailable;
|
|
28
22
|
exports.default = _default;
|
|
29
23
|
//# sourceMappingURL=useIsHealthDataAvailable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable"],"sources":["useIsHealthDataAvailable.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport Native from '../native-types'\n\nconst useIsHealthDataAvailable = () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_nativeTypes","_interopRequireDefault","obj","__esModule","default","useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable","_default","exports"],"sources":["useIsHealthDataAvailable.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport Native from '../native-types'\n\nconst useIsHealthDataAvailable = () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAiB,IAAI,CAAC;EAEpE,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAM,CAACC,qBAAqB,CAAC,CAAC;MAChDN,cAAc,CAACI,GAAG,CAAC;IACrB,CAAC;IACD,KAAKD,IAAI,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,WAAW;AACpB,CAAC;AAAA,IAAAQ,QAAA,GAEcT,wBAAwB;AAAAU,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _reactNative = require("@testing-library/react-native");
|
|
4
|
-
|
|
4
|
+
var _useIsHealthDataAvailable = _interopRequireDefault(require("./useIsHealthDataAvailable"));
|
|
5
5
|
var _nativeTypes = _interopRequireDefault(require("../native-types"));
|
|
6
|
-
|
|
7
6
|
var _testUtils = _interopRequireDefault(require("../test-utils"));
|
|
8
|
-
|
|
9
|
-
var _useIsHealthDataAvailable = _interopRequireDefault(require("./useIsHealthDataAvailable"));
|
|
10
|
-
|
|
11
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
13
8
|
describe('useIsHealthDataAvailable', () => {
|
|
14
9
|
test('should return false', async () => {
|
|
15
10
|
jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","result","renderHook","useIsHealthDataAvailable","waitForNextUpdate","expect","current","toBe"],"sources":["useIsHealthDataAvailable.test.ts"],"sourcesContent":["import { renderHook } from '@testing-library/react-native'\n\nimport Native from '../native-types'\nimport waitForNextUpdate from '../test-utils'\
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_useIsHealthDataAvailable","_interopRequireDefault","_nativeTypes","_testUtils","obj","__esModule","default","describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","result","renderHook","useIsHealthDataAvailable","waitForNextUpdate","expect","current","toBe"],"sources":["useIsHealthDataAvailable.test.ts"],"sourcesContent":["import { renderHook } from '@testing-library/react-native'\n\nimport useIsHealthDataAvailable from './useIsHealthDataAvailable'\nimport Native from '../native-types'\nimport waitForNextUpdate from '../test-utils'\n\ndescribe('useIsHealthDataAvailable', () => {\n test('should return false', async () => {\n jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false))\n\n const { result } = renderHook(useIsHealthDataAvailable)\n\n await waitForNextUpdate()\n\n expect(result.current).toBe(false)\n })\n\n test('should return true', async () => {\n jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true))\n\n const { result } = renderHook(useIsHealthDataAvailable)\n\n await waitForNextUpdate()\n\n expect(result.current).toBe(true)\n })\n\n test('should return null before initalizing', async () => {\n const { result } = renderHook(useIsHealthDataAvailable)\n\n expect(result.current).toBe(null)\n\n await waitForNextUpdate()\n })\n})\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,yBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,UAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA6C,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE7CG,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzCC,IAAI,CAAC,qBAAqB,EAAE,YAAY;IACtCC,IAAI,CAACC,KAAK,CAACC,oBAAM,EAAE,uBAAuB,CAAC,CAACC,eAAe,CAACC,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEnF,MAAM;MAAEC;IAAO,CAAC,GAAG,IAAAC,uBAAU,EAACC,iCAAwB,CAAC;IAEvD,MAAM,IAAAC,kBAAiB,EAAC,CAAC;IAEzBC,MAAM,CAACJ,MAAM,CAACK,OAAO,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EACpC,CAAC,CAAC;EAEFb,IAAI,CAAC,oBAAoB,EAAE,YAAY;IACrCC,IAAI,CAACC,KAAK,CAACC,oBAAM,EAAE,uBAAuB,CAAC,CAACC,eAAe,CAACC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF,MAAM;MAAEC;IAAO,CAAC,GAAG,IAAAC,uBAAU,EAACC,iCAAwB,CAAC;IAEvD,MAAM,IAAAC,kBAAiB,EAAC,CAAC;IAEzBC,MAAM,CAACJ,MAAM,CAACK,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EACnC,CAAC,CAAC;EAEFb,IAAI,CAAC,uCAAuC,EAAE,YAAY;IACxD,MAAM;MAAEO;IAAO,CAAC,GAAG,IAAAC,uBAAU,EAACC,iCAAwB,CAAC;IAEvDE,MAAM,CAACJ,MAAM,CAACK,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IAEjC,MAAM,IAAAH,kBAAiB,EAAC,CAAC;EAC3B,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _getMostRecentCategorySample = _interopRequireDefault(require("../utils/getMostRecentCategorySample"));
|
|
11
|
-
|
|
12
8
|
var _useSubscribeToChanges = _interopRequireDefault(require("./useSubscribeToChanges"));
|
|
13
|
-
|
|
9
|
+
var _getMostRecentCategorySample = _interopRequireDefault(require("../utils/getMostRecentCategorySample"));
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
function useMostRecentCategorySample(identifier) {
|
|
17
12
|
const [category, setCategory] = (0, _react.useState)(null);
|
|
18
13
|
const updater = (0, _react.useCallback)(() => {
|
|
@@ -21,7 +16,6 @@ function useMostRecentCategorySample(identifier) {
|
|
|
21
16
|
(0, _useSubscribeToChanges.default)(identifier, updater);
|
|
22
17
|
return category;
|
|
23
18
|
}
|
|
24
|
-
|
|
25
19
|
var _default = useMostRecentCategorySample;
|
|
26
20
|
exports.default = _default;
|
|
27
21
|
//# sourceMappingURL=useMostRecentCategorySample.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMostRecentCategorySample","identifier","category","setCategory","useState","updater","useCallback","getMostRecentCategorySample","then","useSubscribeToChanges"],"sources":["useMostRecentCategorySample.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\n\nimport
|
|
1
|
+
{"version":3,"names":["_react","require","_useSubscribeToChanges","_interopRequireDefault","_getMostRecentCategorySample","obj","__esModule","default","useMostRecentCategorySample","identifier","category","setCategory","useState","updater","useCallback","getMostRecentCategorySample","then","useSubscribeToChanges","_default","exports"],"sources":["useMostRecentCategorySample.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\n\nimport useSubscribeToChanges from './useSubscribeToChanges'\nimport getMostRecentCategorySample from '../utils/getMostRecentCategorySample'\n\nimport type { HKCategorySampleRaw, HKCategoryTypeIdentifier } from '../native-types'\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySampleRaw<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\nexport default useMostRecentCategorySample\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA8E,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAI9E,SAASG,2BAA2BA,CAElCC,UAAqB,EAAE;EACvB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EACtC,IACF,CAAC;EACD,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAChC,KAAK,IAAAC,oCAA2B,EAACN,UAAU,CAAC,CAACO,IAAI,CAACL,WAAW,CAAC;EAChE,CAAC,EAAE,CAACF,UAAU,CAAC,CAAC;EAEhB,IAAAQ,8BAAqB,EAACR,UAAU,EAAEI,OAAO,CAAC;EAE1C,OAAOH,QAAQ;AACjB;AAAC,IAAAQ,QAAA,GAEcV,2BAA2B;AAAAW,OAAA,CAAAZ,OAAA,GAAAW,QAAA"}
|
|
@@ -4,22 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _ensureUnit = _interopRequireDefault(require("../utils/ensureUnit"));
|
|
11
|
-
|
|
12
9
|
var _getMostRecentQuantitySample = _interopRequireDefault(require("../utils/getMostRecentQuantitySample"));
|
|
13
|
-
|
|
14
10
|
var _subscribeToChanges = _interopRequireDefault(require("../utils/subscribeToChanges"));
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function useMostRecentQuantitySample(identifier, unit) {
|
|
19
13
|
const [lastSample, setLastSample] = (0, _react.useState)(null);
|
|
20
14
|
(0, _react.useEffect)(() => {
|
|
21
15
|
let cancelSubscription;
|
|
22
|
-
|
|
23
16
|
const init = async () => {
|
|
24
17
|
const actualUnit = await (0, _ensureUnit.default)(identifier, unit);
|
|
25
18
|
cancelSubscription = await (0, _subscribeToChanges.default)(identifier, async () => {
|
|
@@ -27,17 +20,14 @@ function useMostRecentQuantitySample(identifier, unit) {
|
|
|
27
20
|
setLastSample(value);
|
|
28
21
|
});
|
|
29
22
|
};
|
|
30
|
-
|
|
31
23
|
void init();
|
|
32
24
|
return () => {
|
|
33
25
|
var _cancelSubscription;
|
|
34
|
-
|
|
35
26
|
void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
|
|
36
27
|
};
|
|
37
28
|
}, [identifier, unit]);
|
|
38
29
|
return lastSample;
|
|
39
30
|
}
|
|
40
|
-
|
|
41
31
|
var _default = useMostRecentQuantitySample;
|
|
42
32
|
exports.default = _default;
|
|
43
33
|
//# sourceMappingURL=useMostRecentQuantitySample.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMostRecentQuantitySample","identifier","unit","lastSample","setLastSample","useState","useEffect","cancelSubscription","init","actualUnit","ensureUnit","subscribeToChanges","value","getMostRecentQuantitySample"],"sources":["useMostRecentQuantitySample.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport ensureUnit from '../utils/ensureUnit'\nimport getMostRecentQuantitySample from '../utils/getMostRecentQuantitySample'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { HKQuantityTypeIdentifier, UnitForIdentifier } from '../native-types'\
|
|
1
|
+
{"version":3,"names":["_react","require","_ensureUnit","_interopRequireDefault","_getMostRecentQuantitySample","_subscribeToChanges","obj","__esModule","default","useMostRecentQuantitySample","identifier","unit","lastSample","setLastSample","useState","useEffect","cancelSubscription","init","actualUnit","ensureUnit","subscribeToChanges","value","getMostRecentQuantitySample","_cancelSubscription","_default","exports"],"sources":["useMostRecentQuantitySample.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport ensureUnit from '../utils/ensureUnit'\nimport getMostRecentQuantitySample from '../utils/getMostRecentQuantitySample'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { HKQuantitySampleRaw, HKQuantityTypeIdentifier, UnitForIdentifier } from '../native-types'\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends UnitForIdentifier<TIdentifier>\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySampleRaw<\n TIdentifier\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\nexport default useMostRecentQuantitySample\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAI5D,SAASG,2BAA2BA,CAGlCC,UAAuB,EAAEC,IAAY,EAAE;EACvC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAElC,IAAI,CAAC;EAEf,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,UAAU,GAAG,MAAM,IAAAC,mBAAU,EAACT,UAAU,EAAEC,IAAI,CAAC;MAErDK,kBAAkB,GAAG,MAAM,IAAAI,2BAAkB,EAACV,UAAU,EAAE,YAAY;QACpE,MAAMW,KAAK,GAAG,MAAM,IAAAC,oCAA2B,EAACZ,UAAU,EAAEQ,UAAU,CAAC;QACvEL,aAAa,CAACQ,KAAK,CAAC;MACtB,CAAC,CAAC;IACJ,CAAC;IACD,KAAKJ,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAM,mBAAA;MACX,OAAAA,mBAAA,GAAKP,kBAAkB,cAAAO,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACb,UAAU,EAAEC,IAAI,CAAC,CAAC;EAEtB,OAAOC,UAAU;AACnB;AAAC,IAAAY,QAAA,GAEcf,2BAA2B;AAAAgB,OAAA,CAAAjB,OAAA,GAAAgB,QAAA"}
|
|
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _getMostRecentWorkout = _interopRequireDefault(require("../utils/getMostRecentWorkout"));
|
|
11
|
-
|
|
12
9
|
var _getPreferredUnitsTyped = _interopRequireDefault(require("../utils/getPreferredUnitsTyped"));
|
|
13
|
-
|
|
14
10
|
var _subscribeToChanges = _interopRequireDefault(require("../utils/subscribeToChanges"));
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function useMostRecentWorkout(options) {
|
|
19
13
|
const [workout, setWorkout] = (0, _react.useState)(null);
|
|
20
14
|
const optionsRef = (0, _react.useRef)(options);
|
|
@@ -36,21 +30,17 @@ function useMostRecentWorkout(options) {
|
|
|
36
30
|
}, [update]);
|
|
37
31
|
(0, _react.useEffect)(() => {
|
|
38
32
|
let cancelSubscription;
|
|
39
|
-
|
|
40
33
|
const init = async () => {
|
|
41
34
|
cancelSubscription = await (0, _subscribeToChanges.default)('HKWorkoutTypeIdentifier', update);
|
|
42
35
|
};
|
|
43
|
-
|
|
44
36
|
void init();
|
|
45
37
|
return () => {
|
|
46
38
|
var _cancelSubscription;
|
|
47
|
-
|
|
48
39
|
void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
|
|
49
40
|
};
|
|
50
41
|
}, [update]);
|
|
51
42
|
return workout;
|
|
52
43
|
}
|
|
53
|
-
|
|
54
44
|
var _default = useMostRecentWorkout;
|
|
55
45
|
exports.default = _default;
|
|
56
46
|
//# sourceMappingURL=useMostRecentWorkout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMostRecentWorkout","options","workout","setWorkout","useState","optionsRef","useRef","useEffect","current","update","useCallback","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","cancelSubscription","init","subscribeToChanges"],"sources":["useMostRecentWorkout.ts"],"sourcesContent":["import {\n useEffect, useState, useRef, useCallback,\n} from 'react'\n\nimport getMostRecentWorkout from '../utils/getMostRecentWorkout'\nimport getPreferredUnitsTyped from '../utils/getPreferredUnitsTyped'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { EnergyUnit, LengthUnit } from '../native-types'\nimport type { HKWorkout } from '../types'\n\nfunction useMostRecentWorkout<\n TEnergy extends EnergyUnit,\n TDistance extends LengthUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(null)\n\n const optionsRef = useRef(options)\n\n useEffect(() => {\n optionsRef.current = options\n }, [options])\n\n const update = useCallback(async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n optionsRef.current,\n )\n\n setWorkout(await getMostRecentWorkout({\n energyUnit,\n distanceUnit,\n }))\n }, [])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n update,\n )\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [update])\n\n return workout\n}\n\nexport default useMostRecentWorkout\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_getMostRecentWorkout","_interopRequireDefault","_getPreferredUnitsTyped","_subscribeToChanges","obj","__esModule","default","useMostRecentWorkout","options","workout","setWorkout","useState","optionsRef","useRef","useEffect","current","update","useCallback","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","cancelSubscription","init","subscribeToChanges","_cancelSubscription","_default","exports"],"sources":["useMostRecentWorkout.ts"],"sourcesContent":["import {\n useEffect, useState, useRef, useCallback,\n} from 'react'\n\nimport getMostRecentWorkout from '../utils/getMostRecentWorkout'\nimport getPreferredUnitsTyped from '../utils/getPreferredUnitsTyped'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { EnergyUnit, LengthUnit } from '../native-types'\nimport type { HKWorkout } from '../types'\n\nfunction useMostRecentWorkout<\n TEnergy extends EnergyUnit,\n TDistance extends LengthUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(null)\n\n const optionsRef = useRef(options)\n\n useEffect(() => {\n optionsRef.current = options\n }, [options])\n\n const update = useCallback(async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n optionsRef.current,\n )\n\n setWorkout(await getMostRecentWorkout({\n energyUnit,\n distanceUnit,\n }))\n }, [])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n update,\n )\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [update])\n\n return workout\n}\n\nexport default useMostRecentWorkout\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK5D,SAASG,oBAAoBA,CAG3BC,OAA8E,EAAE;EAChF,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAuC,IAAI,CAAC;EAElF,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACL,OAAO,CAAC;EAElC,IAAAM,gBAAS,EAAC,MAAM;IACdF,UAAU,CAACG,OAAO,GAAGP,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMQ,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAM;MAAEC,UAAU;MAAEC;IAAa,CAAC,GAAG,MAAM,IAAAC,+BAAsB,EAC/DR,UAAU,CAACG,OACb,CAAC;IAEDL,UAAU,CAAC,MAAM,IAAAW,6BAAoB,EAAC;MACpCH,UAAU;MACVC;IACF,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAL,gBAAS,EAAC,MAAM;IACd,KAAKE,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAF,gBAAS,EAAC,MAAM;IACd,IAAIQ,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAkB,EAC3C,yBAAyB,EACzBR,MACF,CAAC;IACH,CAAC;IACD,KAAKO,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAE,mBAAA;MACX,OAAAA,mBAAA,GAAKH,kBAAkB,cAAAG,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACT,MAAM,CAAC,CAAC;EAEZ,OAAOP,OAAO;AAChB;AAAC,IAAAiB,QAAA,GAEcnB,oBAAoB;AAAAoB,OAAA,CAAArB,OAAA,GAAAoB,QAAA"}
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _querySources = _interopRequireDefault(require("../utils/querySources"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
function useSources(identifier) {
|
|
15
11
|
const [result, setResult] = (0, _react.useState)(null);
|
|
16
12
|
const update = (0, _react.useCallback)(async () => {
|
|
@@ -22,7 +18,6 @@ function useSources(identifier) {
|
|
|
22
18
|
}, [update]);
|
|
23
19
|
return result;
|
|
24
20
|
}
|
|
25
|
-
|
|
26
21
|
var _default = useSources;
|
|
27
22
|
exports.default = _default;
|
|
28
23
|
//# sourceMappingURL=useSources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSources","identifier","result","setResult","useState","update","useCallback","res","querySources","useEffect"],"sources":["useSources.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport querySources from '../utils/querySources'\n\nimport type {\n HKCategoryTypeIdentifier,\n HKQuantityTypeIdentifier,\n HKSource,\n} from '../native-types'\n\nfunction useSources<\n TIdentifier extends HKCategoryTypeIdentifier | HKQuantityTypeIdentifier\n>(identifier: TIdentifier) {\n const [result, setResult] = useState<readonly HKSource[] | null>(null)\n\n const update = useCallback(async () => {\n const res = await querySources(identifier)\n setResult(res)\n }, [identifier])\n\n useEffect(() => {\n void update()\n }, [update])\n\n return result\n}\n\nexport default useSources\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_querySources","_interopRequireDefault","obj","__esModule","default","useSources","identifier","result","setResult","useState","update","useCallback","res","querySources","useEffect","_default","exports"],"sources":["useSources.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport querySources from '../utils/querySources'\n\nimport type {\n HKCategoryTypeIdentifier,\n HKQuantityTypeIdentifier,\n HKSource,\n} from '../native-types'\n\nfunction useSources<\n TIdentifier extends HKCategoryTypeIdentifier | HKQuantityTypeIdentifier\n>(identifier: TIdentifier) {\n const [result, setResult] = useState<readonly HKSource[] | null>(null)\n\n const update = useCallback(async () => {\n const res = await querySources(identifier)\n setResult(res)\n }, [identifier])\n\n useEffect(() => {\n void update()\n }, [update])\n\n return result\n}\n\nexport default useSources\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgD,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQhD,SAASG,UAAUA,CAEjBC,UAAuB,EAAE;EACzB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAA6B,IAAI,CAAC;EAEtE,MAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAMC,GAAG,GAAG,MAAM,IAAAC,qBAAY,EAACP,UAAU,CAAC;IAC1CE,SAAS,CAACI,GAAG,CAAC;EAChB,CAAC,EAAE,CAACN,UAAU,CAAC,CAAC;EAEhB,IAAAQ,gBAAS,EAAC,MAAM;IACd,KAAKJ,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,OAAOH,MAAM;AACf;AAAC,IAAAQ,QAAA,GAEcV,UAAU;AAAAW,OAAA,CAAAZ,OAAA,GAAAW,QAAA"}
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
|
-
var _queryStatisticsForQuantity = _interopRequireDefault(require("../utils/queryStatisticsForQuantity"));
|
|
11
|
-
|
|
12
8
|
var _useSubscribeToChanges = _interopRequireDefault(require("./useSubscribeToChanges"));
|
|
13
|
-
|
|
9
|
+
var _queryStatisticsForQuantity = _interopRequireDefault(require("../utils/queryStatisticsForQuantity"));
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
function useStatisticsForQuantity(identifier, options, from, to, unit) {
|
|
17
12
|
const [result, setResult] = (0, _react.useState)(null);
|
|
18
13
|
const optionsRef = (0, _react.useRef)(options);
|
|
@@ -29,7 +24,6 @@ function useStatisticsForQuantity(identifier, options, from, to, unit) {
|
|
|
29
24
|
(0, _useSubscribeToChanges.default)(identifier, update);
|
|
30
25
|
return result;
|
|
31
26
|
}
|
|
32
|
-
|
|
33
27
|
var _default = useStatisticsForQuantity;
|
|
34
28
|
exports.default = _default;
|
|
35
29
|
//# sourceMappingURL=useStatisticsForQuantity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useStatisticsForQuantity","identifier","options","from","to","unit","result","setResult","useState","optionsRef","useRef","useEffect","current","update","useCallback","res","queryStatisticsForQuantity","useSubscribeToChanges"],"sources":["useStatisticsForQuantity.ts"],"sourcesContent":["import {\n useState, useEffect, useCallback, useRef,\n} from 'react'\n\nimport
|
|
1
|
+
{"version":3,"names":["_react","require","_useSubscribeToChanges","_interopRequireDefault","_queryStatisticsForQuantity","obj","__esModule","default","useStatisticsForQuantity","identifier","options","from","to","unit","result","setResult","useState","optionsRef","useRef","useEffect","current","update","useCallback","res","queryStatisticsForQuantity","useSubscribeToChanges","_default","exports"],"sources":["useStatisticsForQuantity.ts"],"sourcesContent":["import {\n useState, useEffect, useCallback, useRef,\n} from 'react'\n\nimport useSubscribeToChanges from './useSubscribeToChanges'\nimport queryStatisticsForQuantity from '../utils/queryStatisticsForQuantity'\n\nimport type { HKQuantityTypeIdentifier, HKStatisticsOptions, UnitForIdentifier } from '../native-types'\nimport type { QueryStatisticsResponse } from '../types'\n\nfunction useStatisticsForQuantity<TIdentifier extends HKQuantityTypeIdentifier, TUnit extends UnitForIdentifier<TIdentifier> = UnitForIdentifier<TIdentifier>>(\n identifier: TIdentifier,\n options: readonly HKStatisticsOptions[],\n from: Date,\n to?: Date,\n unit?: TUnit,\n) {\n const [result, setResult] = useState<QueryStatisticsResponse<TIdentifier, TUnit> | null>(null)\n\n const optionsRef = useRef(options)\n\n useEffect(() => {\n optionsRef.current = options\n }, [options])\n\n const update = useCallback(async () => {\n const res = await queryStatisticsForQuantity(identifier, optionsRef.current, from, to, unit)\n setResult(res)\n }, [\n identifier, from, to, unit,\n ])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useSubscribeToChanges(identifier, update)\n\n return result\n}\n\nexport default useStatisticsForQuantity\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA4E,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK5E,SAASG,wBAAwBA,CAC/BC,UAAuB,EACvBC,OAAuC,EACvCC,IAAU,EACVC,EAAS,EACTC,IAAY,EACZ;EACA,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAqD,IAAI,CAAC;EAE9F,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACR,OAAO,CAAC;EAElC,IAAAS,gBAAS,EAAC,MAAM;IACdF,UAAU,CAACG,OAAO,GAAGV,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMW,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAMC,GAAG,GAAG,MAAM,IAAAC,mCAA0B,EAACf,UAAU,EAAEQ,UAAU,CAACG,OAAO,EAAET,IAAI,EAAEC,EAAE,EAAEC,IAAI,CAAC;IAC5FE,SAAS,CAACQ,GAAG,CAAC;EAChB,CAAC,EAAE,CACDd,UAAU,EAAEE,IAAI,EAAEC,EAAE,EAAEC,IAAI,CAC3B,CAAC;EAEF,IAAAM,gBAAS,EAAC,MAAM;IACd,KAAKE,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAI,8BAAqB,EAAChB,UAAU,EAAEY,MAAM,CAAC;EAEzC,OAAOP,MAAM;AACf;AAAC,IAAAY,QAAA,GAEclB,wBAAwB;AAAAmB,OAAA,CAAApB,OAAA,GAAAmB,QAAA"}
|