feat: Stream consumer groups UI
- stream.ts: streamGroups, streamConsumers, streamGroupCreate, streamGroupDestroy, streamAck - IPC: redis:streamGroups, streamConsumers, streamGroupCreate, streamGroupDestroy, streamAck - Preload bridge + types for all new methods - StreamEditor.vue: collapsible consumer groups panel - XINFO GROUPS table with name/consumers/pending/last-delivered-id - Click group to expand XINFO CONSUMERS - Create group dialog (name, start ID, MKSTREAM) - Destroy group with confirm - i18n keys (zh-CN + en) - P1 complete!
This commit is contained in:
@@ -232,6 +232,23 @@ export function registerIpcHandlers(): void {
|
||||
return redis.streamDel(id, key, ...ids)
|
||||
}))
|
||||
|
||||
// Redis - Stream Consumer Groups
|
||||
ipcMain.handle('redis:streamGroups', async (_e, id: string, key: string) => {
|
||||
return redis.streamGroups(id, key)
|
||||
})
|
||||
ipcMain.handle('redis:streamConsumers', async (_e, id: string, key: string, group: string) => {
|
||||
return redis.streamConsumers(id, key, group)
|
||||
})
|
||||
ipcMain.handle('redis:streamGroupCreate', withLog('XGROUP CREATE', async (_e, id: string, key: string, group: string, startId: string, mkstream: boolean) => {
|
||||
return redis.streamGroupCreate(id, key, group, startId, mkstream)
|
||||
}))
|
||||
ipcMain.handle('redis:streamGroupDestroy', withLog('XGROUP DESTROY', async (_e, id: string, key: string, group: string) => {
|
||||
return redis.streamGroupDestroy(id, key, group)
|
||||
}))
|
||||
ipcMain.handle('redis:streamAck', withLog('XACK', async (_e, id: string, key: string, group: string, ids: string[]) => {
|
||||
return redis.streamAck(id, key, group, ...ids)
|
||||
}))
|
||||
|
||||
// Command Log
|
||||
ipcMain.handle('redis:getCommandLog', () => {
|
||||
return redis.getLog()
|
||||
|
||||
Reference in New Issue
Block a user