lib.ts (1930B)
1 import { 2 KIND_LIST_SET_APP_CURATION, 3 KIND_LIST_SET_BOOKMARK, 4 KIND_LIST_SET_CALENDAR, 5 KIND_LIST_SET_CURATION, 6 KIND_LIST_SET_EMOJI, 7 KIND_LIST_SET_FOLLOW, 8 KIND_LIST_SET_GENERIC, 9 KIND_LIST_SET_INTEREST, 10 KIND_LIST_SET_KIND_MUTE, 11 KIND_LIST_SET_MEDIA_STARTER_PACK, 12 KIND_LIST_SET_PICTURE, 13 KIND_LIST_SET_RELEASE_ARTIFACT, 14 KIND_LIST_SET_RELAY, 15 KIND_LIST_SET_STARTER_PACK, 16 KIND_LIST_SET_VIDEO, 17 type RadrootsListSet, 18 } from "@radroots/events-bindings"; 19 import type { NostrEventFigure, NostrSignedEvent } from "../../types/nostr.js"; 20 import { nostr_event_create } from "../lib.js"; 21 import { tags_list_set } from "./tags.js"; 22 23 export const NIP51_LIST_SET_KINDS = [ 24 KIND_LIST_SET_FOLLOW, 25 KIND_LIST_SET_GENERIC, 26 KIND_LIST_SET_RELAY, 27 KIND_LIST_SET_BOOKMARK, 28 KIND_LIST_SET_CURATION, 29 KIND_LIST_SET_VIDEO, 30 KIND_LIST_SET_PICTURE, 31 KIND_LIST_SET_KIND_MUTE, 32 KIND_LIST_SET_INTEREST, 33 KIND_LIST_SET_EMOJI, 34 KIND_LIST_SET_RELEASE_ARTIFACT, 35 KIND_LIST_SET_APP_CURATION, 36 KIND_LIST_SET_CALENDAR, 37 KIND_LIST_SET_STARTER_PACK, 38 KIND_LIST_SET_MEDIA_STARTER_PACK, 39 ] as const; 40 41 export type KindRadrootsListSet = typeof NIP51_LIST_SET_KINDS[number]; 42 43 export const is_nip51_list_set_kind = (kind: number): kind is KindRadrootsListSet => 44 NIP51_LIST_SET_KINDS.some(value => value === kind); 45 46 export const nostr_event_list_set = async ( 47 opts: NostrEventFigure<{ data: RadrootsListSet; kind: KindRadrootsListSet }>, 48 ): Promise<NostrSignedEvent | undefined> => { 49 const { data, kind } = opts; 50 if (!is_nip51_list_set_kind(kind)) return undefined; 51 const tags = await tags_list_set(data); 52 return nostr_event_create({ 53 ...opts, 54 basis: { 55 kind, 56 content: data.content, 57 tags, 58 }, 59 }); 60 }; 61 62 export { list_private_entries_json, list_private_entries_parse } from "../list/lib.js";