Skip to content

penpenpng/nip07-awaiter

Repository files navigation

nip07-awaiter

nip07-awaiter provides a few utilities to detect initialization of NIP-07 interface (window.nostr).

Installation

npm install nip07-awaiter

or

<script type="module" src="https://cdn.jsdelivr.net/npm/nip07-awaiter@latest/dist/index.mjs">

Usage

waitNostr()

Return a promise. It is to be resolved as window.nostr when it is installed or as soon as possible thereafter. If window.nostr is not installed after waiting the given time, it is to be resolved as undefined.

import { waitNostr } from "nip07-awaiter";

// It will be resolved as `window.nostr` or `undefined` within 1 sec.
const nostrOrUndefined = await waitNostr(1000);

If needed, you can pass a AbortSignal. When aborted waitNostr() rejects and return the reason.

const controller = new AbortController();
const { signal } = controller;

waitNostr(10 * 1000, { signal });

getNostr()

getNostr() return synchronously NIP-07 interface if exists.

import { getNostr } from "nip07-awaiter";

const pubkey = await getNostr()?.getPublicKey();

isNostr()

isNostr() is a type gurad function. Return true if the given value is a NIP-07 extension.

import { isNostr } from "nip07-awaiter";

if (isNostr(window.nostr)) {
  console.log(await window.nostr.getPublicKey());
}

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published