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/utils.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/utils.ts')
| -rw-r--r-- | apps/web/src/services/storage/migrations/transformers/utils.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/web/src/services/storage/migrations/transformers/utils.ts b/apps/web/src/services/storage/migrations/transformers/utils.ts new file mode 100644 index 00000000..108489bf --- /dev/null +++ b/apps/web/src/services/storage/migrations/transformers/utils.ts @@ -0,0 +1,28 @@ +import type { ProjectRecord } from "./types"; + +export function isRecord(value: unknown): value is ProjectRecord { + return typeof value === "object" && value !== null; +} + +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; +} |
