@kingstinct/react-native-healthkit 4.2.0 → 4.4.1

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 (69) hide show
  1. package/README.md +1 -1
  2. package/ios/ReactNativeHealthkit.m +6 -1
  3. package/ios/ReactNativeHealthkit.swift +365 -176
  4. package/lib/commonjs/index.ios.js +129 -105
  5. package/lib/commonjs/index.ios.js.map +1 -1
  6. package/lib/commonjs/index.js +58 -44
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/native-types.js +136 -106
  9. package/lib/commonjs/native-types.js.map +1 -1
  10. package/lib/commonjs/types.js +4 -0
  11. package/lib/commonjs/types.js.map +1 -1
  12. package/lib/example/App.js +197 -0
  13. package/lib/index.ios.js +310 -0
  14. package/lib/index.js +44 -0
  15. package/lib/module/index.ios.js +130 -106
  16. package/lib/module/index.ios.js.map +1 -1
  17. package/lib/module/index.js +52 -37
  18. package/lib/module/index.js.map +1 -1
  19. package/lib/module/native-types.js +127 -104
  20. package/lib/module/native-types.js.map +1 -1
  21. package/lib/module/types.js +1 -1
  22. package/lib/module/types.js.map +1 -1
  23. package/lib/native-types.js +447 -0
  24. package/lib/src/index.ios.js +314 -0
  25. package/lib/src/index.js +45 -0
  26. package/lib/src/native-types.js +453 -0
  27. package/lib/src/types.js +1 -0
  28. package/lib/types.js +1 -0
  29. package/lib/typescript/src/index.d.ts +1 -1
  30. package/lib/typescript/src/index.ios.d.ts +1 -1
  31. package/lib/typescript/src/native-types.d.ts +458 -205
  32. package/lib/typescript/src/types.d.ts +87 -81
  33. package/package.json +21 -35
  34. package/src/index.ios.tsx +303 -269
  35. package/src/index.tsx +63 -45
  36. package/src/native-types.ts +318 -290
  37. package/src/types.ts +120 -105
  38. package/.DS_Store +0 -0
  39. package/.circleci/config.yml +0 -98
  40. package/.editorconfig +0 -15
  41. package/.gitattributes +0 -3
  42. package/.github/workflows/main.yml +0 -32
  43. package/.gitignore +0 -60
  44. package/CONTRIBUTING.md +0 -184
  45. package/babel.config.js +0 -3
  46. package/example-expo/.expo/README.md +0 -15
  47. package/example-expo/.expo/devices.json +0 -8
  48. package/example-expo/.expo/packager-info.json +0 -5
  49. package/example-expo/.expo/settings.json +0 -9
  50. package/example-expo/.expo-shared/assets.json +0 -4
  51. package/example-expo/.gitignore +0 -14
  52. package/example-expo/App.tsx +0 -376
  53. package/example-expo/app.json +0 -43
  54. package/example-expo/assets/adaptive-icon.png +0 -0
  55. package/example-expo/assets/favicon.png +0 -0
  56. package/example-expo/assets/icon.png +0 -0
  57. package/example-expo/assets/splash.png +0 -0
  58. package/example-expo/babel.config.js +0 -8
  59. package/example-expo/build-1653040579600.ipa +0 -0
  60. package/example-expo/build-1653041063216.ipa +0 -0
  61. package/example-expo/eas.json +0 -18
  62. package/example-expo/package.json +0 -32
  63. package/example-expo/tsconfig.json +0 -6
  64. package/example-expo/yarn.lock +0 -6857
  65. package/lib/typescript/example-expo/App.d.ts +0 -3
  66. package/lib/typescript/src/__tests__/index.test.d.ts +0 -0
  67. package/src/__tests__/index.test.tsx +0 -1
  68. package/tsconfig.json +0 -27
  69. package/yarn.lock +0 -10241
package/src/index.tsx CHANGED
@@ -1,51 +1,69 @@
1
- import { Platform } from 'react-native';
2
- import type { ReactNativeHealthkit } from './types';
1
+ import { Platform } from 'react-native'
3
2
 
4
- const notAvailableError =
5
- 'Platform "' +
6
- Platform.OS +
7
- '" not supported, use isHealthDataAvailable to check for availability before using it';
3
+ import {
4
+ HKAuthorizationRequestStatus, HKBiologicalSex, HKBloodType, HKFitzpatrickSkinType, HKUnit, HKWheelchairUse,
5
+ } from './native-types'
8
6
 
9
- const UnavailableFn = () => {
10
- throw new Error(notAvailableError);
11
- };
7
+ import type { ReactNativeHealthkit } from './types'
8
+
9
+ const notAvailableError = `[@kingstinct/react-native-healthkit] Platform "${
10
+ Platform.OS
11
+ }" not supported`
12
+
13
+ function UnavailableFn<T = unknown>(retVal: T) {
14
+ return () => {
15
+ console.warn(notAvailableError)
16
+ return retVal
17
+ }
18
+ }
12
19
 
13
20
  const Healthkit: ReactNativeHealthkit = {
14
- authorizationStatusFor: UnavailableFn,
15
- buildUnitWithPrefix: UnavailableFn,
16
- disableAllBackgroundDelivery: UnavailableFn,
17
- disableBackgroundDelivery: UnavailableFn,
18
- enableBackgroundDelivery: UnavailableFn,
19
- getBiologicalSex: UnavailableFn,
20
- getBloodType: UnavailableFn,
21
- getDateOfBirth: UnavailableFn,
22
- getFitzpatrickSkinType: UnavailableFn,
23
- getMostRecentCategorySample: UnavailableFn,
24
- getMostRecentQuantitySample: UnavailableFn,
25
- getMostRecentWorkout: UnavailableFn,
26
- getPreferredUnit: UnavailableFn,
27
- getPreferredUnits: UnavailableFn,
28
- getRequestStatusForAuthorization: UnavailableFn,
29
- getWheelchairUse: UnavailableFn,
30
- isHealthDataAvailable: () => Promise.resolve(false),
31
- queryCategorySamples: UnavailableFn,
32
- queryCorrelationSamples: UnavailableFn,
33
- queryQuantitySamples: UnavailableFn,
34
- queryStatisticsForQuantity: UnavailableFn,
35
- queryWorkouts: UnavailableFn,
36
- requestAuthorization: UnavailableFn,
37
- saveCategorySample: UnavailableFn,
38
- saveCorrelationSample: UnavailableFn,
39
- saveQuantitySample: UnavailableFn,
40
- saveWorkoutSample: UnavailableFn,
41
- subscribeToChanges: UnavailableFn,
42
- useMostRecentCategorySample: UnavailableFn,
43
- useMostRecentQuantitySample: UnavailableFn,
44
- useMostRecentWorkout: UnavailableFn,
45
- useSubscribeToChanges: UnavailableFn,
46
- };
21
+ authorizationStatusFor: UnavailableFn(Promise.resolve(false)),
22
+ buildUnitWithPrefix: UnavailableFn(HKUnit.Atmospheres),
23
+ disableAllBackgroundDelivery: UnavailableFn(Promise.resolve(false)),
24
+ disableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),
25
+ enableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),
26
+ getBiologicalSex: UnavailableFn(Promise.resolve(HKBiologicalSex.notSet)),
27
+ getBloodType: UnavailableFn(Promise.resolve(HKBloodType.notSet)),
28
+ getDateOfBirth: UnavailableFn(Promise.resolve(new Date(0))),
29
+ getFitzpatrickSkinType: UnavailableFn(Promise.resolve(HKFitzpatrickSkinType.notSet)),
30
+ getMostRecentCategorySample: UnavailableFn(Promise.resolve(null)),
31
+ getMostRecentQuantitySample: UnavailableFn(Promise.resolve(null)),
32
+ getMostRecentWorkout: UnavailableFn(Promise.resolve(null)),
33
+ getPreferredUnit: UnavailableFn(Promise.resolve(HKUnit.Atmospheres)),
34
+ getPreferredUnits: UnavailableFn(Promise.resolve([])),
35
+ getRequestStatusForAuthorization: UnavailableFn(Promise.resolve(HKAuthorizationRequestStatus.unknown)),
36
+ getWheelchairUse: UnavailableFn(Promise.resolve(HKWheelchairUse.notSet)),
37
+ getWorkoutRoutes: UnavailableFn(Promise.resolve([])),
38
+ isHealthDataAvailable: async () => Promise.resolve(false),
39
+ queryCategorySamples: UnavailableFn(Promise.resolve([])),
40
+ queryCorrelationSamples: UnavailableFn(Promise.resolve([])),
41
+ queryQuantitySamples: UnavailableFn(Promise.resolve([])),
42
+ queryStatisticsForQuantity: UnavailableFn(Promise.resolve({
43
+ averageQuantity: undefined,
44
+ maximumQuantity: undefined,
45
+ minimumQuantity: undefined,
46
+ sumQuantity: undefined,
47
+ mostRecentQuantity: undefined,
48
+ mostRecentQuantityDateInterval: undefined,
49
+ duration: undefined,
50
+ })),
51
+ queryWorkouts: UnavailableFn(Promise.resolve([])),
52
+ requestAuthorization: UnavailableFn(Promise.resolve(false)),
53
+ saveCategorySample: UnavailableFn(Promise.resolve(false)),
54
+ saveCorrelationSample: UnavailableFn(Promise.resolve(false)),
55
+ saveQuantitySample: UnavailableFn(Promise.resolve(false)),
56
+ saveWorkoutSample: UnavailableFn(Promise.resolve(false)),
57
+ subscribeToChanges: UnavailableFn(Promise.resolve(async () => Promise.resolve(false))),
58
+ useMostRecentCategorySample: UnavailableFn(null),
59
+ useMostRecentQuantitySample: UnavailableFn(null),
60
+ useMostRecentWorkout: UnavailableFn(null),
61
+ useSubscribeToChanges: UnavailableFn([null, () => null]),
62
+ useHealthkitAuthorization: UnavailableFn([null, async () => Promise.resolve(null)] as const),
63
+ useIsHealthDataAvailable: UnavailableFn(false),
64
+ }
47
65
 
48
- export * from './types';
49
- export * from './native-types';
66
+ export * from './native-types'
67
+ export * from './types'
50
68
 
51
- export default Healthkit;
69
+ export default Healthkit