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