MCPcopy Create free account
hub / github.com/cameri/nostream / publishEvent

Function publishEvent

test/integration/features/helpers.ts:102–123  ·  view source on GitHub ↗
(ws: WebSocket, event: Event)

Source from the content-addressed store, hash-verified

100}
101
102export async function publishEvent(ws: WebSocket, event: Event): Promise<CommandResult> {
103 return new Promise<CommandResult>((resolve, reject) => {
104 const observable = streams.get(ws) as Observable<OutgoingMessage>
105
106 const sub = observable.subscribe((message: OutgoingMessage) => {
107 if (message[0] === MessageType.OK && message[1] === event.id) {
108 sub.unsubscribe()
109 resolve(message)
110 } else if (message[0] === MessageType.NOTICE) {
111 sub.unsubscribe()
112 reject(new Error(message[1]))
113 }
114 })
115
116 ws.send(JSON.stringify(['EVENT', event]), (err) => {
117 if (err) {
118 sub.unsubscribe()
119 reject(err)
120 }
121 })
122 })
123}
124
125export async function sendEvent(ws: WebSocket, event: Event, successful = true) {
126 const result = await publishEvent(ws, event)

Callers 2

sendEventFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected