diff --git a/apps/client-standalone/src/lightweight/backup_provider.ts b/apps/client-standalone/src/lightweight/backup_provider.ts index 2e5c9464bc..a03502a1fe 100644 --- a/apps/client-standalone/src/lightweight/backup_provider.ts +++ b/apps/client-standalone/src/lightweight/backup_provider.ts @@ -13,8 +13,8 @@ export default class StandaloneBackupService extends BackupService { private backupDir: FileSystemDirectoryHandle | null = null; private opfsAvailable: boolean | null = null; - constructor(getOptions: () => BackupOptionsService) { - super(getOptions); + constructor(options: BackupOptionsService) { + super(options); } private isOpfsAvailable(): boolean { diff --git a/apps/client-standalone/src/local-server-worker.ts b/apps/client-standalone/src/local-server-worker.ts index 6d49db3d1d..283889d7be 100644 --- a/apps/client-standalone/src/local-server-worker.ts +++ b/apps/client-standalone/src/local-server-worker.ts @@ -176,7 +176,7 @@ async function initialize(): Promise { request: new FetchRequestProvider(), platform: new StandalonePlatformProvider(queryString), log: logService, - backup: new StandaloneBackupService(() => coreModule!.options), + backup: new StandaloneBackupService(coreModule!.options), translations: translationProvider, schema: schemaModule.default, getDemoArchive: async () => { diff --git a/apps/client-standalone/src/test_setup.ts b/apps/client-standalone/src/test_setup.ts index 47d087a5de..4bae132f62 100644 --- a/apps/client-standalone/src/test_setup.ts +++ b/apps/client-standalone/src/test_setup.ts @@ -130,7 +130,7 @@ beforeAll(async () => { }); }, platform: new StandalonePlatformProvider(""), - backup: new StandaloneBackupService(() => options), + backup: new StandaloneBackupService(options), schema: schemaSql, dbConfig: { provider: sqlProvider, diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index 69830488cd..e1ca1759bf 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -151,7 +151,7 @@ async function main() { // both source and bundled-production modes. getDemoArchive: async () => fs.readFileSync(path.join(RESOURCE_DIR, "db", "demo.zip")), inAppHelp: new NodejsInAppHelpProvider(), - backup: new ServerBackupService(() => options), + backup: new ServerBackupService(options), image: (await import("@triliumnext/server/src/services/image_provider.js")).serverImageProvider, extraAppInfo: { nodeVersion: process.version, diff --git a/apps/server/spec/setup.ts b/apps/server/spec/setup.ts index ba449361ac..838fa6f007 100644 --- a/apps/server/spec/setup.ts +++ b/apps/server/spec/setup.ts @@ -44,6 +44,6 @@ beforeAll(async () => { platform: new ServerPlatformProvider(), translations: initializeTranslationsWithParams, inAppHelp: new NodejsInAppHelpProvider(), - backup: new ServerBackupService(() => options) + backup: new ServerBackupService(options) }); }); diff --git a/apps/server/src/backup_provider.ts b/apps/server/src/backup_provider.ts index 08a8d86712..0151ce81ea 100644 --- a/apps/server/src/backup_provider.ts +++ b/apps/server/src/backup_provider.ts @@ -8,8 +8,8 @@ import log from "./services/log.js"; import sql from "./services/sql.js"; export default class ServerBackupService extends BackupService { - constructor(getOptions: () => BackupOptionsService) { - super(getOptions); + constructor(options: BackupOptionsService) { + super(options); } override getExistingBackups(): DatabaseBackup[] { diff --git a/apps/server/src/main.ts b/apps/server/src/main.ts index b83e529513..00418c9234 100644 --- a/apps/server/src/main.ts +++ b/apps/server/src/main.ts @@ -81,7 +81,7 @@ async function startApplication() { // both source and bundled-production modes. getDemoArchive: async () => fs.readFileSync(path.join(RESOURCE_DIR, "db", "demo.zip")), inAppHelp: new NodejsInAppHelpProvider(), - backup: new ServerBackupService(() => options), + backup: new ServerBackupService(options), image: (await import("./services/image_provider.js")).serverImageProvider, extraAppInfo: { nodeVersion: process.version, diff --git a/packages/trilium-core/src/services/backup.ts b/packages/trilium-core/src/services/backup.ts index ceda255334..43815b0302 100644 --- a/packages/trilium-core/src/services/backup.ts +++ b/packages/trilium-core/src/services/backup.ts @@ -15,7 +15,7 @@ export interface BackupOptionsService { * Platform-specific implementations must extend this class. */ export default abstract class BackupService { - constructor(protected readonly getOptions: () => BackupOptionsService) {} + constructor(protected readonly options: BackupOptionsService) {} /** * Create a backup with the given name. @@ -59,7 +59,7 @@ export default abstract class BackupService { backupType === "weekly" ? "weeklyBackupEnabled" : "monthlyBackupEnabled"; - return this.getOptions().getOptionBool(optionName); + return this.options.getOptionBool(optionName); } /** @@ -74,13 +74,12 @@ export default abstract class BackupService { return; } - const options = this.getOptions(); const now = new Date(); - const lastBackupDate = dateUtils.parseDateTime(options.getOption(optionName)); + const lastBackupDate = dateUtils.parseDateTime(this.options.getOption(optionName)); if (now.getTime() - lastBackupDate.getTime() > periodInSeconds * 1000) { await this.backupNow(backupType); - options.setOption(optionName, dateUtils.utcNowDateTime()); + this.options.setOption(optionName, dateUtils.utcNowDateTime()); } } }