UNPKG

jsplanet

Version:

A controller for Trackmania 2020 dedicated server.

19 lines (18 loc) 810 B
import { z } from "zod"; declare enum MessageType { MethodCall = "MethodCall", MethodResponse = "MethodResponse" } interface ParsedMethodCall<MethodName, T> { methodName: MethodName; params: T; } type ParsedParameter = boolean | Buffer | Date | number | ParsedParameter[] | string | { [key: string]: ParsedParameter; }; declare function parser<T extends Record<string, z.Schema>>(type: MessageType.MethodCall, response: string, schemas: T): { [MethodName in keyof T]: ParsedMethodCall<MethodName, z.infer<T[MethodName]>>; }[keyof T]; declare function parser<T>(type: MessageType.MethodResponse, response: string, schema: z.Schema<T>): T; declare function serializer(type: MessageType, name: string, ...parameters: ParsedParameter[]): string; export { MessageType, parser, serializer };