You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
/// <reference types="node" />
|
|
import { NetStream, CommandItem } from "./types";
|
|
import Deque = require("denque");
|
|
import { EventEmitter } from "events";
|
|
import SubscriptionSet from "./SubscriptionSet";
|
|
export interface Condition {
|
|
select: number;
|
|
auth?: string | [string, string];
|
|
subscriber: false | SubscriptionSet;
|
|
}
|
|
export declare type FlushQueueOptions = {
|
|
offlineQueue?: boolean;
|
|
commandQueue?: boolean;
|
|
};
|
|
export interface DataHandledable extends EventEmitter {
|
|
stream: NetStream;
|
|
status: string;
|
|
condition: Condition | null;
|
|
commandQueue: Deque<CommandItem>;
|
|
disconnect(reconnect: boolean): void;
|
|
recoverFromFatalError(commandError: Error, err: Error, options: FlushQueueOptions): void;
|
|
handleReconnection(err: Error, item: CommandItem): void;
|
|
}
|
|
interface ParserOptions {
|
|
stringNumbers: boolean;
|
|
}
|
|
export default class DataHandler {
|
|
private redis;
|
|
constructor(redis: DataHandledable, parserOptions: ParserOptions);
|
|
private returnFatalError;
|
|
private returnError;
|
|
private returnReply;
|
|
private handleSubscriberReply;
|
|
private handleMonitorReply;
|
|
private shiftCommand;
|
|
}
|
|
export {};
|