UNPKG

p3x-redis-ui-server

Version:

🏍️ P3X Redis UI server — Socket.IO backend for the dual Angular + React frontend with AI queries, 54 languages, and auto data decompression

2 lines (1 loc) 820 B
import*as e from"../../shared.mjs";const o=e.argumentParser,s=["subscribe","monitor","quit","psubscribe"],t=["flushdb","flushall","dbsize"];export default async n=>{const{socket:r,payload:a}=n,{command:c}=a;try{let a=r.p3xrs?.ioredis;const i=o(c);let l,d=i.shift();if(d=d.toLowerCase(),s.includes(d))throw new Error("invalid_console_command");if(!a)throw new Error("not_connected");"select"!==d&&e.ensureReadonlyConnection({socket:r}),console.info("socket.io console call",d,i),l=t.includes(d)&&"function"==typeof a[d]?await a[d](...i):await a.call(d,...i);const m={};let u=d;i.length>0&&(u+=" "+i.join(" ")),"select"===d&&(m.database=parseInt(i[0])),r.emit(n.responseEvent,Object.assign(m,{status:"ok",result:l,generatedCommand:u}))}catch(e){console.error(e),r.emit(n.responseEvent,{status:"error",error:e.message})}};