Use Zod for message validation at transport layer

This commit is contained in:
Justin Spahr-Summers 2024-10-02 15:06:30 +01:00
commit 3ea255f088
No known key found for this signature in database
GPG key ID: E78498BF3C053CA7

View file

@ -1,5 +1,4 @@
import { JSONRPCMessage } from "../types.js";
import { validateMessage } from "./message.js";
import { JSONRPCMessage, JSONRPCMessageSchema } from "../types.js";
/**
* Buffers a continuous stdio stream into discrete JSON-RPC messages.
@ -32,9 +31,7 @@ export class ReadBuffer {
}
export function deserializeMessage(line: string): JSONRPCMessage {
const message = JSON.parse(line) as JSONRPCMessage;
validateMessage(message);
return message;
return JSONRPCMessageSchema.parse(JSON.parse(line));
}
export function serializeMessage(message: JSONRPCMessage): string {