53 lines
1.7 KiB
JavaScript
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
|