[IMPORTANT] Circulaire afhankelijkheid: syncService importeert van SettingsScreen #4

Open
opened 2026-08-05 21:11:31 +02:00 by eddy · 0 comments
Owner

Probleem

src/sync/syncService.ts:60,69 gebruikt dynamische imports om getApiConfig() op te halen:

const { getApiConfig } = await import('../screens/SettingsScreen');

Een sync service zou niet afhankelijk moeten zijn van een UI screen component. Dit is een architectuurprobleem:

  • Settings screen kan niet onafhankelijk code-split worden
  • De dependency graph is verwarrend
  • getApiConfig, saveConfig, deleteConfig zijn pure config-persistentie — geen UI-logica

Oplossing

  1. Maak een nieuw bestand src/config/apiConfig.ts
  2. Verplaats getApiConfig(), saveConfig(), deleteConfig() ernaartoe
  3. Importeer direct vanuit syncService.ts: import { getApiConfig } from '../config/apiConfig'
  4. Importeer ook vanuit SettingsScreen.tsx: import { getApiConfig, saveConfig, deleteConfig } from '../config/apiConfig'
  5. Verwijder de dynamische import en de geëxporteerde functies uit SettingsScreen

Dit elimineert de await import() overhead en maakt de dependency graph correct.

## Probleem `src/sync/syncService.ts:60,69` gebruikt dynamische imports om `getApiConfig()` op te halen: ```ts const { getApiConfig } = await import('../screens/SettingsScreen'); ``` Een sync service zou niet afhankelijk moeten zijn van een UI screen component. Dit is een architectuurprobleem: - Settings screen kan niet onafhankelijk code-split worden - De dependency graph is verwarrend - `getApiConfig`, `saveConfig`, `deleteConfig` zijn pure config-persistentie — geen UI-logica ## Oplossing 1. Maak een nieuw bestand `src/config/apiConfig.ts` 2. Verplaats `getApiConfig()`, `saveConfig()`, `deleteConfig()` ernaartoe 3. Importeer direct vanuit `syncService.ts`: `import { getApiConfig } from '../config/apiConfig'` 4. Importeer ook vanuit `SettingsScreen.tsx`: `import { getApiConfig, saveConfig, deleteConfig } from '../config/apiConfig'` 5. Verwijder de dynamische import en de geëxporteerde functies uit SettingsScreen Dit elimineert de `await import()` overhead en maakt de dependency graph correct.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eddy/weegschaal-app#4
No description provided.