summaryrefslogtreecommitdiff
path: root/apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-15 04:45:15 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-15 04:45:15 +0200
commit6312fc5b078689bc82c52fda9b7f92ee0a21d311 (patch)
tree692f81fb70eef0f257d62268bd81b4b3b08dce3f /apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts
parent2da93aa98f1b2ee5d7fac81ad7daa0f44ff902d2 (diff)
downloadopencut-6312fc5b078689bc82c52fda9b7f92ee0a21d311.tar.gz
fix: repair scene tracks broken by v23-to-v24 migration
Diffstat (limited to 'apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts')
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts17
1 files changed, 13 insertions, 4 deletions
diff --git a/apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts b/apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts
index 710d4dc1..736ca8dd 100644
--- a/apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts
+++ b/apps/web/src/services/storage/migrations/transformers/v23-to-v24.ts
@@ -51,9 +51,7 @@ function migrateScene({ scene }: { scene: unknown }): unknown {
}
const mainTrack = findMainTrack({ tracks: scene.tracks });
- if (!mainTrack) {
- return scene;
- }
+ const finalMainTrack = mainTrack ?? buildEmptyMainTrack();
return {
...scene,
@@ -65,7 +63,7 @@ function migrateScene({ scene }: { scene: unknown }): unknown {
(track): track is ProjectRecord =>
isRecord(track) && track.type !== "audio",
),
- main: migrateTrack({ track: mainTrack }),
+ main: migrateTrack({ track: finalMainTrack }),
audio: scene.tracks
.map((track) => migrateTrack({ track }))
.filter(
@@ -76,6 +74,17 @@ function migrateScene({ scene }: { scene: unknown }): unknown {
};
}
+function buildEmptyMainTrack(): ProjectRecord {
+ return {
+ id: crypto.randomUUID(),
+ name: "Main",
+ type: "video",
+ elements: [],
+ muted: false,
+ hidden: false,
+ };
+}
+
function findMainTrack({
tracks,
}: {