Skip to content

Commit ec7632d

Browse files
committed
Reapply "fix(CachingTreeWrapper): Reload cache tree after update failure"
This reverts commit 3df9edf.
1 parent 3df9edf commit ec7632d

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

src/lib/CachingTreeWrapper.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { CachingResource, ICapabilities, IHashSettings, OrderFolderResource } fr
22
import { Bookmark, Folder, ItemLocation } from './Tree'
33
import CacheTree from './CacheTree'
44
import Ordering from './interfaces/Ordering'
5+
import Logger from './Logger'
56

67
export default class CachingTreeWrapper implements OrderFolderResource<typeof ItemLocation.LOCAL>, CachingResource<typeof ItemLocation.LOCAL> {
78
private innerTree: OrderFolderResource<typeof ItemLocation.LOCAL>
@@ -63,7 +64,15 @@ export default class CachingTreeWrapper implements OrderFolderResource<typeof It
6364

6465
async updateFolder(folder:Folder<typeof ItemLocation.LOCAL>): Promise<void> {
6566
await this.innerTree.updateFolder(folder)
66-
await this.cacheTree.updateFolder(folder.copy(false))
67+
try {
68+
await this.cacheTree.updateFolder(folder.copy(false))
69+
} catch (error) {
70+
Logger.log('CachingTreeWrapper: reloading cache tree after updateFolder mismatch', {
71+
folder,
72+
error,
73+
})
74+
this.cacheTree.setTree((await this.innerTree.getBookmarksTree()).copy())
75+
}
6776
}
6877

6978
async removeFolder(folder:Folder<typeof ItemLocation.LOCAL>): Promise<void> {

0 commit comments

Comments
 (0)