Projektstart
This commit is contained in:
74
backend/node_modules/ioredis/built/utils/argumentParsers.js
generated
vendored
Normal file
74
backend/node_modules/ioredis/built/utils/argumentParsers.js
generated
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseBlockOption = exports.parseSecondsArgument = void 0;
|
||||
/**
|
||||
* Parses a command parameter to a number.
|
||||
* @param arg - The command parameter to parse (number, string, or Buffer)
|
||||
* @returns The parsed number, or undefined if parsing fails or arg is undefined
|
||||
*/
|
||||
const parseNumberArgument = (arg) => {
|
||||
if (typeof arg === "number") {
|
||||
return arg;
|
||||
}
|
||||
if (Buffer.isBuffer(arg)) {
|
||||
return parseNumberArgument(arg.toString());
|
||||
}
|
||||
if (typeof arg === "string") {
|
||||
const value = Number(arg);
|
||||
return Number.isFinite(value) ? value : undefined;
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
/**
|
||||
* Parses a command parameter to a string.
|
||||
* @param arg - The command parameter to parse (string or Buffer)
|
||||
* @returns The parsed string, or undefined if arg is not a string/Buffer or is undefined
|
||||
*/
|
||||
const parseStringArgument = (arg) => {
|
||||
if (typeof arg === "string") {
|
||||
return arg;
|
||||
}
|
||||
if (Buffer.isBuffer(arg)) {
|
||||
return arg.toString();
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
/**
|
||||
* Parses a command parameter as seconds and converts to milliseconds.
|
||||
* @param arg - The command parameter representing seconds
|
||||
* @returns The value in milliseconds, 0 if value is <= 0, or undefined if parsing fails
|
||||
*/
|
||||
const parseSecondsArgument = (arg) => {
|
||||
const value = parseNumberArgument(arg);
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (value <= 0) {
|
||||
return 0;
|
||||
}
|
||||
return value * 1000;
|
||||
};
|
||||
exports.parseSecondsArgument = parseSecondsArgument;
|
||||
/**
|
||||
* Parses the BLOCK option from Redis command arguments (e.g., XREAD, XREADGROUP).
|
||||
* @param args - Array of command parameters to search for the BLOCK option
|
||||
* @returns The block duration in milliseconds, 0 if duration is <= 0,
|
||||
* null if BLOCK option is not found, or undefined if BLOCK is found but duration is invalid
|
||||
*/
|
||||
const parseBlockOption = (args) => {
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
const token = parseStringArgument(args[i]);
|
||||
if (token && token.toLowerCase() === "block") {
|
||||
const duration = parseNumberArgument(args[i + 1]);
|
||||
if (duration === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (duration <= 0) {
|
||||
return 0;
|
||||
}
|
||||
return duration;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
exports.parseBlockOption = parseBlockOption;
|
||||
Reference in New Issue
Block a user