summaryrefslogtreecommitdiff
path: root/apps/web/src/services/storage/migrations/v2-to-v3.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-02-05 12:53:56 +0100
committerMaze Winther <mazewinther@gmail.com>2026-02-05 12:53:56 +0100
commit2257ca2e6f9f8834880ea9bab4355c168ee6c33b (patch)
treef2ead774beda94d95fb771bc3eb16972fb08468a /apps/web/src/services/storage/migrations/v2-to-v3.ts
parent490fc170c0705703728a889cbc35a04ca41ae7eb (diff)
downloadopencut-2257ca2e6f9f8834880ea9bab4355c168ee6c33b.tar.gz
make storage versioning per-project + few other refactors
Diffstat (limited to 'apps/web/src/services/storage/migrations/v2-to-v3.ts')
-rw-r--r--apps/web/src/services/storage/migrations/v2-to-v3.ts38
1 files changed, 8 insertions, 30 deletions
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<void> {
- const projectsAdapter = new IndexedDBAdapter<unknown>(
- "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<string, unknown>,
- });
-
- 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 });
}
}