summaryrefslogtreecommitdiff
path: root/apps/web/src/services/storage/migrations/transformers/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/transformers/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/transformers/v2-to-v3.ts')
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts28
1 files changed, 2 insertions, 26 deletions
diff --git a/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts b/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts
index 33656109..094b8bd8 100644
--- a/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts
+++ b/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts
@@ -1,6 +1,7 @@
import { getProjectDurationFromScenes } from "@/lib/scenes";
import type { TScene } from "@/types/timeline";
import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
export function transformProjectV2ToV3({
project,
@@ -33,28 +34,7 @@ export function transformProjectV2ToV3({
return { project: migratedProject, skipped: false };
}
-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 getScenes({ project }: { project: ProjectRecord }): TScene[] {
const scenesValue = project.scenes;
@@ -75,7 +55,3 @@ function isV3Project({ project }: { project: ProjectRecord }): boolean {
isRecord(project.metadata) && typeof project.metadata.duration === "number"
);
}
-
-function isRecord(value: unknown): value is ProjectRecord {
- return typeof value === "object" && value !== null;
-}