mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-08 16:28:49 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39ea47660d | ||
|
|
8071e2f4fa | ||
|
|
cc2250da1f | ||
|
|
c37d10bb9d | ||
|
|
97e28fdf9a |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nostr-tools",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"description": "Tools for making a Nostr client.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -9,7 +9,7 @@ const {
|
||||
signEvent
|
||||
} = require('./lib/nostr.cjs')
|
||||
|
||||
let relay = relayInit('wss://nostr-pub.semisol.dev/')
|
||||
let relay = relayInit('wss://nostr-dev.wellorder.net/')
|
||||
|
||||
beforeAll(() => {
|
||||
relay.connect()
|
||||
|
||||
20
relay.ts
20
relay.ts
@@ -3,15 +3,17 @@
|
||||
import {Event, verifySignature, validateEvent} from './event'
|
||||
import {Filter, matchFilters} from './filter'
|
||||
|
||||
type RelayEvent = 'connect' | 'disconnect' | 'error' | 'notice'
|
||||
|
||||
export type Relay = {
|
||||
url: string
|
||||
status: number
|
||||
connect: () => void
|
||||
close: () => void
|
||||
sub: (filters: Filter[], opts: SubscriptionOptions) => Sub
|
||||
connect: () => Promise<void>
|
||||
close: () => Promise<void>
|
||||
sub: (filters: Filter[], opts?: SubscriptionOptions) => Sub
|
||||
publish: (event: Event) => Pub
|
||||
on: (type: 'connect' | 'disconnect' | 'notice', cb: any) => void
|
||||
off: (type: 'connect' | 'disconnect' | 'notice', cb: any) => void
|
||||
on: (type: RelayEvent, cb: any) => void
|
||||
off: (type: RelayEvent, cb: any) => void
|
||||
}
|
||||
export type Pub = {
|
||||
on: (type: 'ok' | 'seen' | 'failed', cb: any) => void
|
||||
@@ -73,7 +75,7 @@ export function relayInit(url: string): Relay {
|
||||
}
|
||||
ws.onclose = async () => {
|
||||
listeners.disconnect.forEach(cb => cb())
|
||||
resolveClose()
|
||||
resolveClose && resolveClose()
|
||||
}
|
||||
|
||||
ws.onmessage = async e => {
|
||||
@@ -185,7 +187,7 @@ export function relayInit(url: string): Relay {
|
||||
url,
|
||||
sub,
|
||||
on: (
|
||||
type: 'connect' | 'disconnect' | 'error' | 'notice',
|
||||
type: RelayEvent,
|
||||
cb: any
|
||||
): void => {
|
||||
listeners[type].push(cb)
|
||||
@@ -194,7 +196,7 @@ export function relayInit(url: string): Relay {
|
||||
}
|
||||
},
|
||||
off: (
|
||||
type: 'connect' | 'disconnect' | 'error' | 'notice',
|
||||
type: RelayEvent,
|
||||
cb: any
|
||||
): void => {
|
||||
let index = listeners[type].indexOf(cb)
|
||||
@@ -258,7 +260,7 @@ export function relayInit(url: string): Relay {
|
||||
connect,
|
||||
close(): Promise<void> {
|
||||
ws.close()
|
||||
return new Promise(resolve => {
|
||||
return new Promise<void>(resolve => {
|
||||
resolveClose = resolve
|
||||
})
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user