feat(frontend): wire message TypeScript types

This commit is contained in:
meelstorm
2026-07-17 17:53:39 +00:00
committed by EugeneTes
parent 96468d9dde
commit c6075d88ca

33
Frontend/src/protocol.ts Normal file
View File

@@ -0,0 +1,33 @@
// Wire messages exchanged with the backend over WebSocket.
// Mirror of Backend/WireMessages.cs.
export interface CursorMessage {
type: 'cursor';
x: number;
y: number;
}
export interface InitFrame {
type: 'init';
world: [number, number];
}
export interface StateFrame {
type: 'state';
x: number;
y: number;
angle: number;
engine: number;
target: [number, number];
step: number;
}
export type ServerFrame = InitFrame | StateFrame;
export function isInit(frame: ServerFrame): frame is InitFrame {
return frame.type === 'init';
}
export function isState(frame: ServerFrame): frame is StateFrame {
return frame.type === 'state';
}