diff --git a/bin/index.js b/bin/index.js index 5cb23d81..4096bd19 100644 --- a/bin/index.js +++ b/bin/index.js @@ -1,9 +1,18 @@ const returnTypes = require("./returnTypes"); const argumentTypes = require("./argumentTypes"); +const sortArguments = require("./sortArguments"); const typeMaps = require("./typeMaps"); const overrides = require("./overrides"); const { getCommanderInterface } = require("@ioredis/interface-generator"); +const HEADER = `/** + * This file is generated by @ioredis/interface-generator. + * Don't edit it manually. Instead, run \`npm run generate\` to update + * this file. + */ + +`; + const ignoredCommands = ["monitor", "multi"]; const commands = require("@ioredis/commands") .list.filter((name) => !ignoredCommands.includes(name)) @@ -24,6 +33,7 @@ async function main() { overrides, returnTypes, argumentTypes, + sortArguments, typeMaps: typeMaps, ignoredBufferVariant: [ "incrbyfloat", @@ -39,7 +49,7 @@ async function main() { fs.writeFileSync( path.join(__dirname, "..", "lib/utils/RedisCommander.ts"), - template.replace("////", () => interface) + HEADER + template.replace("////", () => interface) ); } diff --git a/bin/overrides.js b/bin/overrides.js index 8ef4e6c5..79e9a9f4 100644 --- a/bin/overrides.js +++ b/bin/overrides.js @@ -11,7 +11,7 @@ module.exports = { overwrite: true, defs: [ "$1(key: RedisKey, callback?: Callback>): Result, Context>", - "$1Buffer(key: RedisKey, callback?: Callback<[field: Buffer, value: Buffer][]>): Result<[field: Buffer, value: Buffer][], Context>", + "$1Buffer(key: RedisKey, callback?: Callback>): Result, Context>", ], }, mset: msetOverrides, diff --git a/bin/sortArguments.js b/bin/sortArguments.js new file mode 100644 index 00000000..910e259d --- /dev/null +++ b/bin/sortArguments.js @@ -0,0 +1,17 @@ +module.exports = { + set: (args) => { + const sorted = args.sort((a, b) => { + const order = ["key", "value", "expiration", "condition", "get"]; + const indexA = order.indexOf(a.name); + const indexB = order.indexOf(b.name); + if (indexA === -1) { + throw new Error('Invalid argument name: "' + a.name + '"'); + } + if (indexB === -1) { + throw new Error('Invalid argument name: "' + b.name + '"'); + } + return indexA - indexB; + }); + return sorted; + }, +}; diff --git a/bin/template.ts b/bin/template.ts index 82c3a22b..c06094fd 100644 --- a/bin/template.ts +++ b/bin/template.ts @@ -11,7 +11,8 @@ export interface ResultTypes { pipeline: ChainableCommander; } -export interface ChainableCommander extends RedisCommander<{ type: "pipeline" }> { +export interface ChainableCommander + extends RedisCommander<{ type: "pipeline" }> { length: number; } diff --git a/lib/utils/RedisCommander.ts b/lib/utils/RedisCommander.ts index eec27983..4f127db3 100644 --- a/lib/utils/RedisCommander.ts +++ b/lib/utils/RedisCommander.ts @@ -1,3 +1,9 @@ +/** + * This file is generated by @ioredis/interface-generator. + * Don't edit it manually. Instead, run `npm run generate` to update + * this file. + */ + import { Callback } from "../types"; export type RedisKey = string | Buffer; @@ -11,7 +17,8 @@ export interface ResultTypes { pipeline: ChainableCommander; } -export interface ChainableCommander extends RedisCommander<{ type: "pipeline" }> { +export interface ChainableCommander + extends RedisCommander<{ type: "pipeline" }> { length: number; } @@ -412,52 +419,17 @@ interface RedisCommander { */ bitfield( key: RedisKey, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - overflow: "OVERFLOW", - wrap: "WRAP", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - overflow: "OVERFLOW", - sat: "SAT", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - overflow: "OVERFLOW", - fail: "FAIL", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetIncrementToken: "INCRBY", - encoding: string | Buffer, - offset: number | string, - increment: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetIncrementToken: "INCRBY", + encodingOffsetToken: "GET", encoding: string | Buffer, offset: number | string, - increment: number | string, - overflow: "OVERFLOW", - wrap: "WRAP", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetIncrementToken: "INCRBY", + encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, - increment: number | string, - overflow: "OVERFLOW", - sat: "SAT", + value: number | string, callback?: Callback ): Result; bitfield( @@ -466,300 +438,66 @@ interface RedisCommander { encoding: string | Buffer, offset: number | string, increment: number | string, - overflow: "OVERFLOW", - fail: "FAIL", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetValueToken: "SET", - encoding: string | Buffer, - offset: number | string, - value: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetValueToken: "SET", - encoding: string | Buffer, - offset: number | string, - value: number | string, overflow: "OVERFLOW", wrap: "WRAP", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, value: number | string, - overflow: "OVERFLOW", - sat: "SAT", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetValueToken: "SET", - encoding: string | Buffer, - offset: number | string, - value: number | string, overflow: "OVERFLOW", - fail: "FAIL", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetValueToken: "SET", - encoding: string | Buffer, - offset: number | string, - value: number | string, + wrap: "WRAP", encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, - increment: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, - value: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, increment: number | string, - overflow: "OVERFLOW", - wrap: "WRAP", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetValueToken: "SET", - encoding: string | Buffer, - offset: number | string, - value: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, - increment: number | string, overflow: "OVERFLOW", sat: "SAT", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, value: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, - increment: number | string, - overflow: "OVERFLOW", - fail: "FAIL", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - overflow: "OVERFLOW", - wrap: "WRAP", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, overflow: "OVERFLOW", sat: "SAT", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - overflow: "OVERFLOW", - fail: "FAIL", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, - increment: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", encoding: string | Buffer, offset: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, increment: number | string, - overflow: "OVERFLOW", - wrap: "WRAP", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, - increment: number | string, - overflow: "OVERFLOW", - sat: "SAT", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding1: string | Buffer, - offset1: number | string, - increment: number | string, overflow: "OVERFLOW", fail: "FAIL", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", encoding: string | Buffer, offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, value: number | string, - overflow: "OVERFLOW", - wrap: "WRAP", callback?: Callback ): Result; bitfield( key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, - overflow: "OVERFLOW", - sat: "SAT", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, overflow: "OVERFLOW", fail: "FAIL", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, encodingOffsetIncrementToken: "INCRBY", - encoding2: string | Buffer, - offset2: number | string, - increment: number | string, - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", encoding: string | Buffer, offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding2: string | Buffer, - offset2: number | string, increment: number | string, - overflow: "OVERFLOW", - wrap: "WRAP", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding2: string | Buffer, - offset2: number | string, - increment: number | string, - overflow: "OVERFLOW", - sat: "SAT", - callback?: Callback - ): Result; - bitfield( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - encodingOffsetValueToken: "SET", - encoding1: string | Buffer, - offset1: number | string, - value: number | string, - encodingOffsetIncrementToken: "INCRBY", - encoding2: string | Buffer, - offset2: number | string, - increment: number | string, - overflow: "OVERFLOW", - fail: "FAIL", callback?: Callback ): Result; @@ -767,14 +505,22 @@ interface RedisCommander { * Perform arbitrary bitfield integer operations on strings. Read-only variant of BITFIELD * - _group_: bitmap * - _complexity_: O(1) for each subcommand specified - * - _since_: 6.2.0 + * - _since_: 6.0.0 */ bitfield_ro( - key: RedisKey, - encodingOffsetToken: "GET", - encoding: string | Buffer, - offset: number | string, - callback?: Callback + ...args: [ + key: RedisKey, + encodingOffsetToken: "GET", + ...encodingOffsets: (string | Buffer | number)[], + callback: Callback + ] + ): Result; + bitfield_ro( + ...args: [ + key: RedisKey, + encodingOffsetToken: "GET", + ...encodingOffsets: (string | Buffer | number)[] + ] ): Result; /** @@ -2500,6 +2246,17 @@ interface RedisCommander { callback?: Callback<"OK"> ): Result<"OK", Context>; + /** + * Get array of cluster slots to node mappings + * - _group_: cluster + * - _complexity_: O(N) where N is the total number of cluster nodes + * - _since_: 7.0.0 + */ + cluster( + subcommand: "SHARDS", + callback?: Callback + ): Result; + /** * List replica nodes of the specified master node * - _group_: cluster @@ -2585,7 +2342,7 @@ interface RedisCommander { ): Result; /** - * Extract keys given a full Redis command + * Extract keys and access flags given a full Redis command * - _group_: server * - _complexity_: O(N) where N is the number of arguments to the command * - _since_: 7.0.0 @@ -3431,69 +3188,23 @@ interface RedisCommander { */ function( subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, - functionCode: string | Buffer, - callback?: Callback - ): Result; - functionBuffer( - subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, - functionCode: string | Buffer, - callback?: Callback - ): Result; - function( - subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, - libraryDescriptionToken: "DESCRIPTION", - libraryDescription: string | Buffer, - functionCode: string | Buffer, - callback?: Callback - ): Result; - functionBuffer( - subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, - libraryDescriptionToken: "DESCRIPTION", - libraryDescription: string | Buffer, - functionCode: string | Buffer, - callback?: Callback - ): Result; - function( - subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, - replace: "REPLACE", functionCode: string | Buffer, callback?: Callback ): Result; functionBuffer( subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, - replace: "REPLACE", functionCode: string | Buffer, callback?: Callback ): Result; function( subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, replace: "REPLACE", - libraryDescriptionToken: "DESCRIPTION", - libraryDescription: string | Buffer, functionCode: string | Buffer, callback?: Callback ): Result; functionBuffer( subcommand: "LOAD", - engineName: string | Buffer, - libraryName: string | Buffer, replace: "REPLACE", - libraryDescriptionToken: "DESCRIPTION", - libraryDescription: string | Buffer, functionCode: string | Buffer, callback?: Callback ): Result; @@ -4188,8 +3899,8 @@ interface RedisCommander { ): Result, Context>; hgetallBuffer( key: RedisKey, - callback?: Callback<[field: Buffer, value: Buffer][]> - ): Result<[field: Buffer, value: Buffer][], Context>; + callback?: Callback> + ): Result, Context>; /** * Increment the integer value of a hash field by the given number @@ -5422,7 +5133,7 @@ interface RedisCommander { migrate( ...args: [ host: string | Buffer, - port: string | Buffer, + port: number | string, ...args: RedisValue[], callback: Callback<"OK"> ] @@ -5430,7 +5141,7 @@ interface RedisCommander { migrate( ...args: [ host: string | Buffer, - port: string | Buffer, + port: number | string, ...args: RedisValue[] ] ): Result<"OK", Context>; @@ -5484,6 +5195,69 @@ interface RedisCommander { ] ): Result; + /** + * Load a module with extended parameters + * - _group_: server + * - _complexity_: O(1) + * - _since_: 7.0.0 + */ + module( + subcommand: "LOADEX", + path: string | Buffer, + callback?: Callback + ): Result; + module( + ...args: [ + subcommand: "LOADEX", + path: string | Buffer, + argsToken: "ARGS", + ...args: (string | Buffer | number)[], + callback: Callback + ] + ): Result; + module( + ...args: [ + subcommand: "LOADEX", + path: string | Buffer, + argsToken: "ARGS", + ...args: (string | Buffer | number)[] + ] + ): Result; + module( + ...args: [ + subcommand: "LOADEX", + path: string | Buffer, + configsToken: "CONFIG", + ...configs: (string | Buffer | number)[], + callback: Callback + ] + ): Result; + module( + ...args: [ + subcommand: "LOADEX", + path: string | Buffer, + configsToken: "CONFIG", + ...configs: (string | Buffer | number)[] + ] + ): Result; + module( + ...args: [ + subcommand: "LOADEX", + path: string | Buffer, + configsToken: "CONFIG", + ...args: RedisValue[], + callback: Callback + ] + ): Result; + module( + ...args: [ + subcommand: "LOADEX", + path: string | Buffer, + configsToken: "CONFIG", + ...args: RedisValue[] + ] + ): Result; + /** * Unload a module * - _group_: server @@ -5739,7 +5513,11 @@ interface RedisCommander { * - _complexity_: N/A * - _since_: 2.8.9 */ - pfdebug(callback?: Callback): Result; + pfdebug( + subcommand: string | Buffer, + key: RedisKey, + callback?: Callback + ): Result; /** * Merge N different HyperLogLogs into a single one. @@ -5823,7 +5601,7 @@ interface RedisCommander { * - _since_: 2.8.0 */ psync( - replicationid: number | string, + replicationid: string | Buffer | number, offset: number | string, callback?: Callback ): Result; @@ -5860,7 +5638,7 @@ interface RedisCommander { ): Result; pubsub( subcommand: "CHANNELS", - pattern: string | Buffer, + pattern: string, callback?: Callback ): Result; @@ -5910,7 +5688,7 @@ interface RedisCommander { /** * List active shard channels * - _group_: pubsub - * - _complexity_: O(N) where N is the number of active shard channels, and assuming constant time pattern matching (relatively short channels). + * - _complexity_: O(N) where N is the number of active shard channels, and assuming constant time pattern matching (relatively short shard channels). * - _since_: 7.0.0 */ pubsub( @@ -5919,14 +5697,14 @@ interface RedisCommander { ): Result; pubsub( subcommand: "SHARDCHANNELS", - pattern: string | Buffer, + pattern: string, callback?: Callback ): Result; /** * Get the count of subscribers for shard channels * - _group_: pubsub - * - _complexity_: O(N) for the SHARDNUMSUB subcommand, where N is the number of requested channels + * - _complexity_: O(N) for the SHARDNUMSUB subcommand, where N is the number of requested shard channels * - _since_: 7.0.0 */ pubsub( @@ -5936,12 +5714,12 @@ interface RedisCommander { pubsub( ...args: [ subcommand: "SHARDNUMSUB", - ...channels: (string | Buffer)[], + ...shardchannels: (string | Buffer)[], callback: Callback ] ): Result; pubsub( - ...args: [subcommand: "SHARDNUMSUB", ...channels: (string | Buffer)[]] + ...args: [subcommand: "SHARDNUMSUB", ...shardchannels: (string | Buffer)[]] ): Result; /** @@ -6031,7 +5809,7 @@ interface RedisCommander { */ replicaof( host: string | Buffer, - port: string | Buffer, + port: number | string, callback?: Callback<"OK"> ): Result<"OK", Context>; @@ -6200,7 +5978,150 @@ interface RedisCommander { * - _complexity_: O(1) to create the new key and additional O(N*M) to reconstruct the serialized value, where N is the number of Redis objects composing the value and M their average size. For small string values the time complexity is thus O(1)+O(1*M) where M is small, so simply O(1). However for sorted set values the complexity is O(N*M*log(N)) because inserting values into sorted sets is O(log(N)). * - _since_: 3.0.0 */ - ["restore-asking"](callback?: Callback): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + secondsToken: "IDLETIME", + seconds: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + secondsToken: "IDLETIME", + seconds: number | string, + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + absttl: "ABSTTL", + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + absttl: "ABSTTL", + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + absttl: "ABSTTL", + secondsToken: "IDLETIME", + seconds: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + absttl: "ABSTTL", + secondsToken: "IDLETIME", + seconds: number | string, + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + secondsToken: "IDLETIME", + seconds: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + secondsToken: "IDLETIME", + seconds: number | string, + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + absttl: "ABSTTL", + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + absttl: "ABSTTL", + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + absttl: "ABSTTL", + secondsToken: "IDLETIME", + seconds: number | string, + callback?: Callback + ): Result; + ["restore-asking"]( + key: RedisKey, + ttl: number | string, + serializedValue: string | Buffer | number, + replace: "REPLACE", + absttl: "ABSTTL", + secondsToken: "IDLETIME", + seconds: number | string, + frequencyToken: "FREQ", + frequency: number | string, + callback?: Callback + ): Result; /** * Return the role of the instance in the context of replication @@ -7329,7 +7250,7 @@ interface RedisCommander { */ slaveof( host: string | Buffer, - port: string | Buffer, + port: number | string, callback?: Callback<"OK"> ): Result<"OK", Context>; @@ -7491,22 +7412,18 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], callback: Callback ] ): Result; sort_ro( - ...args: [ - key: RedisKey, - patternToken: "GET", - ...patterns: (string | Buffer)[] - ] + ...args: [key: RedisKey, patternToken: "GET", ...patterns: string[]] ): Result; sort_ro( ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], alpha: "ALPHA", callback: Callback ] @@ -7515,7 +7432,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], alpha: "ALPHA" ] ): Result; @@ -7523,7 +7440,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC", callback: Callback ] @@ -7532,7 +7449,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC" ] ): Result; @@ -7540,7 +7457,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC", alpha: "ALPHA", callback: Callback @@ -7550,7 +7467,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC", alpha: "ALPHA" ] @@ -7559,7 +7476,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC", callback: Callback ] @@ -7568,7 +7485,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC" ] ): Result; @@ -7576,7 +7493,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC", alpha: "ALPHA", callback: Callback @@ -7586,7 +7503,7 @@ interface RedisCommander { ...args: [ key: RedisKey, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC", alpha: "ALPHA" ] @@ -7647,7 +7564,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], callback: Callback ] ): Result; @@ -7658,7 +7575,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[] + ...patterns: string[] ] ): Result; sort_ro( @@ -7668,7 +7585,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], alpha: "ALPHA", callback: Callback ] @@ -7680,7 +7597,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], alpha: "ALPHA" ] ): Result; @@ -7691,7 +7608,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC", callback: Callback ] @@ -7703,7 +7620,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC" ] ): Result; @@ -7714,7 +7631,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC", alpha: "ALPHA", callback: Callback @@ -7727,7 +7644,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], asc: "ASC", alpha: "ALPHA" ] @@ -7739,7 +7656,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC", callback: Callback ] @@ -7751,7 +7668,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC" ] ): Result; @@ -7762,7 +7679,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC", alpha: "ALPHA", callback: Callback @@ -7775,7 +7692,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken: "GET", - ...patterns: (string | Buffer)[], + ...patterns: string[], desc: "DESC", alpha: "ALPHA" ] @@ -7829,7 +7746,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], callback: Callback ] ): Result; @@ -7839,7 +7756,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[] + ...pattern1s: string[] ] ): Result; sort_ro( @@ -7848,7 +7765,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], alpha: "ALPHA", callback: Callback ] @@ -7859,7 +7776,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], alpha: "ALPHA" ] ): Result; @@ -7869,7 +7786,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC", callback: Callback ] @@ -7880,7 +7797,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC" ] ): Result; @@ -7890,7 +7807,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC", alpha: "ALPHA", callback: Callback @@ -7902,7 +7819,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC", alpha: "ALPHA" ] @@ -7913,7 +7830,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC", callback: Callback ] @@ -7924,7 +7841,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC" ] ): Result; @@ -7934,7 +7851,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC", alpha: "ALPHA", callback: Callback @@ -7946,7 +7863,7 @@ interface RedisCommander { patternToken: "BY", pattern: string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC", alpha: "ALPHA" ] @@ -8021,7 +7938,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], callback: Callback ] ): Result; @@ -8034,7 +7951,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[] + ...pattern1s: string[] ] ): Result; sort_ro( @@ -8046,7 +7963,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], alpha: "ALPHA", callback: Callback ] @@ -8060,7 +7977,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], alpha: "ALPHA" ] ): Result; @@ -8073,7 +7990,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC", callback: Callback ] @@ -8087,7 +8004,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC" ] ): Result; @@ -8100,7 +8017,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC", alpha: "ALPHA", callback: Callback @@ -8115,7 +8032,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], asc: "ASC", alpha: "ALPHA" ] @@ -8129,7 +8046,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC", callback: Callback ] @@ -8143,7 +8060,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC" ] ): Result; @@ -8156,7 +8073,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC", alpha: "ALPHA", callback: Callback @@ -8171,7 +8088,7 @@ interface RedisCommander { offset: number | string, count: number | string, patternToken1: "GET", - ...pattern1s: (string | Buffer)[], + ...pattern1s: string[], desc: "DESC", alpha: "ALPHA" ] @@ -8209,7 +8126,7 @@ interface RedisCommander { * - _since_: 7.0.0 */ spublish( - channel: string | Buffer, + shardchannel: string | Buffer, message: string | Buffer, callback?: Callback ): Result; @@ -8336,10 +8253,13 @@ interface RedisCommander { * - _since_: 7.0.0 */ ssubscribe( - ...args: [...channels: (string | Buffer)[], callback: Callback] + ...args: [ + ...shardchannels: (string | Buffer)[], + callback: Callback + ] ): Result; ssubscribe( - ...args: [...channels: (string | Buffer)[]] + ...args: [...shardchannels: (string | Buffer)[]] ): Result; /** @@ -8429,15 +8349,18 @@ interface RedisCommander { /** * Stop listening for messages posted to the given shard channels * - _group_: pubsub - * - _complexity_: O(N) where N is the number of clients already subscribed to a channel. + * - _complexity_: O(N) where N is the number of clients already subscribed to a shard channel. * - _since_: 7.0.0 */ sunsubscribe(callback?: Callback): Result; sunsubscribe( - ...args: [...channels: (string | Buffer)[], callback: Callback] + ...args: [ + ...shardchannels: (string | Buffer)[], + callback: Callback + ] ): Result; sunsubscribe( - ...args: [...channels: (string | Buffer)[]] + ...args: [...shardchannels: (string | Buffer)[]] ): Result; /** diff --git a/package-lock.json b/package-lock.json index d12ce5ca..baff1978 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "standard-as-callback": "^2.1.0" }, "devDependencies": { - "@ioredis/interface-generator": "^1.2.1", + "@ioredis/interface-generator": "^1.3.0", "@semantic-release/changelog": "^6.0.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/git": "^10.0.1", @@ -530,9 +530,9 @@ "integrity": "sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg==" }, "node_modules/@ioredis/interface-generator": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@ioredis/interface-generator/-/interface-generator-1.2.1.tgz", - "integrity": "sha512-muIedHoRwxS3Du4xqgB1OlrKLI9Dp+ntQcCMxu85bXyL/b1GIeLVNkHVBEgQhDLw2f2EizodtpfonxPElJ1VUg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ioredis/interface-generator/-/interface-generator-1.3.0.tgz", + "integrity": "sha512-RHxuMEpkj8HwceAq8BTwgyAT/8Jnq9Eo7cFeDn3IN4bYpVmwBo/8dQFwvGORBBR1w3gJunqaa+61eVZvRen4Rw==", "dev": true, "dependencies": { "inflection": "^1.13.2", @@ -9724,9 +9724,9 @@ "integrity": "sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg==" }, "@ioredis/interface-generator": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@ioredis/interface-generator/-/interface-generator-1.2.1.tgz", - "integrity": "sha512-muIedHoRwxS3Du4xqgB1OlrKLI9Dp+ntQcCMxu85bXyL/b1GIeLVNkHVBEgQhDLw2f2EizodtpfonxPElJ1VUg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ioredis/interface-generator/-/interface-generator-1.3.0.tgz", + "integrity": "sha512-RHxuMEpkj8HwceAq8BTwgyAT/8Jnq9Eo7cFeDn3IN4bYpVmwBo/8dQFwvGORBBR1w3gJunqaa+61eVZvRen4Rw==", "dev": true, "requires": { "inflection": "^1.13.2", diff --git a/package.json b/package.json index f0e33e41..0deb3371 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "standard-as-callback": "^2.1.0" }, "devDependencies": { - "@ioredis/interface-generator": "^1.2.1", + "@ioredis/interface-generator": "^1.3.0", "@semantic-release/changelog": "^6.0.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/git": "^10.0.1", diff --git a/test/typing/commands.test-d.ts b/test/typing/commands.test-d.ts index 0a276a77..247e514f 100644 --- a/test/typing/commands.test-d.ts +++ b/test/typing/commands.test-d.ts @@ -55,6 +55,10 @@ expectType>(redis.incrbyfloat("key", "42")); expectType>(redis.mget("key", "bar")); expectType>(redis.mget(["key", "bar"])); +// HGETALL +expectType>>(redis.hgetall("key")); +expectType>>(redis.hgetallBuffer("key")); + // LPOP expectType>(redis.lpop("key")); expectType>(redis.lpopBuffer("key"));