UNPKG

signalforge

Version:

Fine-grained reactive state management with automatic dependency tracking - Ultra-optimized, zero dependencies

2 lines (1 loc) 1.27 kB
"use strict";var T=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var v=(n,e)=>{for(var t in e)T(n,t,{get:e[t],enumerable:!0})},S=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!p.call(n,r)&&r!==t&&T(n,r,{get:()=>e[r],enumerable:!(o=f(e,r))||o.enumerable});return n};var y=n=>S(T({},"__esModule",{value:!0}),n);var m={};v(m,{batch:()=>x,computed:()=>b,effect:()=>g,signal:()=>a,untrack:()=>k});module.exports=y(m);var u=null;function a(n){let e=n,t;function o(){if(u){t||(t=new Set);let i=u.values().next().value;i&&t.add(i)}return e}function r(i){let l=typeof i=="function"?i(e):i;Object.is(l,e)||(e=l,t&&t.forEach(c=>c()))}function d(i){return arguments.length===0?o():r(i)}return d.peek=()=>e,d.subscribe=i=>{t||(t=new Set);let l=()=>i(e);return t.add(l),()=>t?.delete(l)},d}function b(n){let e=a(void 0),t=!0,o=()=>{t=!0;let d=new Set;d.add(o);let i=u;u=d;try{e(n()),t=!1}finally{u=i}};o();function r(){return t&&o(),e()}return r.peek=e.peek,r}function g(n){let e,t,o=()=>{e&&e(),t=new Set,t.add(o);let r=u;u=t;try{e=n()}finally{u=r}};return o(),()=>{e&&e(),t.clear()}}function x(n){return n()}function k(n){let e=u;u=null;try{return n()}finally{u=e}}