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

53 lines
1.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
NOT_KEYED_COMMAND: true,
IS_READ_ONLY: true,
/**
* Controls server-assisted client side caching for the current connection
* @param parser - The Redis command parser
* @param mode - Whether to enable (true) or disable (false) tracking
* @param options - Optional configuration including REDIRECT, BCAST, PREFIX, OPTIN, OPTOUT, and NOLOOP options
*/
parseCommand(parser, mode, options) {
parser.push('CLIENT', 'TRACKING', mode ? 'ON' : 'OFF');
if (mode) {
if (options?.REDIRECT) {
parser.push('REDIRECT', options.REDIRECT.toString());
}
if (isBroadcast(options)) {
parser.push('BCAST');
if (options?.PREFIX) {
if (Array.isArray(options.PREFIX)) {
for (const prefix of options.PREFIX) {
parser.push('PREFIX', prefix);
}
}
else {
parser.push('PREFIX', options.PREFIX);
}
}
}
else if (isOptIn(options)) {
parser.push('OPTIN');
}
else if (isOptOut(options)) {
parser.push('OPTOUT');
}
if (options?.NOLOOP) {
parser.push('NOLOOP');
}
}
},
transformReply: undefined
};
function isBroadcast(options) {
return options?.BCAST === true;
}
function isOptIn(options) {
return options?.OPTIN === true;
}
function isOptOut(options) {
return options?.OPTOUT === true;
}
//# sourceMappingURL=CLIENT_TRACKING.js.map