nats
Version:
Node.js client for NATS, a lightweight, high-performance cloud native messaging system
56 lines (55 loc) • 2.94 kB
TypeScript
import type { ConsumerOptsBuilder, Views } from "./types";
import { ConsumerAPI, ConsumerInfo, ConsumerInfoable, ConsumerOpts, Destroyable, JetStreamClient, JetStreamOptions, JetStreamPublishOptions, JetStreamPullSubscription, JetStreamSubscription, JetStreamSubscriptionOptions, JsMsg, Msg, NatsConnection, PubAck, PullOptions } from "./types";
import { BaseApiClient } from "./jsbaseclient_api";
import { TypedSubscription, TypedSubscriptionOptions } from "./typedsub";
import { IngestionFilterFn, QueuedIterator } from "./queued_iterator";
import { IdleHeartbeat } from "./idleheartbeat";
export interface JetStreamSubscriptionInfoable {
info: JetStreamSubscriptionInfo | null;
}
export declare class JetStreamClientImpl extends BaseApiClient implements JetStreamClient {
api: ConsumerAPI;
constructor(nc: NatsConnection, opts?: JetStreamOptions);
get apiPrefix(): string;
get views(): Views;
publish(subj: string, data?: Uint8Array, opts?: Partial<JetStreamPublishOptions>): Promise<PubAck>;
pull(stream: string, durable: string, expires?: number): Promise<JsMsg>;
fetch(stream: string, durable: string, opts?: Partial<PullOptions>): QueuedIterator<JsMsg>;
pullSubscribe(subject: string, opts?: ConsumerOptsBuilder | Partial<ConsumerOpts>): Promise<JetStreamPullSubscription>;
subscribe(subject: string, opts?: ConsumerOptsBuilder | Partial<ConsumerOpts>): Promise<JetStreamSubscription>;
_processOptions(subject: string, opts?: ConsumerOptsBuilder | Partial<ConsumerOpts>): Promise<JetStreamSubscriptionInfo>;
_buildTypedSubscriptionOpts(jsi: JetStreamSubscriptionInfo): TypedSubscriptionOptions<JsMsg>;
_maybeCreateConsumer(jsi: JetStreamSubscriptionInfo): Promise<void>;
static ingestionFn(ordered: boolean): IngestionFilterFn<JsMsg>;
}
export declare class JetStreamSubscriptionImpl extends TypedSubscription<JsMsg> implements JetStreamSubscriptionInfoable, Destroyable, ConsumerInfoable {
js: BaseApiClient;
monitor: IdleHeartbeat | null;
constructor(js: BaseApiClient, subject: string, opts: JetStreamSubscriptionOptions);
set info(info: JetStreamSubscriptionInfo | null);
get info(): JetStreamSubscriptionInfo | null;
_resetOrderedConsumer(sseq: number): void;
_maybeSetupHbMonitoring(): void;
_setupHbMonitoring(millis: number, cancelAfter?: number): void;
_checkHbOrderConsumer(msg: Msg): boolean;
_checkOrderedConsumer(jm: JsMsg): boolean;
destroy(): Promise<void>;
consumerInfo(): Promise<ConsumerInfo>;
}
interface JetStreamSubscriptionInfo extends ConsumerOpts {
api: BaseApiClient;
last: ConsumerInfo;
attached: boolean;
deliver: string;
bind: boolean;
"ordered_consumer_sequence": {
"delivery_seq": number;
"stream_seq": number;
};
"flow_control": {
"heartbeat_count": number;
"fc_count": number;
"consumer_restarts": number;
};
}
export {};