36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import type {Event} from 'nostr-tools'
|
|
import {matchFilters, hasValidSignature} from '@coracle.social/util'
|
|
import type {Filter} from '@coracle.social/util'
|
|
import {Pool} from "./Pool"
|
|
import {Executor} from "./Executor"
|
|
import {Relays} from "./target/Relays"
|
|
import type {Subscription} from "./Subscribe"
|
|
|
|
export const defaultPool = new Pool()
|
|
|
|
export const defaultGetExecutor = (relays: string[]) =>
|
|
new Executor(new Relays(relays.map((relay: string) => NetworkContext.pool.get(relay))))
|
|
|
|
const defaultOnEvent = (url: string, event: Event) => null
|
|
|
|
const defaultOnAuth = (url: string, challenge: string) => null
|
|
|
|
const defaultOnOk = (url: string, id: string, ok: boolean, message: string) => null
|
|
|
|
const defaultIsDeleted = (url: string, event: Event) => false
|
|
|
|
const defaultHasValidSignature = (url: string, event: Event) => hasValidSignature(event)
|
|
|
|
const defaultMatchFilters = (url: string, filters: Filter[], event: Event) => matchFilters(filters, event)
|
|
|
|
export const NetworkContext = {
|
|
pool: defaultPool,
|
|
getExecutor: defaultGetExecutor,
|
|
onEvent: defaultOnEvent,
|
|
onAuth: defaultOnAuth,
|
|
onOk: defaultOnOk,
|
|
isDeleted: defaultIsDeleted,
|
|
hasValidSignature: defaultHasValidSignature,
|
|
matchFilters: defaultMatchFilters,
|
|
}
|