web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

parse.ts (996B)


      1 import { KIND_PROFILE, type RadrootsProfile, type RadrootsProfileType } from "@radroots/events-bindings";
      2 import type { NostrEvent } from "../../types/nostr.js";
      3 import { parse_nostr_event_basis } from "../lib.js";
      4 import type { NostrEventBasis } from "../subscription.js";
      5 import { parse_profile_type_tag } from "./tags.js";
      6 
      7 export type RadrootsProfileNostrEvent = NostrEventBasis<typeof KIND_PROFILE> & {
      8     profile: RadrootsProfile;
      9     profile_type?: RadrootsProfileType;
     10 };
     11 
     12 export const parse_nostr_profile_event = (
     13     event: NostrEvent,
     14 ): RadrootsProfileNostrEvent | undefined => {
     15     const ev = parse_nostr_event_basis(event, KIND_PROFILE);
     16     if (!ev) return undefined;
     17     try {
     18         const parsed = JSON.parse(event.content);
     19         const profile = parsed as RadrootsProfile;
     20         const profile_type = parse_profile_type_tag(event.tags);
     21         return profile_type ? { ...ev, profile, profile_type } : { ...ev, profile };
     22     } catch {
     23         return undefined;
     24     }
     25 };