axiodb
Version:
The Pure JavaScript Alternative to SQLite. Embedded NoSQL database for Node.js with MongoDB-style queries, zero native dependencies, built-in InMemoryCache, and web GUI. Perfect for desktop apps, CLI tools, and embedded systems. No compilation, no platfor
57 lines (56 loc) • 1.68 kB
TypeScript
import { TCPRequest, TCPResponse } from '../types/protocol.types';
import { CommandType } from '../types/command.types';
/**
* Message Framing - Handles encoding/decoding of TCP messages
* Protocol: [4-byte length (uint32 BE)][JSON payload]
*/
export declare class MessageFramer {
/**
* Encode message to binary format: [length][JSON]
*/
static encode(message: TCPRequest | TCPResponse): Buffer;
/**
* Decode buffer to message object
* Note: Caller must ensure buffer has complete message
*/
static decode(buffer: Buffer): TCPRequest | TCPResponse;
}
/**
* Message Buffer - Accumulates incoming data and extracts complete messages
*/
export declare class MessageBuffer {
private buffer;
/**
* Add chunk to buffer and extract complete messages
*/
addChunk(chunk: Buffer): (TCPRequest | TCPResponse)[];
/**
* Clear buffer (useful for error recovery)
*/
clear(): void;
/**
* Get current buffer size
*/
get size(): number;
}
/**
* Message Validator - Validates request structure and parameters
*/
export declare class MessageValidator {
/**
* Validate TCPRequest structure
*/
static validateRequest(request: any): TCPRequest;
/**
* Validate command-specific parameters
*/
static validateParams(command: CommandType, params: any): void;
/**
* Create error response
*/
static createErrorResponse(requestId: string, statusCode: number, message: string, error?: string): TCPResponse;
/**
* Create success response
*/
static createSuccessResponse(requestId: string, message: string, data?: any): TCPResponse;
}