You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-03 04:01:40 +03:00
* (docs) bloom: add jsdocs for all commands * (docs) json: add jsdocs * (docs) search: add jsdocs for all commands * (docs) jsdocs for std commands * (docs) jsdoc comments to time series commands
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import { CommandParser } from '../client/parser';
|
|
import { RedisArgument, SimpleStringReply, Command } from '../RESP/types';
|
|
|
|
/**
|
|
* Options for creating a consumer group
|
|
*
|
|
* @property MKSTREAM - Create the stream if it doesn't exist
|
|
* @property ENTRIESREAD - Set the number of entries that were read in this consumer group (Redis 7.0+)
|
|
*/
|
|
export interface XGroupCreateOptions {
|
|
MKSTREAM?: boolean;
|
|
/**
|
|
* added in 7.0
|
|
*/
|
|
ENTRIESREAD?: number;
|
|
}
|
|
|
|
export default {
|
|
IS_READ_ONLY: false,
|
|
/**
|
|
* Constructs the XGROUP CREATE command to create a consumer group for a stream
|
|
*
|
|
* @param parser - The command parser
|
|
* @param key - The stream key
|
|
* @param group - Name of the consumer group
|
|
* @param id - ID of the last delivered item in the stream ('$' for last item, '0' for all items)
|
|
* @param options - Additional options for group creation
|
|
* @returns 'OK' if successful
|
|
* @see https://redis.io/commands/xgroup-create/
|
|
*/
|
|
parseCommand(
|
|
parser: CommandParser,
|
|
key: RedisArgument,
|
|
group: RedisArgument,
|
|
id: RedisArgument,
|
|
options?: XGroupCreateOptions
|
|
) {
|
|
parser.push('XGROUP', 'CREATE');
|
|
parser.pushKey(key);
|
|
parser.push(group, id);
|
|
|
|
if (options?.MKSTREAM) {
|
|
parser.push('MKSTREAM');
|
|
}
|
|
|
|
if (options?.ENTRIESREAD) {
|
|
parser.push('ENTRIESREAD', options.ENTRIESREAD.toString());
|
|
}
|
|
},
|
|
transformReply: undefined as unknown as () => SimpleStringReply<'OK'>
|
|
} as const satisfies Command;
|
|
|