@gromozeqa/react-native-apple-health-kit 0.3.0 → 0.5.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.
Files changed (31) hide show
  1. package/README.md +105 -15
  2. package/android/generated/java/com/gromozeqa/reactnativeapplehealthkit/NativeReactNativeAppleHealthKitSpec.java +4 -0
  3. package/android/generated/jni/RNReactNativeAppleHealthKitSpec-generated.cpp +6 -0
  4. package/android/generated/jni/react/renderer/components/RNReactNativeAppleHealthKitSpec/RNReactNativeAppleHealthKitSpecJSI-generated.cpp +6 -0
  5. package/android/generated/jni/react/renderer/components/RNReactNativeAppleHealthKitSpec/RNReactNativeAppleHealthKitSpecJSI.h +9 -0
  6. package/ios/HealthKitManager.swift +46 -42
  7. package/ios/HealthKitPermissions.swift +9 -0
  8. package/ios/ReactNativeAppleHealthKit.mm +17 -12
  9. package/ios/generated/RNReactNativeAppleHealthKitSpec/RNReactNativeAppleHealthKitSpec-generated.mm +7 -0
  10. package/ios/generated/RNReactNativeAppleHealthKitSpec/RNReactNativeAppleHealthKitSpec.h +2 -0
  11. package/ios/generated/RNReactNativeAppleHealthKitSpecJSI-generated.cpp +6 -0
  12. package/ios/generated/RNReactNativeAppleHealthKitSpecJSI.h +9 -0
  13. package/lib/commonjs/NativeReactNativeAppleHealthKit.js +3 -0
  14. package/lib/commonjs/NativeReactNativeAppleHealthKit.js.map +1 -1
  15. package/lib/commonjs/index.js +4 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/module/NativeReactNativeAppleHealthKit.js +3 -0
  18. package/lib/module/NativeReactNativeAppleHealthKit.js.map +1 -1
  19. package/lib/module/index.js +3 -0
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/typescript/commonjs/src/NativeReactNativeAppleHealthKit.d.ts +1 -0
  22. package/lib/typescript/commonjs/src/NativeReactNativeAppleHealthKit.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  24. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  25. package/lib/typescript/module/src/NativeReactNativeAppleHealthKit.d.ts +1 -0
  26. package/lib/typescript/module/src/NativeReactNativeAppleHealthKit.d.ts.map +1 -1
  27. package/lib/typescript/module/src/index.d.ts +1 -0
  28. package/lib/typescript/module/src/index.d.ts.map +1 -1
  29. package/package.json +2 -1
  30. package/src/NativeReactNativeAppleHealthKit.ts +4 -0
  31. package/src/index.tsx +4 -0
package/README.md CHANGED
@@ -1,33 +1,123 @@
1
- # @gromozeqa/react-native-apple-health-kit
1
+ # 📅 React Native Apple HealthKit
2
2
 
3
- IOS module for react native to enable health kit
3
+ 🔹 **React Native Apple HealthKit** A React Native package to interact with Apple HealthKit for iOS.
4
+ This package allows access to health & fitness data exposed by Apple Healthkit.
4
5
 
5
- ## Installation
6
+ ---
7
+
8
+ ## 🚀 Features
9
+
10
+ - **📆 Check Availability**: Check whether HealthKit is available on current device.
11
+ - **🔒 Secure Access**: Requires user permission for accessing HealthKit data.
12
+ - **📸 Snapshot for N days**: Returns a snapshot for past N days of user's: steps count & heart rate;
13
+
14
+ ---
6
15
 
7
- ```sh
16
+ ## 🛠️ Prerequisites
17
+
18
+ Before getting started, ensure you have:
19
+
20
+ - React Native version `0.75+`
21
+ - **iOS 13++** (Native API support)
22
+ - new architecture support
23
+
24
+ ---
25
+
26
+ ## 📦 Installation
27
+
28
+ Run the following command to install the package:
29
+
30
+ ```bash
8
31
  npm install @gromozeqa/react-native-apple-health-kit
32
+
33
+ yarn add @gromozeqa/react-native-apple-health-kit
34
+
35
+ cd ios && pod install
9
36
  ```
10
37
 
11
- ## Usage
38
+ Edit **`Info.plist`**. Add the following item (Set **Value** as desired):
12
39
 
40
+ | Key | Type | Value |
41
+ | --------------------------------------- | -------- | ---------------------------------------------------------------------------------- |
42
+ | _Privacy - NSHealthShareUsageDescription_ | `String` | _CHANGEME: This app requires read access to your Health data._ |
13
43
 
14
- ```js
15
- import { multiply } from '@gromozeqa/react-native-apple-health-kit';
16
44
 
17
- // ...
45
+ ### To add Healthkit support to your application's Capabilities ###
18
46
 
19
- const result = multiply(3, 7);
20
- ```
47
+ Open the ios/ folder of your project in Xcode
48
+ Select the project name in the left sidebar
49
+ In the main view select '+ Capability' and double click 'HealthKit'
21
50
 
51
+ 📌 Example Usage
22
52
 
23
- ## Contributing
53
+ Request Permissions
24
54
 
25
- See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
55
+ To check the current status of calendar permissions, use:
26
56
 
27
- ## License
57
+ ```ts
58
+ import { requestHealthKitPermissions } from '@gromozeqa/react-native-apple-health-kit';
59
+
60
+ const requestPermissions = async () => {
61
+ const status = await requestHealthKitPermissions();
62
+ console.log(status);
63
+ };
64
+ ```
28
65
 
29
- MIT
66
+ ### 📆 Methods
67
+
68
+ Below are the methods available in **React Native Apple HealthKit**
30
69
 
31
70
  ---
32
71
 
33
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
72
+ ### Get steps count for past N days
73
+
74
+
75
+ 📌 **Get steps count for past N days**
76
+
77
+ ```ts
78
+ import { getSteps } from '@gromozeqa/react-native-apple-health-kit';
79
+
80
+ const getStepsCount = async () => {
81
+ try {
82
+ const steps = await getSteps(30);
83
+ console.log(steps);
84
+ } catch (error) {
85
+ console.log(error);
86
+ }
87
+ };
88
+ ```
89
+
90
+ 📌 **Get heart rate for past N days**
91
+
92
+ ```ts
93
+ import { getHeartRate } from '@gromozeqa/react-native-apple-health-kit';
94
+
95
+ const getUsersHeartRate = async () => {
96
+ try {
97
+ const steps = await getHeartRate(30);
98
+ console.log(steps);
99
+ } catch (error) {
100
+ console.log(error);
101
+ }
102
+ };
103
+ ```
104
+
105
+ 📌 **Get user's body measurement**
106
+
107
+ ```ts
108
+ import { getMeasurement } from '@gromozeqa/react-native-apple-health-kit';
109
+
110
+ const getUserMeasurement = async () => {
111
+ try {
112
+ const steps = await getMeasurement();
113
+ console.log(steps);
114
+ } catch (error) {
115
+ console.log(error);
116
+ }
117
+ };
118
+ ```
119
+
120
+ ### ⚠️Permissions ###
121
+ Due to Apple's privacy model, if a user has previously denied a specific permission they will not be prompted again for that permission. The user will need to go into the Apple Health app and grant the permission to your app.
122
+
123
+ If read permissions are not granted for the requested data, the method will return an empty array.
@@ -47,4 +47,8 @@ public abstract class NativeReactNativeAppleHealthKitSpec extends ReactContextBa
47
47
  @ReactMethod
48
48
  @DoNotStrip
49
49
  public abstract void getMeasurement(Promise promise);
50
+
51
+ @ReactMethod
52
+ @DoNotStrip
53
+ public abstract void checkAvailability(Promise promise);
50
54
  }
@@ -32,12 +32,18 @@ static facebook::jsi::Value __hostFunction_NativeReactNativeAppleHealthKitSpecJS
32
32
  return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getMeasurement", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
33
33
  }
34
34
 
35
+ static facebook::jsi::Value __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_checkAvailability(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
36
+ static jmethodID cachedMethodId = nullptr;
37
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "checkAvailability", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
38
+ }
39
+
35
40
  NativeReactNativeAppleHealthKitSpecJSI::NativeReactNativeAppleHealthKitSpecJSI(const JavaTurboModule::InitParams &params)
36
41
  : JavaTurboModule(params) {
37
42
  methodMap_["requestHealthKitPermissions"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_requestHealthKitPermissions};
38
43
  methodMap_["getSteps"] = MethodMetadata {1, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_getSteps};
39
44
  methodMap_["getHeartRate"] = MethodMetadata {1, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_getHeartRate};
40
45
  methodMap_["getMeasurement"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_getMeasurement};
46
+ methodMap_["checkAvailability"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_checkAvailability};
41
47
  }
42
48
 
43
49
  std::shared_ptr<TurboModule> RNReactNativeAppleHealthKitSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
@@ -33,6 +33,11 @@ static jsi::Value __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getMe
33
33
  rt
34
34
  );
35
35
  }
36
+ static jsi::Value __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_checkAvailability(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
37
+ return static_cast<NativeReactNativeAppleHealthKitCxxSpecJSI *>(&turboModule)->checkAvailability(
38
+ rt
39
+ );
40
+ }
36
41
 
37
42
  NativeReactNativeAppleHealthKitCxxSpecJSI::NativeReactNativeAppleHealthKitCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
38
43
  : TurboModule("ReactNativeAppleHealthKit", jsInvoker) {
@@ -40,6 +45,7 @@ NativeReactNativeAppleHealthKitCxxSpecJSI::NativeReactNativeAppleHealthKitCxxSpe
40
45
  methodMap_["getSteps"] = MethodMetadata {1, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getSteps};
41
46
  methodMap_["getHeartRate"] = MethodMetadata {1, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getHeartRate};
42
47
  methodMap_["getMeasurement"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getMeasurement};
48
+ methodMap_["checkAvailability"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_checkAvailability};
43
49
  }
44
50
 
45
51
 
@@ -229,6 +229,7 @@ public:
229
229
  virtual jsi::Value getSteps(jsi::Runtime &rt, double daysBefore) = 0;
230
230
  virtual jsi::Value getHeartRate(jsi::Runtime &rt, double daysBefore) = 0;
231
231
  virtual jsi::Value getMeasurement(jsi::Runtime &rt) = 0;
232
+ virtual jsi::Value checkAvailability(jsi::Runtime &rt) = 0;
232
233
 
233
234
  };
234
235
 
@@ -287,6 +288,14 @@ private:
287
288
  return bridging::callFromJs<jsi::Value>(
288
289
  rt, &T::getMeasurement, jsInvoker_, instance_);
289
290
  }
291
+ jsi::Value checkAvailability(jsi::Runtime &rt) override {
292
+ static_assert(
293
+ bridging::getParameterCount(&T::checkAvailability) == 1,
294
+ "Expected checkAvailability(...) to have 1 parameters");
295
+
296
+ return bridging::callFromJs<jsi::Value>(
297
+ rt, &T::checkAvailability, jsInvoker_, instance_);
298
+ }
290
299
 
291
300
  private:
292
301
  friend class NativeReactNativeAppleHealthKitCxxSpec;
@@ -10,46 +10,50 @@ import HealthKit
10
10
 
11
11
  @objc public class HealthKitManager: NSObject {
12
12
 
13
- private let healthStore = HKHealthStore()
14
- private let permissions = HealthKitPermissions()
15
- private let queries = HealthKitQueries()
16
-
17
- @objc public func requestHealthKitPermissions(completion: @escaping (Bool, Error?) -> Void) {
18
- permissions.requestPermissions(completion: completion)
19
- }
20
-
21
- @objc public func getSteps(daysBefore: NSNumber, completion: @escaping (NSArray?, Error?) -> Void) {
22
- queries.getStepsQuery(daysBefore: daysBefore.intValue) { result, error in
23
- if let error = error {
24
- completion(nil, error)
25
- return
26
- }
27
-
28
- guard let stepsData = result else {
29
- completion(nil, NSError(domain: "HealthKit", code: -2, userInfo: [NSLocalizedDescriptionKey: "Invalid steps data"]))
30
- return
31
- }
32
- completion(stepsData as NSArray, nil)
33
- }
34
- }
35
-
36
- @objc public func getHeartRate(daysBefore: NSNumber, completion: @escaping (NSArray?, Error?) -> Void) {
37
- queries.getHeartRateQuery(daysBefore: daysBefore.intValue) { result, error in
38
- if let error = error {
39
- completion(nil, error)
40
- return
41
- }
42
-
43
- guard let heartRateData = result else {
44
- completion(nil, NSError(domain: "HealthKit", code: -2, userInfo: [NSLocalizedDescriptionKey: "Invalid heart rate data"]))
45
- return
46
- }
47
- completion(heartRateData as NSArray, nil)
48
- }
49
- }
50
-
51
-
52
- @objc public func getMeasurements(completion: @escaping ([String: AnyObject]?) -> Void) {
53
- queries.getMeasurementsQuery(completion: completion)
54
- }
13
+ private let healthStore = HKHealthStore()
14
+ private let permissions = HealthKitPermissions()
15
+ private let queries = HealthKitQueries()
16
+
17
+ @objc public func requestHealthKitPermissions(completion: @escaping (Bool, Error?) -> Void) {
18
+ permissions.requestPermissions(completion: completion)
19
+ }
20
+
21
+ @objc public func getSteps(daysBefore: NSNumber, completion: @escaping (NSArray?, Error?) -> Void) {
22
+ queries.getStepsQuery(daysBefore: daysBefore.intValue) { result, error in
23
+ if let error = error {
24
+ completion(nil, error)
25
+ return
26
+ }
27
+
28
+ guard let stepsData = result else {
29
+ completion(nil, NSError(domain: "HealthKit", code: -2, userInfo: [NSLocalizedDescriptionKey: "Invalid steps data"]))
30
+ return
31
+ }
32
+ completion(stepsData as NSArray, nil)
33
+ }
34
+ }
35
+
36
+ @objc public func getHeartRate(daysBefore: NSNumber, completion: @escaping (NSArray?, Error?) -> Void) {
37
+ queries.getHeartRateQuery(daysBefore: daysBefore.intValue) { result, error in
38
+ if let error = error {
39
+ completion(nil, error)
40
+ return
41
+ }
42
+
43
+ guard let heartRateData = result else {
44
+ completion(nil, NSError(domain: "HealthKit", code: -2, userInfo: [NSLocalizedDescriptionKey: "Invalid heart rate data"]))
45
+ return
46
+ }
47
+ completion(heartRateData as NSArray, nil)
48
+ }
49
+ }
50
+
51
+
52
+ @objc public func getMeasurements(completion: @escaping ([String: AnyObject]?) -> Void) {
53
+ queries.getMeasurementsQuery(completion: completion)
54
+ }
55
+
56
+ @objc public func checkAvailability(completion: @escaping (Bool) -> Void) {
57
+ permissions.checkAvailability(completion: completion)
58
+ }
55
59
  }
@@ -30,4 +30,13 @@ class HealthKitPermissions {
30
30
 
31
31
  healthStore.requestAuthorization(toShare: [], read: allTypes, completion: completion)
32
32
  }
33
+
34
+ func checkAvailability(completion: @escaping (Bool) -> Void) {
35
+ if HKHealthStore.isHealthDataAvailable() {
36
+ completion(true)
37
+ } else {
38
+ let error = NSError(domain: "HealthKit", code: -1, userInfo: [NSLocalizedDescriptionKey: "HealthKit is not available on this device."])
39
+ completion(false)
40
+ }
41
+ }
33
42
  }
@@ -41,21 +41,26 @@ RCT_EXPORT_METHOD(getSteps:(double)daysBefore resolve:(RCTPromiseResolveBlock)re
41
41
  }];
42
42
  }
43
43
 
44
- - (void)getHeartRate:(double)daysBefore resolve:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
45
- [moduleImpl getHeartRateWithDaysBefore:@(daysBefore) completion:^(NSArray * _Nullable steps, NSError * _Nullable error) {
46
- if (error) {
47
- reject(@"heart_rate_error", error.localizedDescription, error);
48
- } else {
49
- resolve(steps);
50
- }
51
- }];
44
+ RCT_EXPORT_METHOD(getHeartRate:(double)daysBefore resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
45
+ [moduleImpl getHeartRateWithDaysBefore:@(daysBefore) completion:^(NSArray * _Nullable steps, NSError * _Nullable error) {
46
+ if (error) {
47
+ reject(@"heart_rate_error", error.localizedDescription, error);
48
+ } else {
49
+ resolve(steps);
50
+ }
51
+ }];
52
52
  }
53
53
 
54
+ RCT_EXPORT_METHOD(getMeasurement:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
55
+ [moduleImpl getMeasurementsWithCompletion:^(NSDictionary<NSString *, id> * _Nullable data) {
56
+ resolve(data);
57
+ }];
58
+ }
54
59
 
55
- - (void)getMeasurement:(nonnull RCTPromiseResolveBlock)resolve reject:(nonnull RCTPromiseRejectBlock)reject {
56
- [moduleImpl getMeasurementsWithCompletion:^(NSDictionary<NSString *, id> * _Nullable data) {
57
- resolve(data);
58
- }];
60
+ RCT_EXPORT_METHOD(checkAvailability:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
61
+ [moduleImpl checkAvailabilityWithCompletion:^(BOOL result) {
62
+ resolve(@(result));
63
+ }];
59
64
  }
60
65
 
61
66
  @end
@@ -32,6 +32,10 @@ namespace facebook::react {
32
32
  return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "getMeasurement", @selector(getMeasurement:reject:), args, count);
33
33
  }
34
34
 
35
+ static facebook::jsi::Value __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_checkAvailability(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
36
+ return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, PromiseKind, "checkAvailability", @selector(checkAvailability:reject:), args, count);
37
+ }
38
+
35
39
  NativeReactNativeAppleHealthKitSpecJSI::NativeReactNativeAppleHealthKitSpecJSI(const ObjCTurboModule::InitParams &params)
36
40
  : ObjCTurboModule(params) {
37
41
 
@@ -46,5 +50,8 @@ namespace facebook::react {
46
50
 
47
51
  methodMap_["getMeasurement"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_getMeasurement};
48
52
 
53
+
54
+ methodMap_["checkAvailability"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitSpecJSI_checkAvailability};
55
+
49
56
  }
50
57
  } // namespace facebook::react
@@ -43,6 +43,8 @@
43
43
  reject:(RCTPromiseRejectBlock)reject;
44
44
  - (void)getMeasurement:(RCTPromiseResolveBlock)resolve
45
45
  reject:(RCTPromiseRejectBlock)reject;
46
+ - (void)checkAvailability:(RCTPromiseResolveBlock)resolve
47
+ reject:(RCTPromiseRejectBlock)reject;
46
48
 
47
49
  @end
48
50
  namespace facebook::react {
@@ -33,6 +33,11 @@ static jsi::Value __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getMe
33
33
  rt
34
34
  );
35
35
  }
36
+ static jsi::Value __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_checkAvailability(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
37
+ return static_cast<NativeReactNativeAppleHealthKitCxxSpecJSI *>(&turboModule)->checkAvailability(
38
+ rt
39
+ );
40
+ }
36
41
 
37
42
  NativeReactNativeAppleHealthKitCxxSpecJSI::NativeReactNativeAppleHealthKitCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
38
43
  : TurboModule("ReactNativeAppleHealthKit", jsInvoker) {
@@ -40,6 +45,7 @@ NativeReactNativeAppleHealthKitCxxSpecJSI::NativeReactNativeAppleHealthKitCxxSpe
40
45
  methodMap_["getSteps"] = MethodMetadata {1, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getSteps};
41
46
  methodMap_["getHeartRate"] = MethodMetadata {1, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getHeartRate};
42
47
  methodMap_["getMeasurement"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_getMeasurement};
48
+ methodMap_["checkAvailability"] = MethodMetadata {0, __hostFunction_NativeReactNativeAppleHealthKitCxxSpecJSI_checkAvailability};
43
49
  }
44
50
 
45
51
 
@@ -229,6 +229,7 @@ public:
229
229
  virtual jsi::Value getSteps(jsi::Runtime &rt, double daysBefore) = 0;
230
230
  virtual jsi::Value getHeartRate(jsi::Runtime &rt, double daysBefore) = 0;
231
231
  virtual jsi::Value getMeasurement(jsi::Runtime &rt) = 0;
232
+ virtual jsi::Value checkAvailability(jsi::Runtime &rt) = 0;
232
233
 
233
234
  };
234
235
 
@@ -287,6 +288,14 @@ private:
287
288
  return bridging::callFromJs<jsi::Value>(
288
289
  rt, &T::getMeasurement, jsInvoker_, instance_);
289
290
  }
291
+ jsi::Value checkAvailability(jsi::Runtime &rt) override {
292
+ static_assert(
293
+ bridging::getParameterCount(&T::checkAvailability) == 1,
294
+ "Expected checkAvailability(...) to have 1 parameters");
295
+
296
+ return bridging::callFromJs<jsi::Value>(
297
+ rt, &T::checkAvailability, jsInvoker_, instance_);
298
+ }
290
299
 
291
300
  private:
292
301
  friend class NativeReactNativeAppleHealthKitCxxSpec;
@@ -17,6 +17,9 @@ const NoOpSpec = {
17
17
  },
18
18
  getMeasurement() {
19
19
  return Promise.reject(new Error('HealthKit is not available on Android.'));
20
+ },
21
+ checkAvailability() {
22
+ return Promise.reject(new Error('HealthKit is not available on Android.'));
20
23
  }
21
24
  };
22
25
  var _default = exports.default = _reactNative.Platform.OS === 'android' ? NoOpSpec : _reactNative.TurboModuleRegistry.getEnforcing('ReactNativeAppleHealthKit');
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","NoOpSpec","requestHealthKitPermissions","Promise","reject","Error","getSteps","getHeartRate","getMeasurement","_default","exports","default","Platform","OS","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeReactNativeAppleHealthKit.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AA+BA,MAAMC,QAAc,GAAG;EACrBC,2BAA2BA,CAAA,EAAoB;IAC7C,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDC,QAAQA,CAAA,EAAoB;IAC1B,OAAOH,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDE,YAAYA,CAAA,EAAyB;IACnC,OAAOJ,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDG,cAAcA,CAAA,EAAyB;IACrC,OAAOL,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E;AACF,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACpCZ,QAAQ,GACRa,gCAAmB,CAACC,YAAY,CAAO,2BAA2B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","NoOpSpec","requestHealthKitPermissions","Promise","reject","Error","getSteps","getHeartRate","getMeasurement","checkAvailability","_default","exports","default","Platform","OS","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeReactNativeAppleHealthKit.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAgCA,MAAMC,QAAc,GAAG;EACrBC,2BAA2BA,CAAA,EAAoB;IAC7C,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDC,QAAQA,CAAA,EAAoB;IAC1B,OAAOH,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDE,YAAYA,CAAA,EAAyB;IACnC,OAAOJ,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDG,cAAcA,CAAA,EAAyB;IACrC,OAAOL,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDI,iBAAiBA,CAAA,EAAqB;IACpC,OAAON,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E;AACF,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACpCb,QAAQ,GACRc,gCAAmB,CAACC,YAAY,CAAO,2BAA2B,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.checkAvailability = checkAvailability;
6
7
  exports.getHeartRate = getHeartRate;
7
8
  exports.getMeasurement = getMeasurement;
8
9
  exports.getSteps = getSteps;
@@ -21,4 +22,7 @@ async function getSteps(forNumberOfDay) {
21
22
  async function getHeartRate(forNumberOfDay) {
22
23
  return await _NativeReactNativeAppleHealthKit.default.getHeartRate(forNumberOfDay);
23
24
  }
25
+ async function checkAvailability() {
26
+ return await _NativeReactNativeAppleHealthKit.default.checkAvailability();
27
+ }
24
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_NativeReactNativeAppleHealthKit","_interopRequireDefault","require","e","__esModule","default","requestHealthKitPermissions","ReactNativeAppleHealthKit","getMeasurement","getSteps","forNumberOfDay","getHeartRate"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;AAAA,IAAAA,gCAAA,GAAAC,sBAAA,CAAAC,OAAA;AAI2C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC,eAAeG,2BAA2BA,CAAA,EAAoB;EACnE,OAAO,MAAMC,wCAAyB,CAACD,2BAA2B,CAAC,CAAC;AACtE;AAEO,eAAeE,cAAcA,CAAA,EAAyB;EAC3D,OAAO,MAAMD,wCAAyB,CAACC,cAAc,CAAC,CAAC;AACzD;AAEO,eAAeC,QAAQA,CAACC,cAAsB,EAAmB;EACtE,OAAO,MAAMH,wCAAyB,CAACE,QAAQ,CAACC,cAAc,CAAC;AACjE;AAEO,eAAeC,YAAYA,CAChCD,cAAsB,EACA;EACtB,OAAO,MAAMH,wCAAyB,CAACI,YAAY,CAACD,cAAc,CAAC;AACrE","ignoreList":[]}
1
+ {"version":3,"names":["_NativeReactNativeAppleHealthKit","_interopRequireDefault","require","e","__esModule","default","requestHealthKitPermissions","ReactNativeAppleHealthKit","getMeasurement","getSteps","forNumberOfDay","getHeartRate","checkAvailability"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;AAAA,IAAAA,gCAAA,GAAAC,sBAAA,CAAAC,OAAA;AAI2C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC,eAAeG,2BAA2BA,CAAA,EAAoB;EACnE,OAAO,MAAMC,wCAAyB,CAACD,2BAA2B,CAAC,CAAC;AACtE;AAEO,eAAeE,cAAcA,CAAA,EAAyB;EAC3D,OAAO,MAAMD,wCAAyB,CAACC,cAAc,CAAC,CAAC;AACzD;AAEO,eAAeC,QAAQA,CAACC,cAAsB,EAAmB;EACtE,OAAO,MAAMH,wCAAyB,CAACE,QAAQ,CAACC,cAAc,CAAC;AACjE;AAEO,eAAeC,YAAYA,CAChCD,cAAsB,EACA;EACtB,OAAO,MAAMH,wCAAyB,CAACI,YAAY,CAACD,cAAc,CAAC;AACrE;AAEO,eAAeE,iBAAiBA,CAAA,EAAqB;EAC1D,OAAO,MAAML,wCAAyB,CAACK,iBAAiB,CAAC,CAAC;AAC5D","ignoreList":[]}
@@ -13,6 +13,9 @@ const NoOpSpec = {
13
13
  },
14
14
  getMeasurement() {
15
15
  return Promise.reject(new Error('HealthKit is not available on Android.'));
16
+ },
17
+ checkAvailability() {
18
+ return Promise.reject(new Error('HealthKit is not available on Android.'));
16
19
  }
17
20
  };
18
21
  export default Platform.OS === 'android' ? NoOpSpec : TurboModuleRegistry.getEnforcing('ReactNativeAppleHealthKit');
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","TurboModuleRegistry","NoOpSpec","requestHealthKitPermissions","Promise","reject","Error","getSteps","getHeartRate","getMeasurement","OS","getEnforcing"],"sourceRoot":"../../src","sources":["NativeReactNativeAppleHealthKit.ts"],"mappings":";;AACA,SAASA,QAAQ,EAAEC,mBAAmB,QAAQ,cAAc;AA+B5D,MAAMC,QAAc,GAAG;EACrBC,2BAA2BA,CAAA,EAAoB;IAC7C,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDC,QAAQA,CAAA,EAAoB;IAC1B,OAAOH,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDE,YAAYA,CAAA,EAAyB;IACnC,OAAOJ,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDG,cAAcA,CAAA,EAAyB;IACrC,OAAOL,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E;AACF,CAAC;AAED,eAAeN,QAAQ,CAACU,EAAE,KAAK,SAAS,GACpCR,QAAQ,GACRD,mBAAmB,CAACU,YAAY,CAAO,2BAA2B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","TurboModuleRegistry","NoOpSpec","requestHealthKitPermissions","Promise","reject","Error","getSteps","getHeartRate","getMeasurement","checkAvailability","OS","getEnforcing"],"sourceRoot":"../../src","sources":["NativeReactNativeAppleHealthKit.ts"],"mappings":";;AACA,SAASA,QAAQ,EAAEC,mBAAmB,QAAQ,cAAc;AAgC5D,MAAMC,QAAc,GAAG;EACrBC,2BAA2BA,CAAA,EAAoB;IAC7C,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDC,QAAQA,CAAA,EAAoB;IAC1B,OAAOH,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDE,YAAYA,CAAA,EAAyB;IACnC,OAAOJ,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDG,cAAcA,CAAA,EAAyB;IACrC,OAAOL,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E,CAAC;EACDI,iBAAiBA,CAAA,EAAqB;IACpC,OAAON,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,wCAAwC,CAAC,CAAC;EAC5E;AACF,CAAC;AAED,eAAeN,QAAQ,CAACW,EAAE,KAAK,SAAS,GACpCT,QAAQ,GACRD,mBAAmB,CAACW,YAAY,CAAO,2BAA2B,CAAC","ignoreList":[]}
@@ -13,4 +13,7 @@ export async function getSteps(forNumberOfDay) {
13
13
  export async function getHeartRate(forNumberOfDay) {
14
14
  return await ReactNativeAppleHealthKit.getHeartRate(forNumberOfDay);
15
15
  }
16
+ export async function checkAvailability() {
17
+ return await ReactNativeAppleHealthKit.checkAvailability();
18
+ }
16
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ReactNativeAppleHealthKit","requestHealthKitPermissions","getMeasurement","getSteps","forNumberOfDay","getHeartRate"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,yBAAyB,MAIzB,sCAAmC;AAE1C,OAAO,eAAeC,2BAA2BA,CAAA,EAAoB;EACnE,OAAO,MAAMD,yBAAyB,CAACC,2BAA2B,CAAC,CAAC;AACtE;AAEA,OAAO,eAAeC,cAAcA,CAAA,EAAyB;EAC3D,OAAO,MAAMF,yBAAyB,CAACE,cAAc,CAAC,CAAC;AACzD;AAEA,OAAO,eAAeC,QAAQA,CAACC,cAAsB,EAAmB;EACtE,OAAO,MAAMJ,yBAAyB,CAACG,QAAQ,CAACC,cAAc,CAAC;AACjE;AAEA,OAAO,eAAeC,YAAYA,CAChCD,cAAsB,EACA;EACtB,OAAO,MAAMJ,yBAAyB,CAACK,YAAY,CAACD,cAAc,CAAC;AACrE","ignoreList":[]}
1
+ {"version":3,"names":["ReactNativeAppleHealthKit","requestHealthKitPermissions","getMeasurement","getSteps","forNumberOfDay","getHeartRate","checkAvailability"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,yBAAyB,MAIzB,sCAAmC;AAE1C,OAAO,eAAeC,2BAA2BA,CAAA,EAAoB;EACnE,OAAO,MAAMD,yBAAyB,CAACC,2BAA2B,CAAC,CAAC;AACtE;AAEA,OAAO,eAAeC,cAAcA,CAAA,EAAyB;EAC3D,OAAO,MAAMF,yBAAyB,CAACE,cAAc,CAAC,CAAC;AACzD;AAEA,OAAO,eAAeC,QAAQA,CAACC,cAAsB,EAAmB;EACtE,OAAO,MAAMJ,yBAAyB,CAACG,QAAQ,CAACC,cAAc,CAAC;AACjE;AAEA,OAAO,eAAeC,YAAYA,CAChCD,cAAsB,EACA;EACtB,OAAO,MAAMJ,yBAAyB,CAACK,YAAY,CAACD,cAAc,CAAC;AACrE;AAEA,OAAO,eAAeE,iBAAiBA,CAAA,EAAqB;EAC1D,OAAO,MAAMN,yBAAyB,CAACM,iBAAiB,CAAC,CAAC;AAC5D","ignoreList":[]}
@@ -22,6 +22,7 @@ export interface Spec extends TurboModule {
22
22
  getSteps(daysBefore: number): Promise<Step[]>;
23
23
  getHeartRate(daysBefore: number): Promise<HeartRate[]>;
24
24
  getMeasurement(): Promise<Measurement>;
25
+ checkAvailability(): Promise<boolean>;
25
26
  }
26
27
  declare const _default: Spec;
27
28
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeReactNativeAppleHealthKit.d.ts","sourceRoot":"","sources":["../../../../src/NativeReactNativeAppleHealthKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACxC;;AAiBD,wBAEwE"}
1
+ {"version":3,"file":"NativeReactNativeAppleHealthKit.d.ts","sourceRoot":"","sources":["../../../../src/NativeReactNativeAppleHealthKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;;AAoBD,wBAEwE"}
@@ -3,4 +3,5 @@ export declare function requestHealthKitPermissions(): Promise<string>;
3
3
  export declare function getMeasurement(): Promise<Measurement>;
4
4
  export declare function getSteps(forNumberOfDay: number): Promise<Step[]>;
5
5
  export declare function getHeartRate(forNumberOfDay: number): Promise<HeartRate[]>;
6
+ export declare function checkAvailability(): Promise<boolean>;
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAkC,EAChC,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,mCAAmC,CAAC;AAE3C,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAE3D;AAED,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAEtE;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAkC,EAChC,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,mCAAmC,CAAC;AAE3C,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAE3D;AAED,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAEtE;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE1D"}
@@ -22,6 +22,7 @@ export interface Spec extends TurboModule {
22
22
  getSteps(daysBefore: number): Promise<Step[]>;
23
23
  getHeartRate(daysBefore: number): Promise<HeartRate[]>;
24
24
  getMeasurement(): Promise<Measurement>;
25
+ checkAvailability(): Promise<boolean>;
25
26
  }
26
27
  declare const _default: Spec;
27
28
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeReactNativeAppleHealthKit.d.ts","sourceRoot":"","sources":["../../../../src/NativeReactNativeAppleHealthKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACxC;;AAiBD,wBAEwE"}
1
+ {"version":3,"file":"NativeReactNativeAppleHealthKit.d.ts","sourceRoot":"","sources":["../../../../src/NativeReactNativeAppleHealthKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;;AAoBD,wBAEwE"}
@@ -3,4 +3,5 @@ export declare function requestHealthKitPermissions(): Promise<string>;
3
3
  export declare function getMeasurement(): Promise<Measurement>;
4
4
  export declare function getSteps(forNumberOfDay: number): Promise<Step[]>;
5
5
  export declare function getHeartRate(forNumberOfDay: number): Promise<HeartRate[]>;
6
+ export declare function checkAvailability(): Promise<boolean>;
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAkC,EAChC,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,mCAAmC,CAAC;AAE3C,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAE3D;AAED,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAEtE;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAkC,EAChC,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,IAAI,EACV,MAAM,mCAAmC,CAAC;AAE3C,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAE3D;AAED,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAEtE;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE1D"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@gromozeqa/react-native-apple-health-kit",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "IOS module for react native to enable health kit",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
7
7
  "module": "./lib/module/index.js",
8
+ "types": "./lib/typescript/module/src/index.d.ts",
8
9
  "exports": {
9
10
  ".": {
10
11
  "import": {
@@ -28,6 +28,7 @@ export interface Spec extends TurboModule {
28
28
  getSteps(daysBefore: number): Promise<Step[]>;
29
29
  getHeartRate(daysBefore: number): Promise<HeartRate[]>;
30
30
  getMeasurement(): Promise<Measurement>;
31
+ checkAvailability(): Promise<boolean>;
31
32
  }
32
33
 
33
34
  const NoOpSpec: Spec = {
@@ -43,6 +44,9 @@ const NoOpSpec: Spec = {
43
44
  getMeasurement(): Promise<Measurement> {
44
45
  return Promise.reject(new Error('HealthKit is not available on Android.'));
45
46
  },
47
+ checkAvailability(): Promise<boolean> {
48
+ return Promise.reject(new Error('HealthKit is not available on Android.'));
49
+ },
46
50
  };
47
51
 
48
52
  export default Platform.OS === 'android'
package/src/index.tsx CHANGED
@@ -21,3 +21,7 @@ export async function getHeartRate(
21
21
  ): Promise<HeartRate[]> {
22
22
  return await ReactNativeAppleHealthKit.getHeartRate(forNumberOfDay);
23
23
  }
24
+
25
+ export async function checkAvailability(): Promise<boolean> {
26
+ return await ReactNativeAppleHealthKit.checkAvailability();
27
+ }