summaryrefslogtreecommitdiff
path: root/apps/web/src/services/storage/migrations/v0-to-v1.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/v0-to-v1.ts
parent490fc170c0705703728a889cbc35a04ca41ae7eb (diff)
downloadopencut-2257ca2e6f9f8834880ea9bab4355c168ee6c33b.tar.gz
make storage versioning per-project + few other refactors
Diffstat (limited to 'apps/web/src/services/storage/migrations/v0-to-v1.ts')
-rw-r--r--apps/web/src/services/storage/migrations/v0-to-v1.ts38
1 files changed, 8 insertions, 30 deletions
diff --git a/apps/web/src/services/storage/migrations/v0-to-v1.ts b/apps/web/src/services/storage/migrations/v0-to-v1.ts
index e183ddf2..a2225c76 100644
--- a/apps/web/src/services/storage/migrations/v0-to-v1.ts
+++ b/apps/web/src/services/storage/migrations/v0-to-v1.ts
@@ -4,41 +4,19 @@
* Sets currentSceneId to the new scene's id
*/
-import { IndexedDBAdapter } from "@/services/storage/indexeddb-adapter";
import { StorageMigration } from "./base";
-import { getProjectId, transformProjectV0ToV1 } from "./transformers/v0-to-v1";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV0ToV1 } from "./transformers/v0-to-v1";
export class V0toV1Migration extends StorageMigration {
from = 0;
to = 1;
- 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 = transformProjectV0ToV1({
- 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 transformProjectV0ToV1({ project });
}
}