You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Add Redis 8.2 New Stream Commands (#3029)
* chore: update Redis version from 8.2-RC1-pre to 8.2-rc1 * feat: implement XDELEX command for Redis 8.2 * feat: implement XACKDEL command for Redis 8.2 * refactor: create shared stream deletion types for Redis 8.2 commands * feat: add Redis 8.2 deletion policies to XTRIM command * feat: add Redis 8.2 deletion policies to XADD commands * fix: correct XDELEX command method name and test parameter
This commit is contained in:
42
packages/client/lib/commands/XDELEX.ts
Normal file
42
packages/client/lib/commands/XDELEX.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { CommandParser } from "../client/parser";
|
||||
import { RedisArgument, ArrayReply, Command } from "../RESP/types";
|
||||
import {
|
||||
StreamDeletionPolicy,
|
||||
StreamDeletionReplyCode,
|
||||
} from "./common-stream.types";
|
||||
import { RedisVariadicArgument } from "./generic-transformers";
|
||||
|
||||
/**
|
||||
* Deletes one or multiple entries from the stream
|
||||
*/
|
||||
export default {
|
||||
IS_READ_ONLY: false,
|
||||
/**
|
||||
* Constructs the XDELEX command to delete one or multiple entries from the stream
|
||||
*
|
||||
* @param parser - The command parser
|
||||
* @param key - The stream key
|
||||
* @param id - One or more message IDs to delete
|
||||
* @param policy - Policy to apply when deleting entries (optional, defaults to KEEPREF)
|
||||
* @returns Array of integers: -1 (not found), 1 (deleted), 2 (dangling refs)
|
||||
* @see https://redis.io/commands/xdelex/
|
||||
*/
|
||||
parseCommand(
|
||||
parser: CommandParser,
|
||||
key: RedisArgument,
|
||||
id: RedisVariadicArgument,
|
||||
policy?: StreamDeletionPolicy
|
||||
) {
|
||||
parser.push("XDELEX");
|
||||
parser.pushKey(key);
|
||||
|
||||
if (policy) {
|
||||
parser.push(policy);
|
||||
}
|
||||
|
||||
parser.push("IDS");
|
||||
parser.pushVariadicWithLength(id);
|
||||
},
|
||||
transformReply:
|
||||
undefined as unknown as () => ArrayReply<StreamDeletionReplyCode>,
|
||||
} as const satisfies Command;
|
Reference in New Issue
Block a user