UNPKG

react-native-healthkit-bridge

Version:

A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries

114 lines (103 loc) 2.92 kB
export const HEALTHKIT_CONFIG = { // Default configurations DEFAULT_DAYS: 7, MOCK_DELAY: 1000, AUTHORIZATION_CHANCE: 0.9, // Cache CACHE_TTL: 300000, // 5 minutos CACHE_MAX_SIZE: 100, CACHE_ENABLED: true, // Performance MAX_RETRIES: 3, RETRY_DELAY: 1000, QUERY_TIMEOUT: 30000, // 30 segundos // Metrics METRICS_ENABLED: true, METRICS_RETENTION: 24 * 60 * 60 * 1000, // 24 horas // Logging LOGGING_ENABLED: true, LOG_LEVEL: 'info' as 'debug' | 'info' | 'warn' | 'error', // Categories CATEGORIES: { ACTIVITY: 'activity', HEART: 'heart', BODY: 'body', NUTRITION: 'nutrition', SLEEP: 'sleep', MINDFULNESS: 'mindfulness', WORKOUT: 'workout', HEARING: 'hearing' } as const, // Default data types DEFAULT_TYPES: { QUANTITY: [ 'stepCount', 'distanceWalkingRunning', 'activeEnergyBurned', 'heartRate', 'bodyMass', 'height', 'bloodPressureSystolic', 'bloodPressureDiastolic', 'bloodGlucose', 'oxygenSaturation' ], CATEGORY: [ 'sleepAnalysis', 'mindfulSession', 'workoutType' ], SPECIAL: [ 'workout', 'audiogram', 'electrocardiogram' ] }, // Default units DEFAULT_UNITS: { stepCount: 'count', distanceWalkingRunning: 'm', activeEnergyBurned: 'kcal', heartRate: 'count/min', bodyMass: 'kg', height: 'm', bloodPressureSystolic: 'mmHg', bloodPressureDiastolic: 'mmHg', bloodGlucose: 'mg/dL', oxygenSaturation: '%', flightsClimbed: 'count', appleExerciseTime: 'min' }, // Validations VALIDATION: { MAX_DAYS: 365, MIN_DAYS: 1, MAX_DATE_RANGE: 365 * 24 * 60 * 60 * 1000, // 1 ano MIN_DATE_RANGE: 60 * 1000, // 1 minuto MAX_IDENTIFIER_LENGTH: 100, MAX_BATCH_SIZE: 50 }, // Erros ERROR_CODES: { UNAUTHORIZED: 'HEALTHKIT_UNAUTHORIZED', NOT_AVAILABLE: 'HEALTHKIT_NOT_AVAILABLE', INVALID_PARAMETER: 'HEALTHKIT_INVALID_PARAMETER', QUERY_FAILED: 'HEALTHKIT_QUERY_FAILED', TIMEOUT: 'HEALTHKIT_TIMEOUT', NETWORK_ERROR: 'HEALTHKIT_NETWORK_ERROR', UNKNOWN_ERROR: 'HEALTHKIT_UNKNOWN_ERROR' }, // Error messages ERROR_MESSAGES: { UNAUTHORIZED: 'Access to HealthKit not authorized', NOT_AVAILABLE: 'HealthKit is not available on this platform', INVALID_PARAMETER: 'Invalid parameter provided', QUERY_FAILED: 'Failed to execute query on HealthKit', TIMEOUT: 'Timeout executing operation', NETWORK_ERROR: 'Network error accessing HealthKit', UNKNOWN_ERROR: 'Unknown error occurred' } } as const; export type HealthKitConfig = typeof HEALTHKIT_CONFIG; export type HealthKitCategory = typeof HEALTHKIT_CONFIG.CATEGORIES[keyof typeof HEALTHKIT_CONFIG.CATEGORIES]; export type HealthKitErrorCode = typeof HEALTHKIT_CONFIG.ERROR_CODES[keyof typeof HEALTHKIT_CONFIG.ERROR_CODES];