UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

127 lines 2.98 kB
import { EventAdapter, EventEnvelope, EventHandler, SubscribeOptions, SubscriptionHandle, AdapterStats, AdapterCapabilities, PublishResult, HealthStatus } from "../types"; interface NATSConfig { servers?: string | string[]; user?: string; pass?: string; token?: string; nkey?: string; jwt?: string; seed?: string; timeout?: number; reconnect?: boolean; maxReconnectAttempts?: number; reconnectTimeWait?: number; jetstream?: { enabled: boolean; domain?: string; apiPrefix?: string; timeout?: number; }; } export declare class NATSEventAdapter implements EventAdapter { readonly name = "nats"; readonly version = "1.0.0"; readonly capabilities: AdapterCapabilities; private client; private jetStream; private jetStreamManager; private config; private connected; private subscriptions; private stats; constructor(config?: NATSConfig); /** * Connect to NATS server */ connect(): Promise<void>; /** * Disconnect from NATS */ disconnect(): Promise<void>; /** * Check if connected */ isConnected(): boolean; /** * Publish event to NATS/JetStream */ publish(subject: string, event: EventEnvelope): Promise<PublishResult>; /** * Subscribe to events */ subscribe(subject: string, handler: EventHandler, options?: SubscribeOptions): Promise<SubscriptionHandle>; /** * Unsubscribe from events */ unsubscribe(handle: SubscriptionHandle): Promise<void>; /** * Acknowledge message */ ack(event: EventEnvelope): Promise<void>; /** * Negative acknowledge message */ nack(event: EventEnvelope, requeue?: boolean): Promise<void>; /** * Flush pending messages */ flush(): Promise<void>; /** * Get adapter statistics */ getStats(): Promise<AdapterStats>; /** * Health check */ healthCheck(): Promise<HealthStatus>; /** * Create JetStream consumer */ private createJetStreamConsumer; /** * Handle incoming message */ private handleMessage; /** * Ensure stream exists */ private ensureStream; /** * Get stream name from subject */ private getStreamName; /** * Create NATS headers */ private createHeaders; /** * Serialize event for transmission */ private serialize; /** * Deserialize received message */ private deserialize; /** * Setup connection event handlers */ private setupEventHandlers; /** * Try to import NATS package */ private importNATS; /** * Update statistics */ private updateStats; /** * Reset statistics */ private resetStats; /** * Generate unique ID */ private generateId; } export default NATSEventAdapter; //# sourceMappingURL=nats.d.ts.map