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

Function messageHandlerFactory

src/factories/message-handler-factory.ts:24–54  ·  view source on GitHub ↗
(
    eventRepository: IEventRepository,
    userRepository: IUserRepository,
    nip05VerificationRepository: INip05VerificationRepository,
  )

Source from the content-addressed store, hash-verified

22
23export const messageHandlerFactory =
24 (
25 eventRepository: IEventRepository,
26 userRepository: IUserRepository,
27 nip05VerificationRepository: INip05VerificationRepository,
28 ) =>
29 ([message, adapter]: [IncomingMessage, IWebSocketAdapter]) => {
30 switch (message[0]) {
31 case MessageType.EVENT: {
32 return new EventMessageHandler(
33 adapter,
34 eventStrategyFactory(eventRepository, userRepository),
35 eventRepository,
36 userRepository,
37 createSettings,
38 nip05VerificationRepository,
39 getCache(),
40 rateLimiterFactory,
41 )
42 }
43 case MessageType.REQ:
44 return new SubscribeMessageHandler(adapter, eventRepository, createSettings)
45 case MessageType.CLOSE:
46 return new UnsubscribeMessageHandler(adapter)
47 case MessageType.COUNT:
48 return new CountMessageHandler(adapter, eventRepository, createSettings)
49 case MessageType.AUTH:
50 return new AuthMessageHandler(adapter, createSettings)
51 default:
52 throw new Error(`Unknown message type: ${String(message[0]).substring(0, 64)}`)
53 }
54 }

Callers 2

webSocketAdapterFactoryFunction · 0.90

Calls 2

eventStrategyFactoryFunction · 0.90
getCacheFunction · 0.85

Tested by

no test coverage detected