From b19463c6aa9e42916d0beb8eac675dcd860092bc Mon Sep 17 00:00:00 2001 From: Torben Pi Jensen Date: Wed, 22 Mar 2023 09:29:40 +0100 Subject: [PATCH] Support for gunziping list items --- lib/routes/apiv1.js | 8 ++++++-- package-lock.json | 21 ++++++++++++++++++--- package.json | 3 ++- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/lib/routes/apiv1.js b/lib/routes/apiv1.js index 22846f11..a35edb5d 100644 --- a/lib/routes/apiv1.js +++ b/lib/routes/apiv1.js @@ -5,6 +5,7 @@ const inflection = require('inflection'); const myutil = require('../util'); const config = require('config'); const middlewares = require('../express/middlewares'); +const zlib = require('zlib'); const tombStone = "REDISCOMMANDERTOMBSTONE"; @@ -404,7 +405,7 @@ function getKeyDetailsList (key, req, res, next) { startIdx = 0; } let endIdx = startIdx + 19; - redisConnection.lrange(key, startIdx, endIdx, function (err, items) { + redisConnection.lrangeBuffer(key, startIdx, endIdx, function (err, items) { if (err) { console.error('getKeyDetailsList', err); return next(err); @@ -412,9 +413,12 @@ function getKeyDetailsList (key, req, res, next) { let i = startIdx; items = items.map(function (item) { + if (item[0].toString(16) === '1f' && item[1].toString(16) === '8b' && item[2].toString(16) === '8') { + item = zlib.gunzipSync(item); + } return { number: i++, - value: item + value: item.toString() } }); redisConnection.llen(key, function (errLen, length) { diff --git a/package-lock.json b/package-lock.json index 78983708..5c8b0cb9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "redis-commander", - "version": "0.8.2-rc2", + "version": "0.8.2-rc3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "redis-commander", - "version": "0.8.2-rc2", + "version": "0.8.2-rc3", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -30,7 +30,8 @@ "node-redis-dump2": "0.6.0", "opener": "1.5.2", "readline-browserify": "0.0.4", - "yargs": "17.6.2" + "yargs": "17.6.2", + "zlib": "^1.0.5" }, "bin": { "redis-commander": "bin/redis-commander.js" @@ -5935,6 +5936,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } } }, "dependencies": { @@ -10513,6 +10523,11 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true + }, + "zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==" } } } diff --git a/package.json b/package.json index 95bb47cb..a13028ac 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,8 @@ "node-redis-dump2": "0.6.0", "opener": "1.5.2", "readline-browserify": "0.0.4", - "yargs": "17.6.2" + "yargs": "17.6.2", + "zlib": "^1.0.5" }, "optionalDependencies": { "bcrypt": "~5.0.1"