(
eventRepository: IEventRepository,
userRepository: IUserRepository,
nip05VerificationRepository: INip05VerificationRepository,
)
| 22 | |
| 23 | export 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 | } |
no test coverage detected