UNPKG

r18gs

Version:

A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.

2 lines (1 loc) 1.94 kB
"use strict";var g=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var n in t)g(e,n,{get:t[n],enumerable:!0})},G=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of E(t))!y.call(e,s)&&s!==n&&g(e,s,{get:()=>t[s],enumerable:!(r=d(t,s))||r.enumerable});return e};var P=e=>G(g({},"__esModule",{value:!0}),e);var f=(e,t,n)=>new Promise((r,s)=>{var o=a=>{try{l(n.next(a))}catch(T){s(T)}},i=a=>{try{l(n.throw(a))}catch(T){s(T)}},l=a=>a.done?r(a.value):Promise.resolve(a.value).then(o,i);l((n=n.apply(e,t)).next())});var m={};A(m,{createHook:()=>h,globalRGS:()=>c,initWithPlugins:()=>R,listToRegExp:()=>b,triggerListeners:()=>u,useRGSWithPlugins:()=>W});module.exports=P(m);var x=require("react");var p=globalThis;p.rgs||(p.rgs={});var c=p.rgs,u=(e,t,n)=>{let r=[];for(let s of[t,n])for(let o in s)t[o]!==n[o]&&r.push(o);e.l.forEach(({l:s,s:[o,i]})=>(!(n instanceof Object)||r.filter(l=>(!o||o.test(l))&&(!i||!i.test(l))).length)&&s())},h=(e,t,n)=>{let r=c[e],s=()=>r.v;return[(0,x.useSyncExternalStore)(i=>{let l={l:i,s:[t,n]};return r.l.push(l),()=>{r.l=r.l.filter(a=>a!==l)}},s,s),r.s]},v=!1,L=(e,t)=>f(void 0,null,function*(){var s;let n=c[e],r=o=>{let i=n.v;n.v=o,u(n,i,o)};for(let o of t)yield(s=o.init)==null?void 0:s.call(o,e,n.v,r);v=!0}),R=(e,t,n=[],r=!1)=>{if(t=t instanceof Function?t():t,r){c[e]={v:t,l:[],s:null};return}let s=i=>{if(!v)return;let l=c[e],a=l.v;l.v=i instanceof Function?i(a):i,u(l,a,l.v),n.forEach(T=>{var S;return(S=T.onChange)==null?void 0:S.call(T,e,l.v)})},o=c[e];o?(o.v=t,o.s=s):c[e]={v:t,l:[],s},L(e,n)},W=(e,t,n,r=!1,s,o)=>{var i;return(i=c[e])!=null&&i.s||R(e,t,n,r),h(e,s,o)},b=e=>{let t=e.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));return new RegExp(`^(${t.join("|")})$`)};0&&(module.exports={createHook,globalRGS,initWithPlugins,listToRegExp,triggerListeners,useRGSWithPlugins});