added cmd queue

This commit is contained in:
Egge 2024-04-14 12:05:49 +02:00
parent b765b3c030
commit 963e628466
No known key found for this signature in database
GPG Key ID: E70A8B1DE70D63B6

29
07.md
View File

@ -24,6 +24,35 @@ async window.nostr.nip44.encrypt(pubkey, plaintext): string // returns ciphertex
async window.nostr.nip44.decrypt(pubkey, ciphertext): string // takes ciphertext as specified in nip-44 async window.nostr.nip44.decrypt(pubkey, ciphertext): string // takes ciphertext as specified in nip-44
``` ```
## Command Queue
In order to avoid race conditions the object SHOULD have a `cmd` property.
This object is defined as follows
```ts
window.nostr.cmd: (() => void)[]
```
Browsers or extensions SHOULD invoke all callbacks queued once it has finished loading.
After that it should shadow the `push` method on `cmd`
to immediately invoke subsequent queues
This allows consumers to queue up calls to the NIP-07 providers even before
it is present.
### Examples
Queue a command
```js
window.nostr = window.nostr || { cmd: [] };
window.nostr.cmd.push(() => {
const pk = window.nostr.getPublicKey();
// do something with pk
});
```
### Implementation ### Implementation
See https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions. See https://github.com/aljazceru/awesome-nostr#nip-07-browser-extensions.