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.49 kB
JavaScript
import s from"fs";import*as n from"../../shared.mjs";export default async o=>{const{socket:t}=o,e=o.payload.model;let i=!0;try{let r;n.ensureReadonlyConnections(),i=!1;for(let s in p3xrs.connections.list)if(p3xrs.connections.list[s].id===e.id){r=s;break}if(p3xrs.connections.update=new Date,void 0!==r){if(p3xrs.connections.list[r].id===e.password&&(e.password=p3xrs.connections.list[r].password),p3xrs.connections.list[r].id===e.tlsCrt&&(e.tlsCrt=p3xrs.connections.list[r].tlsCrt),p3xrs.connections.list[r].id===e.tlsKey&&(e.tlsKey=p3xrs.connections.list[r].tlsKey),p3xrs.connections.list[r].id===e.tlsCa&&(e.tlsCa=p3xrs.connections.list[r].tlsCa),p3xrs.connections.list[r].id===e.tlsCa&&(e.tlsCa=p3xrs.connections.list[r].tlsCa),p3xrs.connections.list[r].id===e.sshPassword&&(e.sshPassword=p3xrs.connections.list[r].sshPassword),p3xrs.connections.list[r].id===e.sshPrivateKey&&(e.sshPrivateKey=p3xrs.connections.list[r].sshPrivateKey),Array.isArray(e.nodes))for(let s of e.nodes){const n=p3xrs.connections.list[r].nodes.find(n=>n.id===s.id&&s.password===n.id);void 0!==n&&(s.password=n.password)}p3xrs.connections.list[r]=e}else p3xrs.connections.list.push(e);s.writeFileSync(p3xrs.cfg.connections.home,JSON.stringify(p3xrs.connections,null,4)),t.emit(o.responseEvent,{status:"ok"})}catch(s){console.error(s),t.emit(o.responseEvent,{status:"error",error:s.message})}finally{i||(n.sendConnections({socket:t}),n.triggerDisconnect({connectionId:e.id,code:"save-connection",socket:t}))}};