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
This commit is contained in:
parent
cd2466426b
commit
871f5c5682
3 changed files with 9 additions and 17 deletions
16
src/index.ts
16
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<void> {
|
|||
builder.registerType(ResourceStore).as<IStore>();
|
||||
builder.registerType(EventStore).as<IStore>();
|
||||
|
||||
// Resolve all IStore implementations and register as array
|
||||
const stores = container.resolveTypeAll<IStore>();
|
||||
builder.registerInstance(stores).as<IStore[]>();
|
||||
|
||||
// Register storage and repository services
|
||||
builder.registerType(IndexedDBService).as<IndexedDBService>();
|
||||
|
|
@ -130,21 +129,14 @@ async function initializeCalendar(): Promise<void> {
|
|||
builder.registerType(ApiCustomerRepository).as<IApiRepository<any>>();
|
||||
builder.registerType(ApiResourceRepository).as<IApiRepository<any>>();
|
||||
|
||||
// Resolve all API repositories and register as array for SyncManager
|
||||
const apiRepositories = container.resolveTypeAll<IApiRepository<any>>();
|
||||
builder.registerInstance(apiRepositories).as<IApiRepository<any>[]>();
|
||||
|
||||
// Register entity services (sync status management)
|
||||
builder.registerType(DateColumnDataSource).as<IColumnDataSource>();
|
||||
// Register entity services (sync status management)
|
||||
// Open/Closed Principle: Adding new entity only requires adding one line here
|
||||
builder.registerType(EventService).as<IEntityService<any>>();
|
||||
builder.registerType(BookingService).as<IEntityService<any>>();
|
||||
builder.registerType(CustomerService).as<IEntityService<any>>();
|
||||
builder.registerType(ResourceService).as<IEntityService<any>>();
|
||||
|
||||
// Resolve all IEntityService implementations and register as array for SyncManager
|
||||
const entityServices = container.resolveTypeAll<IEntityService<any>>();
|
||||
builder.registerInstance(entityServices).as<IEntityService<any>[]>();
|
||||
|
||||
// Register IndexedDB repositories (offline-first)
|
||||
builder.registerType(IndexedDBEventRepository).as<IEventRepository>();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue