@hp4k1h5/terminordle
Version:
> multiplayer [wordle](https://www.powerlanguage.co.uk/wordle/) clone in your terminal
35 lines (29 loc) • 679 B
text/typescript
//@ts-strict
import {
WS,
ServerMessage,
ClientMessage,
ServerMsgType,
} from '../../lib/structs'
import { Log } from '../../util'
export function msg(cnx: WS, m: ClientMessage) {
cnx.send(JSON.stringify(m))
}
export function err(cnx: WS, err: string | Error, log: false | Log = false) {
if (err instanceof Error) {
err = err.toString()
}
log && log.log({ err })
}
export function validateMsg(cnx: WS, data: string) {
let message: ServerMessage
try {
message = JSON.parse(data)
} catch (e) {
throw 'bad json'
}
if (!message.type || !(message.type in ServerMsgType)) {
throw `bad message type ${message.type}`
}
return message
}