You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-04 15:02:09 +03:00
* 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
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import { RedisCommandArguments } from '.';
|
|
|
|
export function transformArguments(): RedisCommandArguments {
|
|
return ['FUNCTION', 'STATS'];
|
|
}
|
|
|
|
type FunctionStatsRawReply = [
|
|
'running_script',
|
|
null | [
|
|
'name',
|
|
string,
|
|
'command',
|
|
string,
|
|
'duration_ms',
|
|
number
|
|
],
|
|
'engines',
|
|
Array<any> // "flat tuples" (there is no way to type that)
|
|
// ...[string, [
|
|
// 'libraries_count',
|
|
// number,
|
|
// 'functions_count',
|
|
// number
|
|
// ]]
|
|
];
|
|
|
|
interface FunctionStatsReply {
|
|
runningScript: null | {
|
|
name: string;
|
|
command: string;
|
|
durationMs: number;
|
|
};
|
|
engines: Record<string, {
|
|
librariesCount: number;
|
|
functionsCount: number;
|
|
}>;
|
|
}
|
|
|
|
export function transformReply(reply: FunctionStatsRawReply): FunctionStatsReply {
|
|
const engines = Object.create(null);
|
|
for (let i = 0; i < reply[3].length; i++) {
|
|
engines[reply[3][i]] = {
|
|
librariesCount: reply[3][++i][1],
|
|
functionsCount: reply[3][i][3]
|
|
};
|
|
}
|
|
|
|
return {
|
|
runningScript: reply[1] === null ? null : {
|
|
name: reply[1][1],
|
|
command: reply[1][3],
|
|
durationMs: reply[1][5]
|
|
},
|
|
engines
|
|
};
|
|
}
|