mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 21:26:00 +00:00
Merge pull request #1307 from dbgate/feature/redis-gui-refactor
Feature/redis gui refactor
This commit is contained in:
@@ -459,6 +459,15 @@ const driver = {
|
||||
case 'string':
|
||||
res.value = await dbhan.client.get(key);
|
||||
break;
|
||||
case 'ReJSON-RL':
|
||||
res.type = 'JSON';
|
||||
try {
|
||||
const jsonData = await dbhan.client.call('JSON.GET', key);
|
||||
res.value = JSON.stringify(JSON.parse(jsonData), null, 2);
|
||||
} catch (e) {
|
||||
res.value = '';
|
||||
}
|
||||
break;
|
||||
// case 'list':
|
||||
// res.tableColumns = [{ name: 'value' }];
|
||||
// res.addMethod = 'rpush';
|
||||
@@ -495,6 +504,10 @@ const driver = {
|
||||
switch (method) {
|
||||
case 'mdel':
|
||||
return await this.deleteBranch(dbhan, args[0]);
|
||||
case 'zadd':
|
||||
return await dbhan.client.zadd(args[0], args[2], args[1]);
|
||||
case 'json.set':
|
||||
return await dbhan.client.call('JSON.SET', args[0], '$', args[1]);
|
||||
case 'xaddjson':
|
||||
let json;
|
||||
try {
|
||||
@@ -528,14 +541,28 @@ const driver = {
|
||||
const res = await dbhan.client.zscan(key, cursor, 'COUNT', count);
|
||||
return {
|
||||
cursor: parseInt(res[0]),
|
||||
items: _.chunk(res[1], 2).map((item) => ({ value: item[0], score: item[1] })),
|
||||
items: _.chunk(res[1], 2).map((item) => ({ member: item[0], score: item[1] })),
|
||||
};
|
||||
}
|
||||
case 'hash': {
|
||||
const res = await dbhan.client.hscan(key, cursor, 'COUNT', count);
|
||||
const fields = _.chunk(res[1], 2);
|
||||
|
||||
// Get TTL for each hash field (Redis 7.4+)
|
||||
const items = await Promise.all(
|
||||
fields.map(async ([fieldKey, fieldValue]) => {
|
||||
try {
|
||||
const ttl = await dbhan.client.call('HTTL', key, 'FIELDS', 1, fieldKey);
|
||||
return { key: fieldKey, value: fieldValue, TTL: ttl && ttl[0] !== undefined ? ttl[0] : null };
|
||||
} catch (e) {
|
||||
return { key: fieldKey, value: fieldValue };
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
return {
|
||||
cursor: parseInt(res[0]),
|
||||
items: _.chunk(res[1], 2).map((item) => ({ key: item[0], value: item[1] })),
|
||||
items,
|
||||
};
|
||||
}
|
||||
case 'stream': {
|
||||
|
||||
@@ -49,7 +49,7 @@ const driver = {
|
||||
{
|
||||
name: 'set',
|
||||
label: 'Set',
|
||||
dbKeyFields: [{ name: 'value' }],
|
||||
dbKeyFields: [{ name: 'value', readOnly: true }],
|
||||
keyColumn: 'value',
|
||||
addMethod: 'sadd',
|
||||
showItemList: true,
|
||||
@@ -57,15 +57,15 @@ const driver = {
|
||||
{
|
||||
name: 'zset',
|
||||
label: 'Sorted Set',
|
||||
dbKeyFields: [{ name: 'score' }, { name: 'value' }],
|
||||
keyColumn: 'value',
|
||||
dbKeyFields: [{ name: 'member', readOnly: true }, { name: 'score' }],
|
||||
keyColumn: 'member',
|
||||
addMethod: 'zadd',
|
||||
showItemList: true,
|
||||
},
|
||||
{
|
||||
name: 'hash',
|
||||
label: 'Hash',
|
||||
dbKeyFields: [{ name: 'key' }, { name: 'value' }],
|
||||
dbKeyFields: [{ name: 'key', readOnly: true }, { name: 'value' }, { name: 'TTL' }],
|
||||
keyColumn: 'key',
|
||||
addMethod: 'hset',
|
||||
showItemList: true,
|
||||
@@ -73,11 +73,17 @@ const driver = {
|
||||
{
|
||||
name: 'stream',
|
||||
label: 'Stream',
|
||||
dbKeyFields: [{ name: 'id' }, { name: 'value' }],
|
||||
dbKeyFields: [{ name: 'id', readOnly: true }, { name: 'value', readOnly: true }],
|
||||
keyColumn: 'id',
|
||||
addMethod: 'xaddjson',
|
||||
showItemList: true,
|
||||
},
|
||||
{
|
||||
name: 'json',
|
||||
label: 'JSON',
|
||||
dbKeyFields: [{ name: 'value' }],
|
||||
addMethod: 'json.set',
|
||||
}
|
||||
],
|
||||
|
||||
showConnectionField: (field, values) => {
|
||||
|
||||
Reference in New Issue
Block a user