You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-04 15:02:09 +03:00
Add support for redis functions (#2020)
* fix #1906 - implement BITFIELD_RO * initial support for redis functions * fix test utils * redis functions commands and tests * upgrade deps * fix "Property 'uninstall' does not exist on type 'SinonFakeTimers'" * upgrade dockers version * Merge branch 'master' of github.com:redis/node-redis into functions * fix FUNCTION LIST WITHCODE and FUNCTION STATS * upgrade deps * set minimum version for FCALL and FCALL_RO * fix FUNCTION LOAD * FUNCTION LOAD * fix FUNCTION LOAD & FUNCTION LIST & FUNCTION LOAD WITHCODE * fix FUNCTION_LIST_WITHCODE test
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import { RedisCommand, RedisCommandArguments, RedisCommandRawReply, RedisScript } from './commands';
|
||||
import { fCallArguments } from './commander';
|
||||
import { RedisCommand, RedisCommandArguments, RedisCommandRawReply, RedisFunction, RedisScript } from './commands';
|
||||
import { WatchError } from './errors';
|
||||
|
||||
export interface RedisMultiQueuedCommand {
|
||||
@ -22,6 +23,18 @@ export default class RedisMultiCommand {
|
||||
});
|
||||
}
|
||||
|
||||
addFunction(fn: RedisFunction, args: Array<unknown>): RedisCommandArguments {
|
||||
const transformedArguments = fCallArguments(
|
||||
fn,
|
||||
fn.transformArguments(...args)
|
||||
);
|
||||
this.queue.push({
|
||||
args: transformedArguments,
|
||||
transformReply: fn.transformReply
|
||||
});
|
||||
return transformedArguments;
|
||||
}
|
||||
|
||||
addScript(script: RedisScript, args: Array<unknown>): RedisCommandArguments {
|
||||
const transformedArguments: RedisCommandArguments = [];
|
||||
if (this.scriptsInUse.has(script.SHA1)) {
|
||||
@ -37,7 +50,9 @@ export default class RedisMultiCommand {
|
||||
);
|
||||
}
|
||||
|
||||
transformedArguments.push(script.NUMBER_OF_KEYS.toString());
|
||||
if (script.NUMBER_OF_KEYS !== undefined) {
|
||||
transformedArguments.push(script.NUMBER_OF_KEYS.toString());
|
||||
}
|
||||
|
||||
const scriptArguments = script.transformArguments(...args);
|
||||
transformedArguments.push(...scriptArguments);
|
||||
|
Reference in New Issue
Block a user