UNPKG

p3x-redis-ui-material

Version:

💿 P3X Redis UI triple frontend — Angular + React/MUI + Vue/Vuetify with 54 languages, 7 themes, Socket.IO, desktop notifications, and full feature parity

1 lines • 4.32 kB
import{n as e}from"./chunk-62oNxeRG.js";import{a as t,n}from"./i18n.store-BgO27SyP.js";import{i as r,r as i}from"./redis-state.store-D1VAMKQx.js";import{a,r as o}from"./common.store-BdGjnV1l.js";import{t as s}from"./overlay.store-D7w_fpOU.js";import{r as c}from"./socket.service-B0twmIgP.js";var l=null;function u(e){l=e}function d(e,t){let n={info:`/info`,settings:`/settings`,monitoring:`/monitoring`,search:`/search`,"database.statistics":`/database/statistics`,"main.statistics":`/database/statistics`,database:`/database`},r;e===`database.key`||e===`main.key`?r=`/database/key/${encodeURIComponent(t?.key??``)}`:(r=n[e],r||=(console.warn(`[navigation] Unknown state: ${e}`),`/settings`)),l&&l(r)}var f=e({emitCommand:()=>h,onCommandEvent:()=>m,useMainCommandStore:()=>_}),p={};function m(e,t){return p[e]||(p[e]=new Set),p[e].add(t),()=>{p[e].delete(t)}}function h(e,t){p[e]?.forEach(e=>e(t))}var g=0,_=t(()=>({connect:async e=>{let t=structuredClone(e),a=r.getState(),l=s.getState();try{let e=a.getStorageKeyCurrentDatabase(t.id),r;try{r=localStorage.getItem(e)??void 0}catch{}if(t.askAuth===!0)try{let e=await o.getState().askAuth();t.username=e.username||void 0,t.password=e.password||void 0}catch{return}let s=n.getState().strings;l.show({message:s?.title?.connectingRedis}),i.setState({connectionState:`connecting`});let u=await c({action:`connection/connect`,payload:{connection:t,db:r}}),d=[],f=0;for(;f<u.databases;)d.push(f++);let p=[];Object.keys(u.commands??{}).forEach(e=>p.push(u.commands[e][0])),p.sort();let m=Array.isArray(u.modules)?u.modules:[];i.setState({page:1,monitor:!1,dbsize:u.dbsize,databaseIndexes:d,connection:t,commands:p,commandsMeta:u.commandsMeta??{},modules:m,hasReJSON:m.some(e=>e.name===`ReJSON`),hasRediSearch:m.some(e=>e.name===`search`),hasTimeSeries:m.some(e=>e.name===`timeseries`||e.name===`Timeseries`),hasBloom:m.some(e=>e.name===`bf`),connectionState:`connected`}),o.getState().loadRedisInfoResponse({response:u});try{localStorage.setItem(a.connectInfoStorageKey,JSON.stringify(t))}catch{}}catch(e){try{localStorage.removeItem(a.connectInfoStorageKey)}catch{}i.setState({connection:void 0,connectionState:`none`}),o.getState().generalHandleError(e)}finally{l.hide()}},selectDatabase:async e=>{let t=i.getState(),a=r.getState();i.setState({currentDatabase:e,page:1,redisChanged:!0});try{await c({action:`redis/console`,payload:{command:`select ${e}`}});let r=n.getState().strings?.status?.dbChanged,i=typeof r==`function`?r({db:e}):``;i&&o.getState().toast(i);let s=a.getStorageKeyCurrentDatabase(t.connection?.id);if(s)try{localStorage.setItem(s,String(e))}catch{}await _.getState().refresh({force:!0})}catch(e){o.getState().generalHandleError(e)}},save:async()=>{try{let e=a((await c({action:`redis/save`})).info);i.setState({info:e});let t=n.getState().strings;o.getState().toast(t?.status?.savedRedis)}catch(e){o.getState().generalHandleError(e)}},statistics:async()=>{try{d(`database.statistics`),await _.getState().refresh({force:!0})}catch(e){o.getState().generalHandleError(e)}},refresh:async(e={})=>{let t=Date.now();if(!(!e.force&&t-g<2e3)){g=t;try{let t=i.getState(),n=r.getState(),a={},s=t.search;!n.searchClientSide&&typeof s==`string`&&s.length>0&&(a.match=n.searchStartsWith?s+`*`:`*`+s+`*`);let l=await c({action:`redis/refresh`,payload:a});i.setState({dbsize:l.dbsize,redisChanged:!0}),o.getState().loadRedisInfoResponse({response:l}),h(`tree-refresh`),e.withoutParent||h(`refresh-key`)}catch(e){o.getState().generalHandleError(e)}}},disconnect:async()=>{let e=i.getState(),t=r.getState();try{localStorage.removeItem(t.connectInfoStorageKey)}catch{}i.setState({connection:void 0,connectionState:`none`,redisConnections:{},monitor:!1});try{await c({action:`connection/disconnect`,payload:{connectionId:e.connection?.id}})}catch{}d(`settings`)},addKey:e=>{e.event.stopPropagation(),h(`key-new`,e)},getCurrentDatabase:()=>{let e=i.getState(),t=r.getState(),n=e.currentDatabase;if(n===void 0){let r=t.getStorageKeyCurrentDatabase(e.connection?.id);if(r)try{n=localStorage.getItem(r)}catch{}}return Number(n??0)},setCurrentDatabase:e=>{let t=i.getState(),n=r.getState();i.setState({currentDatabase:e});let a=n.getStorageKeyCurrentDatabase(t.connection?.id);if(a)try{localStorage.setItem(a,String(e))}catch{}}}));export{d as a,_ as i,f as n,u as o,m as r,h as t};