import { z } from "https://deno.land/x/zod@v3.22.4/mod.ts"; import { ParserOutput } from "../utils.ts"; export type MsgToClient = ParserOutput; export function message_to_client_parser() { return ping_response_parser() .or(display_parser()); } export type MsgPingResponse = ParserOutput; export function ping_response_parser() { return z.object({ kind: z.literal("ping_response"), content: z.object({ message: z.string(), }), }); } export type MsgDisplay = ParserOutput; export function display_parser() { return z.object({ kind: z.literal("display"), content: z.object({ raw: z.string(), }), }); } function char_parser() { return z.string().length(1); }