1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-01 16:46:54 +03:00
Files
node-redis/lib/utils.js
2015-10-11 03:35:21 +02:00

67 lines
1.3 KiB
JavaScript

'use strict';
// hgetall converts its replies to an Object. If the reply is empty, null is returned.
function replyToObject(reply) {
var obj = {}, j, jl, key, val;
if (reply.length === 0 || !Array.isArray(reply)) {
return null;
}
for (j = 0, jl = reply.length; j < jl; j += 2) {
key = reply[j].toString('binary');
val = reply[j + 1];
obj[key] = val;
}
return obj;
}
function replyToStrings(reply) {
var i;
if (Buffer.isBuffer(reply)) {
return reply.toString();
}
if (Array.isArray(reply)) {
var res = new Array(reply.length);
for (i = 0; i < reply.length; i++) {
// Recusivly call the function as slowlog returns deep nested replies
res[i] = replyToStrings(reply[i]);
}
return res;
}
return reply;
}
function toArray(args) {
var len = args.length,
arr = new Array(len), i;
for (i = 0; i < len; i += 1) {
arr[i] = args[i];
}
return arr;
}
function print (err, reply) {
if (err) {
console.log('Error: ' + err);
} else {
console.log('Reply: ' + reply);
}
}
var redisErrCode = /^([A-Z]+)\s+(.+)$/;
module.exports = {
reply_to_strings: replyToStrings,
reply_to_object: replyToObject,
to_array: toArray,
print: print,
errCode: redisErrCode
};