MCPcopy Index your code
hub / github.com/cameri/nostream / handleMessage

Method handleMessage

src/handlers/event-message-handler.ts:55–129  ·  view source on GitHub ↗
(message: IncomingEventMessage)

Source from the content-addressed store, hash-verified

53 ) {}
54
55 public async handleMessage(message: IncomingEventMessage): Promise<void> {
56 let [, event] = message
57
58 event[ContextMetadataKey] = message[ContextMetadataKey]
59
60 let reason = await this.isEventValid(event)
61 if (reason) {
62 logger('event %s rejected: %s', event.id, reason)
63 this.webSocket.emit(WebSocketAdapterEvent.Message, createCommandResult(event.id, false, reason))
64 return
65 }
66
67 if (isExpiredEvent(event)) {
68 logger('event %s rejected: expired')
69 this.webSocket.emit(WebSocketAdapterEvent.Message, createCommandResult(event.id, false, 'event is expired'))
70 return
71 }
72
73 event = this.addExpirationMetadata(event)
74
75 if (await this.isRateLimited(event)) {
76 logger('event %s rejected: rate-limited')
77 this.webSocket.emit(
78 WebSocketAdapterEvent.Message,
79 createCommandResult(event.id, false, 'rate-limited: slow down'),
80 )
81 return
82 }
83
84 reason = this.canAcceptEvent(event)
85 if (reason) {
86 logger('event %s rejected: %s', event.id, reason)
87 this.webSocket.emit(WebSocketAdapterEvent.Message, createCommandResult(event.id, false, reason))
88 return
89 }
90
91 reason = await this.isBlockedByRequestToVanish(event)
92 if (reason) {
93 logger('event %s rejected: %s', event.id, reason)
94 this.webSocket.emit(WebSocketAdapterEvent.Message, createCommandResult(event.id, false, reason))
95 return
96 }
97
98 reason = await this.isUserAdmitted(event)
99 if (reason) {
100 logger('event %s rejected: %s', event.id, reason)
101 this.webSocket.emit(WebSocketAdapterEvent.Message, createCommandResult(event.id, false, reason))
102 return
103 }
104
105 reason = await this.checkNip05Verification(event)
106 if (reason) {
107 logger('event %s rejected: %s', event.id, reason)
108 this.webSocket.emit(WebSocketAdapterEvent.Message, createCommandResult(event.id, false, reason))
109 return
110 }
111
112 const strategy = this.strategyFactory([event, this.webSocket])

Callers

nothing calls this directly

Calls 11

isEventValidMethod · 0.95
addExpirationMetadataMethod · 0.95
isRateLimitedMethod · 0.95
canAcceptEventMethod · 0.95
isUserAdmittedMethod · 0.95
processNip05MetadataMethod · 0.95
createCommandResultFunction · 0.90
isExpiredEventFunction · 0.90
executeMethod · 0.65

Tested by

no test coverage detected