From a49503a1f09bf03817b1a53c3d5ed8a8d805b39a Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 10 Jun 2026 00:35:41 +0530 Subject: [PATCH] refactor: Migrate the migrations store to the persisted rune Co-Authored-By: Claude Fable 5 --- .../util/{migrations.ts => migrations.svelte.ts} | 13 ++++--------- src/lib/util/migrations.test.ts | 2 +- src/lib/util/util.ts | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) rename src/lib/util/{migrations.ts => migrations.svelte.ts} (70%) diff --git a/src/lib/util/migrations.ts b/src/lib/util/migrations.svelte.ts similarity index 70% rename from src/lib/util/migrations.ts rename to src/lib/util/migrations.svelte.ts index bc86f832..a02a78a0 100644 --- a/src/lib/util/migrations.ts +++ b/src/lib/util/migrations.svelte.ts @@ -1,6 +1,5 @@ -import { writable, get, type Writable } from 'svelte/store'; -import { persist, localStorage } from '$lib/util/persist'; import { injectHistoryIDs } from '$lib/components/History/historyState.svelte'; +import { persisted } from '$lib/util/persist.svelte'; import { logEvent } from './stats'; interface MigrationState { @@ -11,14 +10,10 @@ const migrations: Record void> = { injectHistoryIDs }; -const migrationStore: Writable = persist( - writable({ version: -1 }), - localStorage(), - 'migrations' -); +const migrationState = persisted('migrations', { version: -1 }); export const applyMigrations = (): void => { - const { version }: MigrationState = get(migrationStore); + const { version } = migrationState.value; const allMigrations = Object.entries(migrations); if (version === allMigrations.length - 1) { return; @@ -29,7 +24,7 @@ export const applyMigrations = (): void => { console.log(`Applying migration ${i}: ${key}.`); fn(); logEvent('migration', { key }); - migrationStore.set({ version: i }); + migrationState.value = { version: i }; } logEvent('migration', { status: 'complete', from: version, to: allMigrations.length - 1 }); }; diff --git a/src/lib/util/migrations.test.ts b/src/lib/util/migrations.test.ts index 8c7a3a28..9b7570c2 100644 --- a/src/lib/util/migrations.test.ts +++ b/src/lib/util/migrations.test.ts @@ -14,7 +14,7 @@ describe('migrations', () => { }); it('should migrate from v0 to v1', async () => { - const { applyMigrations } = await import('./migrations'); + const { applyMigrations } = await import('./migrations.svelte'); let manualHistoryStore: HistoryEntry[] = JSON.parse( window.localStorage.getItem('manualHistoryStore') ?? '[]' ) as HistoryEntry[]; diff --git a/src/lib/util/util.ts b/src/lib/util/util.ts index f9fb2a4e..04156fcb 100644 --- a/src/lib/util/util.ts +++ b/src/lib/util/util.ts @@ -3,7 +3,7 @@ import { env } from './env'; import { loadDataFromUrl } from './fileLoaders/loader'; import { initLoading } from './loading.svelte'; import { isOnMermaidAI } from './migration/domainMigration'; -import { applyMigrations } from './migrations'; +import { applyMigrations } from './migrations.svelte'; import { initURLSubscription, loadState, updateCodeStore, verifyState } from './state.svelte'; import { getAnalyticsSafeUrl, initAnalytics, plausible } from './stats';