| 75 | } |
| 76 | |
| 77 | private onMessage(data: unknown) { |
| 78 | if (typeof data !== "object") { |
| 79 | this.log(`[server#onMessage] invalid data -> ${JSON.stringify(data)}`) |
| 80 | return |
| 81 | } |
| 82 | |
| 83 | const result = ipcMessageSchema.safeParse(data) |
| 84 | |
| 85 | if (!result.success) { |
| 86 | this.log( |
| 87 | `[server#onMessage] invalid payload -> ${JSON.stringify(result.error.issues)} -> ${JSON.stringify(data)}`, |
| 88 | ) |
| 89 | |
| 90 | return |
| 91 | } |
| 92 | |
| 93 | const payload = result.data |
| 94 | |
| 95 | if (payload.origin === IpcOrigin.Client) { |
| 96 | switch (payload.type) { |
| 97 | case IpcMessageType.TaskCommand: |
| 98 | this.emit(IpcMessageType.TaskCommand, payload.clientId, payload.data) |
| 99 | break |
| 100 | default: |
| 101 | this.log(`[server#onMessage] unhandled payload: ${JSON.stringify(payload)}`) |
| 102 | break |
| 103 | } |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | private log(...args: unknown[]) { |
| 108 | this._log(...args) |