28 lines
712 B
TypeScript
28 lines
712 B
TypeScript
import { z } from "https://deno.land/x/zod@v3.22.4/mod.ts";
|
|
import { ParserOutput } from "../utils.ts";
|
|
|
|
export type MsgToClient = ParserOutput<typeof message_to_client_parser>;
|
|
export function message_to_client_parser() {
|
|
return ping_response_parser()
|
|
.or(display_parser());
|
|
}
|
|
|
|
export type MsgPingResponse = ParserOutput<typeof ping_response_parser>;
|
|
export function ping_response_parser() {
|
|
return z.object({
|
|
kind: z.literal("ping_response"),
|
|
content: z.object({
|
|
message: z.string(),
|
|
}),
|
|
});
|
|
}
|
|
|
|
export type MsgDisplay = ParserOutput<typeof display_parser>;
|
|
export function display_parser() {
|
|
return z.object({
|
|
kind: z.literal("display"),
|
|
content: z.object({
|
|
raw: z.string(),
|
|
}),
|
|
});
|
|
}
|