electron/utils/database/SiteRepositoryService
Site repository service for data operations and dependency injection.
Remarks
Provides a testable, dependency-injected service layer for site data operations, separating business logic from infrastructure concerns. Designed with the repository pattern and service layer architecture to enable comprehensive testing and maintainable code organization.
The service provides both data operations (SiteRepositoryService) and orchestration logic (SiteLoadingOrchestrator) to handle complex workflows while maintaining clean separation between pure functions and side effects.
Example
const service = new SiteRepositoryService({
repositories: { site, monitor, history, settings },
logger,
eventEmitter,
});
const sites = await service.getSitesFromDatabase();
await service.loadSitesIntoCache(siteCache);
See
- SiteRepository for data access patterns
- MonitorRepository for monitor data operations
- HistoryRepository for history data operations
- SettingsRepository for settings data operations
- SiteLoadingOrchestrator for orchestration logic