react-native-healthkit-bridge
Version:
A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries
36 lines (30 loc) • 1.31 kB
text/typescript
import { HealthKitRepository } from '../../domain/repositories/HealthKitRepository';
import { HealthKitRepositoryImpl } from '../../data/repositories/HealthKitRepositoryImpl';
import { NativeHealthKitDataSource } from '../../data/datasources/NativeHealthKitDataSource';
import { HealthKitRepositoryConfig } from '../../domain/repositories/HealthKitRepository';
export class HealthKitContainer {
private static instance: HealthKitContainer;
private repository: HealthKitRepository | null = null;
private constructor() {}
static getInstance(): HealthKitContainer {
if (!HealthKitContainer.instance) {
HealthKitContainer.instance = new HealthKitContainer();
}
return HealthKitContainer.instance;
}
getRepository(config?: HealthKitRepositoryConfig): HealthKitRepository {
if (!this.repository) {
const dataSource = new NativeHealthKitDataSource();
this.repository = new HealthKitRepositoryImpl(dataSource, config);
}
return this.repository;
}
// Método para reset (útil para testes)
reset(): void {
this.repository = null;
}
}
// Factory function para facilitar o uso
export function createHealthKitRepository(config?: HealthKitRepositoryConfig): HealthKitRepository {
return HealthKitContainer.getInstance().getRepository(config);
}