20 lines
665 B
TypeScript
20 lines
665 B
TypeScript
import {verifyEvent, TrustedEvent} from "@welshman/util"
|
|
import {AbstractAdapter} from "./adapter.js"
|
|
import {Repository} from "./repository.js"
|
|
import {Pool} from "./pool.js"
|
|
|
|
export type AdapterFactory = (url: string, context: NetContext) => AbstractAdapter
|
|
|
|
export type NetContext = {
|
|
isEventValid: (event: TrustedEvent, url: string) => boolean
|
|
isEventDeleted: (event: TrustedEvent, url: string) => boolean
|
|
pool?: Pool
|
|
repository?: Repository
|
|
getAdapter?: AdapterFactory
|
|
}
|
|
|
|
export const netContext: NetContext = {
|
|
isEventValid: (event, url) => verifyEvent(event),
|
|
isEventDeleted: (event, url) => netContext.repository?.isDeleted(event) ?? false,
|
|
}
|