Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/danielroe/roe.dev. This is the code and content for my personal website, built in Nuxt. roe.dev
Something went wrong. Try again.
TypeScript
12345678910111213141516171819202122232425262728293031323334353637import type { TalkGroupRecord, TalkRecord } from './records.ts'import type { Talk, TalkGroup } from './talks.ts'
/** Extract the rkey from an `at://did/collection/rkey` URI. */export function rkeyFromUri (uri: string): string { const i = uri.lastIndexOf('/') return i === -1 ? uri : uri.slice(i + 1)}
export interface PdsTalkInput { uri: string value: TalkRecord}
export interface PdsTalkGroupInput { uri: string value: TalkGroupRecord}
export function toTalk (input: PdsTalkInput, group?: PdsTalkGroupInput): Talk { const { $type, createdAt, endDate, location, image, title, group: _strongRef, ...passthrough } = input.value return { ...passthrough, _id: rkeyFromUri(input.uri), title: title ?? '', ...(group ? { group: toTalkGroup(group) } : {}), }}
function toTalkGroup (input: PdsTalkGroupInput): TalkGroup { const { $type, createdAt, ...passthrough } = input.value return { ...passthrough, _id: rkeyFromUri(input.uri), }}