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) • 1 kB
JavaScript
import s from"fs";import*as o from"../../shared.mjs";export default async n=>{const{socket:t}=n;try{o.ensureReadonlyConnections();const{group:e,ids:r}=n.payload;if(!Array.isArray(r)||0===r.length)return void t.emit(n.responseEvent,{status:"ok"});const c=new Map;for(const s of p3xrs.connections.list)c.set(s.id,s);if(void 0!==e){const s=[];for(const o of r){const n=c.get(o);n&&s.push(n)}const o=[];let n=!1;const t=(e||"").trim();for(const e of p3xrs.connections.list)(e.group||"").trim()===t?n||(o.push(...s),n=!0):o.push(e);n||o.push(...s),p3xrs.connections.list=o}else{const s=[];for(const o of r){const n=c.get(o);n&&s.push(n)}for(const o of p3xrs.connections.list)r.includes(o.id)||s.push(o);p3xrs.connections.list=s}p3xrs.connections.update=new Date,s.writeFileSync(p3xrs.cfg.connections.home,JSON.stringify(p3xrs.connections,null,4)),t.emit(n.responseEvent,{status:"ok"})}catch(s){console.error(s),t.emit(n.responseEvent,{status:"error",error:s.message})}finally{o.sendConnections({socket:t})}};