You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-04 15:02:09 +03:00
* fix client info * add client list * fix key validation in transformClientInfoReply * fix issue with field in CLIENT LIST reply * clean code * fix multimem * fix qbufFree argvMem totMem multiMem Co-authored-by: Leibale <me@leibale.com>
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { RedisCommandArguments, RedisCommandArgument } from '.';
|
|
import { pushVerdictArguments } from './generic-transformers';
|
|
import { transformReply as transformClientInfoReply, ClientInfoReply } from './CLIENT_INFO';
|
|
|
|
interface ListFilterType {
|
|
TYPE: 'NORMAL' | 'MASTER' | 'REPLICA' | 'PUBSUB';
|
|
ID?: never;
|
|
}
|
|
|
|
interface ListFilterId {
|
|
ID: Array<RedisCommandArgument>;
|
|
TYPE?: never;
|
|
}
|
|
|
|
export type ListFilter = ListFilterType | ListFilterId;
|
|
|
|
export const IS_READ_ONLY = true;
|
|
|
|
export function transformArguments(filter?: ListFilter): RedisCommandArguments {
|
|
let args: RedisCommandArguments = ['CLIENT', 'LIST'];
|
|
|
|
if (filter) {
|
|
if (filter.TYPE !== undefined) {
|
|
args.push('TYPE', filter.TYPE);
|
|
} else {
|
|
args.push('ID');
|
|
args = pushVerdictArguments(args, filter.ID);
|
|
}
|
|
}
|
|
|
|
return args;
|
|
}
|
|
|
|
export function transformReply(rawReply: string): Array<ClientInfoReply> {
|
|
const split = rawReply.split('\n'),
|
|
length = split.length - 1,
|
|
reply: Array<ClientInfoReply> = [];
|
|
for (let i = 0; i < length; i++) {
|
|
reply.push(transformClientInfoReply(split[i]));
|
|
}
|
|
|
|
return reply;
|
|
}
|