Refactor: DatabaseService and Replicator

This commit is contained in:
vorotamoroz
2026-02-16 11:51:03 +00:00
parent 2b9bb1ed06
commit 2ae70e8f07
9 changed files with 60 additions and 82 deletions

View File

@@ -1,11 +1,16 @@
import { initializeStores } from "@/common/stores";
import { InjectableDatabaseService } from "@/lib/src/services/implements/injectable/InjectableDatabaseService";
// import { InjectableDatabaseService } from "@/lib/src/services/implements/injectable/InjectableDatabaseService";
import type { ObsidianServiceContext } from "@/lib/src/services/implements/obsidian/ObsidianServiceContext";
import { DatabaseService, type DatabaseServiceDependencies } from "@lib/services/base/DatabaseService.ts";
export class ObsidianDatabaseService extends InjectableDatabaseService<ObsidianServiceContext> {
override onOpenDatabase(vaultName: string): Promise<void> {
export class ObsidianDatabaseService<T extends ObsidianServiceContext> extends DatabaseService<T> {
private __onOpenDatabase(vaultName: string) {
initializeStores(vaultName);
return Promise.resolve();
return Promise.resolve(true);
}
constructor(context: T, dependencies: DatabaseServiceDependencies) {
super(context, dependencies);
this.onOpenDatabase.addHandler(this.__onOpenDatabase.bind(this));
}
}

View File

@@ -33,7 +33,7 @@ export class ObsidianServiceHub extends InjectableServiceHub<ObsidianServiceCont
const conflict = new ObsidianConflictService(context);
const fileProcessing = new ObsidianFileProcessingService(context);
const replication = new ObsidianReplicationService(context);
const replicator = new ObsidianReplicatorService(context);
const remote = new ObsidianRemoteService(context);
const setting = new ObsidianSettingService(context);
const tweakValue = new ObsidianTweakValueService(context);
@@ -56,6 +56,11 @@ export class ObsidianServiceHub extends InjectableServiceHub<ObsidianServiceCont
vault: vault,
});
const config = new ObsidianConfigService(context, vault);
const replicator = new ObsidianReplicatorService(context, {
settingService: setting,
appLifecycleService: appLifecycle,
databaseEventService: databaseEvents,
});
const ui = new ObsidianUIService(context, {
appLifecycle,
config,