Files
micro-service-api/node_modules/@redis/client/dist/lib/commands/ROLE.d.ts
2025-11-11 12:36:06 +07:00

82 lines
2.6 KiB
TypeScript

import { CommandParser } from '../client/parser';
import { BlobStringReply, NumberReply, ArrayReply, TuplesReply, UnwrapReply } from '../RESP/types';
/**
* Role information returned for a Redis master
*/
type MasterRole = [
role: BlobStringReply<'master'>,
replicationOffest: NumberReply,
replicas: ArrayReply<TuplesReply<[host: BlobStringReply, port: BlobStringReply, replicationOffest: BlobStringReply]>>
];
/**
* Role information returned for a Redis slave
*/
type SlaveRole = [
role: BlobStringReply<'slave'>,
masterHost: BlobStringReply,
masterPort: NumberReply,
state: BlobStringReply<'connect' | 'connecting' | 'sync' | 'connected'>,
dataReceived: NumberReply
];
/**
* Role information returned for a Redis sentinel
*/
type SentinelRole = [
role: BlobStringReply<'sentinel'>,
masterNames: ArrayReply<BlobStringReply>
];
/**
* Combined role type for Redis instance role information
*/
type Role = TuplesReply<MasterRole | SlaveRole | SentinelRole>;
declare const _default: {
readonly NOT_KEYED_COMMAND: true;
readonly IS_READ_ONLY: true;
/**
* Constructs the ROLE command
*
* @param parser - The command parser
* @see https://redis.io/commands/role/
*/
readonly parseCommand: (this: void, parser: CommandParser) => void;
/**
* Transforms the ROLE reply into a structured object
*
* @param reply - The raw reply from Redis
* @returns Structured object representing role information
*/
readonly transformReply: (this: void, reply: UnwrapReply<Role>) => {
role: BlobStringReply<"master">;
replicationOffest: NumberReply<number>;
replicas: {
host: BlobStringReply<string>;
port: number;
replicationOffest: number;
}[];
master?: undefined;
state?: undefined;
dataReceived?: undefined;
masterNames?: undefined;
} | {
role: BlobStringReply<"slave">;
master: {
host: BlobStringReply<string>;
port: NumberReply<number>;
};
state: BlobStringReply<"connect" | "connecting" | "sync" | "connected">;
dataReceived: NumberReply<number>;
replicationOffest?: undefined;
replicas?: undefined;
masterNames?: undefined;
} | {
role: BlobStringReply<"sentinel">;
masterNames: ArrayReply<BlobStringReply<string>>;
replicationOffest?: undefined;
replicas?: undefined;
master?: undefined;
state?: undefined;
dataReceived?: undefined;
} | undefined;
};
export default _default;
//# sourceMappingURL=ROLE.d.ts.map