This commit is contained in:
ennmichael 2023-02-28 21:18:47 +01:00
parent 53327c641c
commit c1665825da
No known key found for this signature in database
GPG Key ID: 6E6E183431A26AF7

View File

@ -197,50 +197,31 @@ function parseEvent(raw: RawEvent): Event {
pubkey, pubkey,
createdAt, createdAt,
} }
return (
parseSetMetadataEvent(raw, event) ??
parseTextNodeEvent(raw, event) ??
parseUnknownEvent(raw, event)
)
}
function parseSetMetadataEvent( if (raw.kind === EventKind.SetMetadata) {
raw: RawEvent, const userMetadata = parseJson(raw.content)
event: EventCommon if (
): SetMetadataEvent | undefined { typeof userMetadata["name"] !== "string" ||
if (raw.kind !== EventKind.SetMetadata) { typeof userMetadata["about"] !== "string" ||
return undefined typeof userMetadata["picture"] !== "string"
) {
throw new ProtocolError(`invalid user metadata: ${userMetadata}`)
}
return {
...event,
kind: EventKind.SetMetadata,
userMetadata,
}
} }
const userMetadata = parseJson(raw.content)
if (
typeof userMetadata["name"] !== "string" ||
typeof userMetadata["about"] !== "string" ||
typeof userMetadata["picture"] !== "string"
) {
throw new ProtocolError(`invalid user metadata: ${userMetadata}`)
}
return {
...event,
kind: EventKind.SetMetadata,
userMetadata,
}
}
function parseTextNodeEvent( if (raw.kind === EventKind.TextNote) {
raw: RawEvent, return {
event: EventCommon ...event,
): TextNoteEvent | undefined { kind: EventKind.TextNote,
if (raw.kind !== EventKind.TextNote) { note: raw.content,
return undefined }
} }
return {
...event,
kind: EventKind.TextNote,
note: raw.content,
}
}
function parseUnknownEvent(raw: RawEvent, event: EventCommon): UnknownEvent {
return { return {
...event, ...event,
kind: raw.kind, kind: raw.kind,