@valkey/client
Version:
The source code and documentation for this package are in the main [node-redis](https://github.com/redis/node-redis) repo.
53 lines (52 loc) • 1.71 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformArguments = exports.ClientKillFilters = void 0;
var ClientKillFilters;
(function (ClientKillFilters) {
ClientKillFilters["ADDRESS"] = "ADDR";
ClientKillFilters["LOCAL_ADDRESS"] = "LADDR";
ClientKillFilters["ID"] = "ID";
ClientKillFilters["TYPE"] = "TYPE";
ClientKillFilters["USER"] = "USER";
ClientKillFilters["SKIP_ME"] = "SKIPME";
})(ClientKillFilters || (exports.ClientKillFilters = ClientKillFilters = {}));
function transformArguments(filters) {
const args = ["CLIENT", "KILL"];
if (Array.isArray(filters)) {
for (const filter of filters) {
pushFilter(args, filter);
}
}
else {
pushFilter(args, filters);
}
return args;
}
exports.transformArguments = transformArguments;
function pushFilter(args, filter) {
if (filter === ClientKillFilters.SKIP_ME) {
args.push("SKIPME");
return;
}
args.push(filter.filter);
switch (filter.filter) {
case ClientKillFilters.ADDRESS:
args.push(filter.address);
break;
case ClientKillFilters.LOCAL_ADDRESS:
args.push(filter.localAddress);
break;
case ClientKillFilters.ID:
args.push(typeof filter.id === "number" ? filter.id.toString() : filter.id);
break;
case ClientKillFilters.TYPE:
args.push(filter.type);
break;
case ClientKillFilters.USER:
args.push(filter.username);
break;
case ClientKillFilters.SKIP_ME:
args.push(filter.skipMe ? "yes" : "no");
break;
}
}
;