import type { Maybe, Shape } from "./wrpcSchema"; type WrpcRoomCommandData = unknown, Output extends Maybe = unknown> = { input?: Input; output?: Output; }; type WrpcRoomCommandDefinition = unknown, Output extends Maybe = unknown> = { input: Input extends Shape ? Input : undefined; output: Output extends Shape ? Output : undefined; }; export type WrpcRoomCommand< Input extends Maybe = unknown, Output extends Maybe = unknown, > = WrpcRoomCommandDefinition; export type WrpcRoomCommands> = unknown> = Commands extends Record ? { commands: Commands; } : { commands?: Commands; }; export const defineWrpcRoomCommand = = unknown, Output extends Maybe = unknown>( wrpcRoomCommandData: WrpcRoomCommandData, ): WrpcRoomCommand => ({ input: wrpcRoomCommandData.input as Input extends Shape ? Input : undefined, output: wrpcRoomCommandData.output as Output extends Shape ? Output : undefined, });