web_lib

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

parse.ts (873B)


      1 import { KIND_FARM, type RadrootsFarm } from "@radroots/events-bindings";
      2 import type { NostrEvent } from "../../types/nostr.js";
      3 import { get_event_tag, parse_nostr_event_basis } from "../lib.js";
      4 import type { NostrEventBasis } from "../subscription.js";
      5 
      6 export type RadrootsFarmNostrEvent = NostrEventBasis<typeof KIND_FARM> & { farm: RadrootsFarm };
      7 
      8 export const parse_nostr_farm_event = (
      9     event: NostrEvent,
     10 ): RadrootsFarmNostrEvent | undefined => {
     11     const ev = parse_nostr_event_basis(event, KIND_FARM);
     12     if (!ev) return undefined;
     13     const d_tag = get_event_tag(event.tags, "d");
     14     if (!d_tag) return undefined;
     15     try {
     16         const parsed = JSON.parse(event.content);
     17         const farm = parsed as RadrootsFarm;
     18         if (farm.d_tag !== d_tag) return undefined;
     19         return { ...ev, farm };
     20     } catch {
     21         return undefined;
     22     }
     23 };