Files
smartsocket/ts/interfaces/message.ts

68 lines
1.7 KiB
TypeScript

/**
* Message types for the smartsocket protocol
*/
export type TMessageType =
| 'authRequest' // Server requests authentication from client
| 'auth' // Client provides authentication data
| 'authResponse' // Server responds to authentication
| 'serverReady' // Server signals it's fully ready
| 'function' // Function call request
| 'functionResponse' // Function call response
| 'tagUpdate'; // Tag store synchronization
/**
* Base message interface for all smartsocket messages
*/
export interface ISocketMessage<T = unknown> {
type: TMessageType;
id?: string; // For request/response correlation
payload: T;
}
/**
* Authentication request payload (server -> client)
*/
export interface IAuthRequestPayload {
serverAlias: string;
}
/**
* Authentication data payload (client -> server)
*/
export interface IAuthPayload {
alias: string;
}
/**
* Authentication response payload (server -> client)
*/
export interface IAuthResponsePayload {
success: boolean;
error?: string;
}
/**
* Function call payload
*/
export interface IFunctionCallPayload<T = unknown> {
funcName: string;
funcData: T;
}
/**
* Tag update payload
*/
export interface ITagUpdatePayload {
tags: Record<string, unknown>;
}
/**
* Helper type for creating typed messages
*/
export type TAuthRequestMessage = ISocketMessage<IAuthRequestPayload>;
export type TAuthMessage = ISocketMessage<IAuthPayload>;
export type TAuthResponseMessage = ISocketMessage<IAuthResponsePayload>;
export type TFunctionMessage = ISocketMessage<IFunctionCallPayload>;
export type TFunctionResponseMessage = ISocketMessage<IFunctionCallPayload>;
export type TTagUpdateMessage = ISocketMessage<ITagUpdatePayload>;