diff --git a/.changeset/grumpy-monkeys-laugh.md b/.changeset/grumpy-monkeys-laugh.md new file mode 100644 index 000000000..ac1889c04 --- /dev/null +++ b/.changeset/grumpy-monkeys-laugh.md @@ -0,0 +1,5 @@ +--- +'@powersync/web': patch +--- + +Remove deprecated `unload` listener. diff --git a/packages/web/src/db/PowerSyncDatabase.ts b/packages/web/src/db/PowerSyncDatabase.ts index 9f97221e4..d0a3a5724 100644 --- a/packages/web/src/db/PowerSyncDatabase.ts +++ b/packages/web/src/db/PowerSyncDatabase.ts @@ -38,6 +38,7 @@ import { AsyncDbAdapter } from './adapters/AsyncWebAdapter.js'; export interface WebPowerSyncFlags extends WebSQLFlags { /** + * @deprecated This flag is no longer used. Navigator locks now handle tab detection automatically. * Externally unload open PowerSync database instances when the window closes. * Setting this to `true` requires calling `close` on all open PowerSyncDatabase * instances before the window unloads @@ -127,7 +128,6 @@ function assertValidDatabaseOptions(options: WebPowerSyncDatabaseOptions): void export class PowerSyncDatabase extends AbstractPowerSyncDatabase { static SHARED_MUTEX = new Mutex(); - protected unloadListener?: () => Promise; protected resolvedFlags: WebPowerSyncFlags; constructor(options: WebPowerSyncDatabaseOptionsWithAdapter); @@ -140,11 +140,6 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase { assertValidDatabaseOptions(options); this.resolvedFlags = resolveWebPowerSyncFlags(options.flags); - - if (this.resolvedFlags.enableMultiTabs && !this.resolvedFlags.externallyUnload) { - this.unloadListener = () => this.close({ disconnect: false }); - window.addEventListener('unload', this.unloadListener); - } } async _initialize(): Promise { @@ -190,9 +185,6 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase { * multiple tabs are not enabled. */ close(options?: PowerSyncCloseOptions): Promise { - if (this.unloadListener) { - window.removeEventListener('unload', this.unloadListener); - } return super.close({ // Don't disconnect by default if multiple tabs are enabled disconnect: options?.disconnect ?? !this.resolvedFlags.enableMultiTabs