From 298215a76a9c11dcdadae1f32beeaa2519a5f0fb Mon Sep 17 00:00:00 2001 From: Jonathan Jogenfors Date: Fri, 1 Mar 2024 00:57:28 +0100 Subject: [PATCH] fix watcher await --- server/src/domain/library/library.service.ts | 4 ++-- server/src/domain/repositories/storage.repository.ts | 2 +- server/src/infra/repositories/filesystem.provider.ts | 2 +- server/test/repositories/storage.repository.mock.ts | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server/src/domain/library/library.service.ts b/server/src/domain/library/library.service.ts index 680251ee78..8887332344 100644 --- a/server/src/domain/library/library.service.ts +++ b/server/src/domain/library/library.service.ts @@ -46,7 +46,7 @@ export class LibraryService extends EventEmitter { private configCore: SystemConfigCore; private watchLibraries = false; private watchLock = false; - private watchers: Record void> = {}; + private watchers: Record Promise> = {}; constructor( @Inject(IAccessRepository) accessRepository: IAccessRepository, @@ -175,7 +175,7 @@ export class LibraryService extends EventEmitter { async unwatch(id: string) { if (this.watchers[id]) { - this.watchers[id](); + await this.watchers[id](); delete this.watchers[id]; } } diff --git a/server/src/domain/repositories/storage.repository.ts b/server/src/domain/repositories/storage.repository.ts index d9f8c27ef2..f4f8cab7b9 100644 --- a/server/src/domain/repositories/storage.repository.ts +++ b/server/src/domain/repositories/storage.repository.ts @@ -55,6 +55,6 @@ export interface IStorageRepository { crawl(crawlOptions: CrawlOptionsDto): Promise; copyFile(source: string, target: string): Promise; rename(source: string, target: string): Promise; - watch(paths: string[], options: WatchOptions, events: Partial): () => void; + watch(paths: string[], options: WatchOptions, events: Partial): () => Promise; utimes(filepath: string, atime: Date, mtime: Date): Promise; } diff --git a/server/src/infra/repositories/filesystem.provider.ts b/server/src/infra/repositories/filesystem.provider.ts index fef184992d..dc5b185fcf 100644 --- a/server/src/infra/repositories/filesystem.provider.ts +++ b/server/src/infra/repositories/filesystem.provider.ts @@ -148,6 +148,6 @@ export class FilesystemProvider implements IStorageRepository { watcher.on(StorageEventType.UNLINK, (path) => events.onUnlink?.(path)); watcher.on(StorageEventType.ERROR, (error) => events.onError?.(error)); - return () => watcher.close(); + return async () => await watcher.close(); } } diff --git a/server/test/repositories/storage.repository.mock.ts b/server/test/repositories/storage.repository.mock.ts index 1066d4f688..0b93ef5819 100644 --- a/server/test/repositories/storage.repository.mock.ts +++ b/server/test/repositories/storage.repository.mock.ts @@ -11,7 +11,7 @@ interface MockWatcherOptions { | StorageEventType.ERROR; value: string; }>; - close?: () => void; + close?: () => Promise; } export const makeMockWatcher = @@ -37,7 +37,7 @@ export const makeMockWatcher = } } } - return () => close?.(); + return async () => await close?.(); }; export const newStorageRepositoryMock = (reset = true): jest.Mocked => {