UNPKG

@nostr-dev-kit/ndk

Version:

NDK - Nostr Development Kit

49 lines (40 loc) 1.24 kB
import type { NDKSigner } from "../signers/index.js"; import type { NostrEvent } from "./index.js"; import { NDKEvent } from "./index.js"; import { NDKKind } from "./kinds/index.js"; /** * NIP-18 reposting event. * * @param publish Whether to publish the reposted event automatically * @param signer The signer to use for signing the reposted event * @returns The reposted event */ export async function repost( this: NDKEvent, publish = true, signer?: NDKSigner ): Promise<NDKEvent> { if (!signer && publish) { if (!this.ndk) throw new Error("No NDK instance found"); this.ndk.assertSigner(); signer = this.ndk.signer; } const e = new NDKEvent(this.ndk, { kind: getKind(this), } as NostrEvent); if (!this.isProtected) e.content = JSON.stringify(this.rawEvent()); e.tag(this); // add a [ "k", kind ] for all non-kind:1 events if (this.kind !== NDKKind.Text) { e.tags.push(["k", `${this.kind}`]); } if (signer) await e.sign(signer); if (publish) await e.publish(); return e; } function getKind(event: NDKEvent): NDKKind { if (event.kind === 1) { return NDKKind.Repost; } return NDKKind.GenericRepost; }