diff --git a/apps/manacore/apps/web/src/lib/entities/index.ts b/apps/manacore/apps/web/src/lib/entities/index.ts index b679b508b..0b1c6668c 100644 --- a/apps/manacore/apps/web/src/lib/entities/index.ts +++ b/apps/manacore/apps/web/src/lib/entities/index.ts @@ -11,13 +11,13 @@ export { getAllEntities, } from './registry'; -// Lazy entity registration — avoids circular imports at module load time. -let registered = false; +// Register module entities eagerly — these are lightweight descriptor files +// with no heavy dependencies (stores are only called at drop time, not import time). +import '$lib/modules/todo/entity'; +import '$lib/modules/calendar/entity'; +import '$lib/modules/contacts/entity'; +// Re-export for consumers that previously used lazy registration export function ensureEntitiesRegistered(): void { - if (registered) return; - registered = true; - import('$lib/modules/todo/entity'); - import('$lib/modules/calendar/entity'); - import('$lib/modules/contacts/entity'); + // No-op — entities are now registered at import time } diff --git a/apps/manacore/apps/web/src/lib/modules/calendar/entity.ts b/apps/manacore/apps/web/src/lib/modules/calendar/entity.ts index 48a4abfcb..047986356 100644 --- a/apps/manacore/apps/web/src/lib/modules/calendar/entity.ts +++ b/apps/manacore/apps/web/src/lib/modules/calendar/entity.ts @@ -1,6 +1,4 @@ import { registerEntity } from '$lib/entities/registry'; -import { eventsStore } from './stores/events.svelte'; -import { db } from '$lib/data/database'; import type { EntityDescriptor } from '$lib/entities/types'; const calendarEntity: EntityDescriptor = { @@ -48,6 +46,10 @@ const calendarEntity: EntityDescriptor = { }, createItem: async (data) => { + // Lazy imports to avoid circular dependency at registration time + const { db } = await import('$lib/data/database'); + const { eventsStore } = await import('./stores/events.svelte'); + const calendars = await db.table('calendars').toArray(); const defaultCal = calendars.find((c: Record) => !c.deletedAt); const calendarId = (defaultCal?.id as string) ?? 'default'; diff --git a/apps/manacore/apps/web/src/lib/modules/todo/entity.ts b/apps/manacore/apps/web/src/lib/modules/todo/entity.ts index 8462dd469..ebf53d210 100644 --- a/apps/manacore/apps/web/src/lib/modules/todo/entity.ts +++ b/apps/manacore/apps/web/src/lib/modules/todo/entity.ts @@ -1,5 +1,4 @@ import { registerEntity } from '$lib/entities/registry'; -import { tasksStore } from './stores/tasks.svelte'; import type { EntityDescriptor } from '$lib/entities/types'; const todoEntity: EntityDescriptor = { @@ -27,6 +26,8 @@ const todoEntity: EntityDescriptor = { }, createItem: async (data) => { + // Lazy import to avoid circular dependency at registration time + const { tasksStore } = await import('./stores/tasks.svelte'); const task = await tasksStore.createTask( data as { title: string; dueDate?: string; description?: string } );