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) • 856 B
JavaScript
export default async e=>{const{socket:t,payload:r}=e;try{const a=t.p3xrs.ioredis,o=r.from||"-",s=r.to||"+",n=r.filter;if(!n)return void t.emit(e.responseEvent,{status:"ok",data:[]});const i=[o,s,"FILTER",n];r.aggregation&&r.aggregation.type&&r.aggregation.timeBucket&&i.push("AGGREGATION",r.aggregation.type,r.aggregation.timeBucket),r.count&&i.push("COUNT",r.count),console.info("socket.io timeseries mrange",i);const c=(await a.call("TS.MRANGE",...i)).map(e=>{const t=e[0],r={};if(Array.isArray(e[1]))for(const t of e[1])Array.isArray(t)&&2===t.length&&(r[t[0]]=t[1]);return{key:t,labels:r,data:(e[2]||[]).map(e=>({timestamp:"number"==typeof e[0]?e[0]:parseInt(e[0]),value:"number"==typeof e[1]?e[1]:parseFloat(e[1])}))}});t.emit(e.responseEvent,{status:"ok",data:c})}catch(r){console.error(r),t.emit(e.responseEvent,{status:"error",error:r.message})}};