From 871f5c5682ec41a36e70113002c5a10e6893351f Mon Sep 17 00:00:00 2001 From: "Janus C. H. Knudsen" Date: Tue, 18 Nov 2025 22:34:12 +0100 Subject: [PATCH] Upgrades @novadi/core and refactors dependency registration Updates package dependencies to latest version of @novadi/core Simplifies dependency and service registration by removing automatic array resolution of stores, API repositories, and entity services Adds DateColumnDataSource as a new column data source implementation --- package-lock.json | 8 ++++---- package.json | 2 +- src/index.ts | 16 ++++------------ 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index a829877..11fc31c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "calendar-plantempus", "version": "1.0.0", "dependencies": { - "@novadi/core": "^0.5.5", + "@novadi/core": "^0.6.0", "@rollup/rollup-win32-x64-msvc": "^4.52.2", "dayjs": "^1.11.19", "fuse.js": "^7.1.0" @@ -728,9 +728,9 @@ } }, "node_modules/@novadi/core": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@novadi/core/-/core-0.5.5.tgz", - "integrity": "sha512-i4r08cyZjdjbNLNEq3Ul2QMnfCBNJZboCwVLvgL5wAR6+jQ4PDBCmdqfMMnF6kegwGD8R7DdhO/TocdjkGZ+qw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@novadi/core/-/core-0.6.0.tgz", + "integrity": "sha512-CU1134Nd7ULMg9OQbID5oP+FLtrMkNiLJ17+dmy4jjmPDcPK/dVzKTFxvJmbBvEfZEc9WtmkmJjqw11ABU7Jxw==", "license": "MIT", "dependencies": { "unplugin": "^2.3.10" diff --git a/package.json b/package.json index 5ddada5..f42899e 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "vitest": "^3.2.4" }, "dependencies": { - "@novadi/core": "^0.5.5", + "@novadi/core": "^0.6.0", "@rollup/rollup-win32-x64-msvc": "^4.52.2", "dayjs": "^1.11.19", "fuse.js": "^7.1.0" diff --git a/src/index.ts b/src/index.ts index 932f1b7..cf8e7de 100644 --- a/src/index.ts +++ b/src/index.ts @@ -63,6 +63,8 @@ import { AllDayLayoutEngine } from './utils/AllDayLayoutEngine'; import { WorkHoursManager } from './managers/WorkHoursManager'; import { EventStackManager } from './managers/EventStackManager'; import { EventLayoutCoordinator } from './managers/EventLayoutCoordinator'; +import { IColumnDataSource } from './types/ColumnDataSource'; +import { DateColumnDataSource } from './datasources/DateColumnDataSource'; /** * Handle deep linking functionality after managers are initialized @@ -115,9 +117,6 @@ async function initializeCalendar(): Promise { builder.registerType(ResourceStore).as(); builder.registerType(EventStore).as(); - // Resolve all IStore implementations and register as array - const stores = container.resolveTypeAll(); - builder.registerInstance(stores).as(); // Register storage and repository services builder.registerType(IndexedDBService).as(); @@ -130,21 +129,14 @@ async function initializeCalendar(): Promise { builder.registerType(ApiCustomerRepository).as>(); builder.registerType(ApiResourceRepository).as>(); - // Resolve all API repositories and register as array for SyncManager - const apiRepositories = container.resolveTypeAll>(); - builder.registerInstance(apiRepositories).as[]>(); - - // Register entity services (sync status management) + builder.registerType(DateColumnDataSource).as(); + // Register entity services (sync status management) // Open/Closed Principle: Adding new entity only requires adding one line here builder.registerType(EventService).as>(); builder.registerType(BookingService).as>(); builder.registerType(CustomerService).as>(); builder.registerType(ResourceService).as>(); - // Resolve all IEntityService implementations and register as array for SyncManager - const entityServices = container.resolveTypeAll>(); - builder.registerInstance(entityServices).as[]>(); - // Register IndexedDB repositories (offline-first) builder.registerType(IndexedDBEventRepository).as();