From 1d41bc2711a7b0b0c7389cb04bc7d9cb9fa77149 Mon Sep 17 00:00:00 2001 From: Charlotte Som Date: Fri, 6 Jun 2025 11:24:50 +0100 Subject: [PATCH] use lexicon.ts for VideoRecord type --- .gitmodules | 3 ++ client/viewer.tsx | 16 +++++----- common/lexicons.ts | 75 ++++++++++++++++++++++++++++++++++++++++++++++ deno.json | 3 +- vendor/lexicon.ts | 1 + 5 files changed, 89 insertions(+), 9 deletions(-) create mode 100644 .gitmodules create mode 100644 common/lexicons.ts create mode 160000 vendor/lexicon.ts diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0bc4f67 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vendor/lexicon.ts"] + path = vendor/lexicon.ts + url = https://github.com/char/lexicon.ts.git diff --git a/client/viewer.tsx b/client/viewer.tsx index f74c250..2c6ecb5 100644 --- a/client/viewer.tsx +++ b/client/viewer.tsx @@ -1,13 +1,10 @@ +import type { Infer } from "@char/lexicon.ts"; +import type { VideoLexiconUniverse } from "../common/lexicons.ts"; + import { resolveDid, resolveHandle } from "../common/identity.ts"; import { VIDEO_PATTERN } from "../common/routes.ts"; -type BlobRef = { - $type: "blob"; - ref: { $link: string }; - mimeType?: string; - size?: number; -}; -type VideoRecord = { video: BlobRef; title?: string; description?: string }; +type VideoRecord = Infer; const fetchVideoRecord = async ( did: string, @@ -58,7 +55,10 @@ const main = async () => { const did = repo.startsWith("did:") ? repo : await resolveHandle(repo); const record = await fetchVideoRecord(did, rkey); - const videoURL = await resolveVideoURL(did, record.video.ref.$link); + const videoURL = await resolveVideoURL( + did, + "ref" in record.video ? record.video.ref.$link : record.video.cid + ); const video = (