r18gs
Version:
A simple yet elegant, light weight, react18 global store to replace Zustand for better tree shaking.
2 lines (1 loc) • 1.09 kB
JavaScript
var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var d=(e,t)=>{for(var o in t)a(e,o,{get:t[o],enumerable:!0})},h=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of x(t))!R.call(e,n)&&n!==o&&a(e,n,{get:()=>t[n],enumerable:!(s=f(t,n))||s.enumerable});return e};var v=e=>h(a({},"__esModule",{value:!0}),e);var y={};d(y,{useRGS:()=>E});module.exports=v(y);var g=require("react");var T=globalThis;T.rgs||(T.rgs={});var l=T.rgs,p=(e,t,o)=>{let s=[];for(let n of[t,o])for(let r in n)t[r]!==o[r]&&s.push(r);e.l.forEach(({l:n,s:[r,c]})=>(!(o instanceof Object)||s.filter(i=>(!r||r.test(i))&&(!c||!c.test(i))).length)&&n())},u=(e,t,o)=>{let s=l[e],n=()=>s.v;return[(0,g.useSyncExternalStore)(c=>{let i={l:c,s:[t,o]};return s.l.push(i),()=>{s.l=s.l.filter(S=>S!==i)}},n,n),s.s]};var E=(e,t,o,s)=>(l[e]||(l[e]={v:t instanceof Function?t():t,l:[],s:n=>{var i;let r=l[e],c=(i=r.v)!=null?i:{};r.v=n instanceof Function?n(c):n,p(r,c,r.v)}}),u(e,o,s));0&&(module.exports={useRGS});
;