UNPKG

@preact/signals-core

Version:

Manage state with style in every framework

2 lines (1 loc) 4.76 kB
!function(i,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((i||self).preactSignalsCore={})}(this,function(i){var t=Symbol.for("preact-signals");function o(){if(!(h>1)){var i,t=!1;while(void 0!==f){var o=f;f=void 0;s++;while(void 0!==o){var n=o.o;o.o=void 0;o.f&=-3;if(!(8&o.f)&&d(o))try{o.c()}catch(o){if(!t){i=o;t=!0}}o=n}}s=0;h--;if(t)throw i}else h--}var n=void 0;function r(i){var t=n;n=void 0;try{return i()}finally{n=t}}var f=void 0,h=0,s=0,v=0;function e(i){if(void 0!==n){var t=i.n;if(void 0===t||t.t!==n){t={i:0,S:i,p:n.s,n:void 0,t:n,e:void 0,x:void 0,r:t};if(void 0!==n.s)n.s.n=t;n.s=t;i.n=t;if(32&n.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=n.s;t.n=void 0;n.s.n=t;n.s=t}return t}}}function u(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched}u.prototype.brand=t;u.prototype.h=function(){return!0};u.prototype.S=function(i){var t=this,o=this.t;if(o!==i&&void 0===i.e){i.x=o;this.t=i;if(void 0!==o)o.e=i;else r(function(){var i;null==(i=t.W)||i.call(t)})}};u.prototype.U=function(i){var t=this;if(void 0!==this.t){var o=i.e,n=i.x;if(void 0!==o){o.x=n;i.e=void 0}if(void 0!==n){n.e=o;i.x=void 0}if(i===this.t){this.t=n;if(void 0===n)r(function(){var i;null==(i=t.Z)||i.call(t)})}}};u.prototype.subscribe=function(i){var t=this;return g(function(){var o=t.value,r=n;n=void 0;try{i(o)}finally{n=r}})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+""};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var i=n;n=void 0;try{return this.value}finally{n=i}};Object.defineProperty(u.prototype,"value",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(s>100)throw new Error("Cycle detected");this.v=i;this.i++;v++;h++;try{for(var t=this.t;void 0!==t;t=t.x)t.t.N()}finally{o()}}}});function d(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function c(i){for(var t=i.s;void 0!==t;t=t.n){var o=t.S.n;if(void 0!==o)t.r=o;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function a(i){var t=i.s,o=void 0;while(void 0!==t){var n=t.p;if(-1===t.i){t.S.U(t);if(void 0!==n)n.n=t.n;if(void 0!==t.n)t.n.p=n}else o=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=n}i.s=o}function l(i,t){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched}l.prototype=new u;l.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!d(this)){this.f&=-2;return!0}var i=n;try{c(this);n=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}n=i;a(this);this.f&=-2;return!0};l.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};l.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};l.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(l.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function y(i){var t=i.u;i.u=void 0;if("function"==typeof t){h++;var r=n;n=void 0;try{t()}catch(t){i.f&=-2;i.f|=8;w(i);throw t}finally{n=r;o()}}}function w(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;y(i)}function p(i){if(n!==this)throw new Error("Out-of-order effect");a(this);n=i;this.f&=-2;if(8&this.f)w(this);o()}function b(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}b.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if("function"==typeof t)this.u=t}finally{i()}};b.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1;this.f&=-9;y(this);c(this);h++;var i=n;n=this;return p.bind(this,i)};b.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=f;f=this}};b.prototype.d=function(){this.f|=8;if(!(1&this.f))w(this)};b.prototype.dispose=function(){this.d()};function g(i){var t=new b(i);try{t.c()}catch(i){t.d();throw i}var o=t.d.bind(t);o[Symbol.dispose]=o;return o}i.Signal=u;i.batch=function(i){if(h>0)return i();h++;try{return i()}finally{o()}};i.computed=function(i,t){return new l(i,t)};i.effect=g;i.signal=function(i,t){return new u(i,t)};i.untracked=r});//# sourceMappingURL=signals-core.min.js.map