diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-02-05 12:53:56 +0100 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-02-05 12:53:56 +0100 |
| commit | 2257ca2e6f9f8834880ea9bab4355c168ee6c33b (patch) | |
| tree | f2ead774beda94d95fb771bc3eb16972fb08468a /apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts | |
| parent | 490fc170c0705703728a889cbc35a04ca41ae7eb (diff) | |
| download | opencut-2257ca2e6f9f8834880ea9bab4355c168ee6c33b.tar.gz | |
make storage versioning per-project + few other refactors
Diffstat (limited to 'apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts')
| -rw-r--r-- | apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts b/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts index b4ed5a9f..0e5ffbf7 100644 --- a/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts +++ b/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts @@ -15,6 +15,7 @@ import type { VideoElement, } from "@/types/timeline"; import type { MigrationResult, ProjectRecord } from "./types"; +import { getProjectId, isRecord } from "./utils"; interface LegacyTimelineData { tracks: unknown[]; @@ -51,10 +52,8 @@ interface LegacyMediaTrack { export interface TransformV1ToV2Options { loadMediaAsset?: ({ - projectId, mediaId, }: { - projectId: string; mediaId: string; }) => Promise<MediaAssetData | null>; } @@ -91,10 +90,8 @@ async function migrateProject({ project: ProjectRecord; projectId: string; loadMediaAsset?: ({ - projectId, mediaId, }: { - projectId: string; mediaId: string; }) => Promise<MediaAssetData | null>; }): Promise<ProjectRecord> { @@ -261,10 +258,8 @@ async function transformTracks({ tracks: unknown[]; projectId: string; loadMediaAsset?: ({ - projectId, mediaId, }: { - projectId: string; mediaId: string; }) => Promise<MediaAssetData | null>; }): Promise<TimelineTrack[]> { @@ -318,10 +313,8 @@ async function transformMediaTrack({ track: LegacyMediaTrack; projectId: string; loadMediaAsset?: ({ - projectId, mediaId, }: { - projectId: string; mediaId: string; }) => Promise<MediaAssetData | null>; isMain: boolean; @@ -342,7 +335,7 @@ async function transformMediaTrack({ let mediaType: "video" | "image" = "video"; if (loadMediaAsset) { - const mediaAsset = await loadMediaAsset({ projectId, mediaId }); + const mediaAsset = await loadMediaAsset({ mediaId }); if (mediaAsset) { mediaType = mediaAsset.type === "image" ? "image" : "video"; } @@ -543,28 +536,7 @@ function transformAudioTrack({ }; } -export function getProjectId({ - project, -}: { - project: ProjectRecord; -}): string | null { - const idValue = project.id; - if (typeof idValue === "string" && idValue.length > 0) { - return idValue; - } - - const metadataValue = project.metadata; - if (!isRecord(metadataValue)) { - return null; - } - - const metadataId = metadataValue.id; - if (typeof metadataId === "string" && metadataId.length > 0) { - return metadataId; - } - - return null; -} +export { getProjectId } from "./utils"; function getCurrentSceneId({ value, @@ -772,7 +744,3 @@ function isV2Project({ project }: { project: ProjectRecord }): boolean { return isRecord(project.metadata) && isRecord(project.settings); } - -function isRecord(value: unknown): value is ProjectRecord { - return typeof value === "object" && value !== null; -} |
