From 2257ca2e6f9f8834880ea9bab4355c168ee6c33b Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Thu, 5 Feb 2026 12:53:56 +0100 Subject: make storage versioning per-project + few other refactors --- .../src/services/storage/migrations/v2-to-v3.ts | 38 +++++----------------- 1 file changed, 8 insertions(+), 30 deletions(-) (limited to 'apps/web/src/services/storage/migrations/v2-to-v3.ts') diff --git a/apps/web/src/services/storage/migrations/v2-to-v3.ts b/apps/web/src/services/storage/migrations/v2-to-v3.ts index 7c52f79d..7b9c7fda 100644 --- a/apps/web/src/services/storage/migrations/v2-to-v3.ts +++ b/apps/web/src/services/storage/migrations/v2-to-v3.ts @@ -2,41 +2,19 @@ * Adds a "duration" field to each project's metadata */ -import { IndexedDBAdapter } from "@/services/storage/indexeddb-adapter"; import { StorageMigration } from "./base"; -import { getProjectId, transformProjectV2ToV3 } from "./transformers/v2-to-v3"; +import type { ProjectRecord } from "./transformers/types"; +import { transformProjectV2ToV3 } from "./transformers/v2-to-v3"; export class V2toV3Migration extends StorageMigration { from = 2; to = 3; - async run(): Promise { - const projectsAdapter = new IndexedDBAdapter( - "video-editor-projects", - "projects", - 1, - ); - const projects = await projectsAdapter.getAll(); - - for (const project of projects) { - if (typeof project !== "object" || project === null) { - continue; - } - - const result = transformProjectV2ToV3({ - project: project as Record, - }); - - if (result.skipped) { - continue; - } - - const projectId = getProjectId({ project: result.project }); - if (!projectId) { - continue; - } - - await projectsAdapter.set(projectId, result.project); - } + async transform(project: ProjectRecord): Promise<{ + project: ProjectRecord; + skipped: boolean; + reason?: string; + }> { + return transformProjectV2ToV3({ project }); } } -- cgit v1.3.1