(
type: K,
payload: z.input<TMessageCatalog[K]>
)
| 157 | } |
| 158 | |
| 159 | public async send<K extends keyof TMessageCatalog>( |
| 160 | type: K, |
| 161 | payload: z.input<TMessageCatalog[K]> |
| 162 | ) { |
| 163 | const schema = this.#schema[type]; |
| 164 | |
| 165 | if (!schema) { |
| 166 | throw new Error(`Unknown message type: ${type as string}`); |
| 167 | } |
| 168 | |
| 169 | const parsedPayload = schema.safeParse(payload); |
| 170 | |
| 171 | if (!parsedPayload.success) { |
| 172 | throw new ZodSchemaParsedError(parsedPayload.error, payload); |
| 173 | } |
| 174 | |
| 175 | await this.#sender({ type, payload, version: "v1" }); |
| 176 | } |
| 177 | |
| 178 | public async forwardMessage(message: unknown) { |
| 179 | const parsedMessage = ZodMessageSchema.safeParse(message); |
no outgoing calls
no test coverage detected