JSFiddle - React, Tailwind, and code Playground

by luwes

JavaScript

var observable=function(n){var r,t,u=[];function i(n){function i(o){if(0===arguments.length)return r&&!i.t.has(r)&&(i.t.add(r),r.u.push(i)),n;if(t)return i.i===u&&t.push(i),i.i=o,o;n=o;var f=r;return r=void 0,i.v=new Set(i.t),i.v.forEach((function(n){return n.l=!1})),i.v.forEach((function(n){n.l||n()})),r=f,n}return(i.$o=!0,i.t=new Set,i.i=u,i)}function o(n,t){function u(){var i=r;r&&r.__c.push(u);var o=u.__c;return f(u),u.l=!0,r=u,t=n(t),o.forEach((function(n){-1===u.__c.indexOf(n)&&(n.l=!0)})),function n(r){return r.reduce((function(r,t){return r.concat(t,n(t.__c))}),[])}(u.__c).forEach((function(n){n.l&&n.u.forEach((function(r){r.v&&r.v.delete(n)}))})),r=i,t}return n.s=u,c(u),u(),function(){return u.l?u.u.forEach((function(n){return n()})):t=u(),t}}function f(n){n.__c.forEach(f),n.u.forEach((function(r){r.t.delete(n)})),n.g.forEach((function(n){return n()})),c(n)}function c(n){n.u=[],n.__c=[],n.g=[]}return n.S=o,n.cleanup=function(n){return r&&r.g.push(n),n},n.computed=o,n.isListening=function(){return!!r},n.o=i,n.observable=i,n.root=function(n){var t=r,u=function(){};r=u,c(u);var i=n((function(){f(u),r=void 0}));return r=t,i},n.sample=function(n){var t=r;r=void 0;var u=n();return r=t,u},n.subscribe=function(n){return o(n),function(){return f(n.s)}},n.transaction=function(n){t=[];var r=n(),i=t;return t=void 0,i.forEach((function(n){if(n.i!==u){var r=n.i;n.i=u,n(r)}})),r},n.unsubscribe=function(n){f(n.s)},n}({});


const test = observable.observable(99);
const test2 = observable.observable(99);

const listener = observable.computed(() => {
	console.log(test());
	return test();
});


observable.subscribe(() => {
	console.log(test() + test2());
	return test() + test2();
});

test(11);