From e0a6a9190ff6d0073442fd8be7a68e6c2f3c7780 Mon Sep 17 00:00:00 2001 From: Grant Forrest Date: Fri, 29 Nov 2024 22:56:36 -0500 Subject: [PATCH] idk 2 --- .changeset/twelve-readers-arrive.md | 6 ++++++ packages/persistence-sqlite/src/SqliteService.ts | 11 ++--------- packages/store/src/persistence/idb/IdbService.ts | 11 ++--------- packages/store/src/utils/Disposable.ts | 10 +++++++++- 4 files changed, 19 insertions(+), 19 deletions(-) create mode 100644 .changeset/twelve-readers-arrive.md diff --git a/.changeset/twelve-readers-arrive.md b/.changeset/twelve-readers-arrive.md new file mode 100644 index 00000000..eac52c75 --- /dev/null +++ b/.changeset/twelve-readers-arrive.md @@ -0,0 +1,6 @@ +--- +'@verdant-web/persistence-sqlite': patch +'@verdant-web/store': patch +--- + +Sometimes you think you know javascript, but diff --git a/packages/persistence-sqlite/src/SqliteService.ts b/packages/persistence-sqlite/src/SqliteService.ts index b22a4e39..8398008b 100644 --- a/packages/persistence-sqlite/src/SqliteService.ts +++ b/packages/persistence-sqlite/src/SqliteService.ts @@ -8,16 +8,9 @@ export class SqliteService extends Disposable { constructor(protected db: Database) { super(); const abortController = new AbortController(); - this.globalAbortController = abortController; const abort = abortController.abort.bind(abortController); - this.addDispose(function () { - if (abortController.signal.aborted) return; - try { - abort(); - } catch (err) { - console.error('Error aborting global controller', err); - } - }); + this.globalAbortController = abortController; + this.addDispose(abort); } transaction = async ( diff --git a/packages/store/src/persistence/idb/IdbService.ts b/packages/store/src/persistence/idb/IdbService.ts index b335e239..2fc04014 100644 --- a/packages/store/src/persistence/idb/IdbService.ts +++ b/packages/store/src/persistence/idb/IdbService.ts @@ -17,16 +17,9 @@ export class IdbService extends Disposable { super(); this.log = log; const abortController = new AbortController(); - this.globalAbortController = abortController; const abort = abortController.abort.bind(abortController); - this.addDispose(function () { - if (abortController.signal.aborted) return; - try { - abort(); - } catch (err) { - console.error('Error aborting global controller', err); - } - }); + this.globalAbortController = abortController; + this.addDispose(abort); this.db.addEventListener('versionchange', this.onVersionChange); this.addDispose(() => { this.db.removeEventListener('versionchange', this.onVersionChange); diff --git a/packages/store/src/utils/Disposable.ts b/packages/store/src/utils/Disposable.ts index 46efedee..192b4137 100644 --- a/packages/store/src/utils/Disposable.ts +++ b/packages/store/src/utils/Disposable.ts @@ -4,7 +4,15 @@ export class Disposable { dispose = async () => { this.disposed = true; - await Promise.all(this._disposes.map((dispose) => dispose())); + await Promise.all( + this._disposes.map(async (dispose) => { + try { + await dispose(); + } catch (err) { + console.error('Error disposing', err); + } + }), + ); this._disposes = []; };