@esmj/signals 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -103,10 +103,12 @@ let w = null;
103
103
  function createWatcher(notify) {
104
104
  w = new Watcher(notify);
105
105
  }
106
-
106
+ let timer = null;
107
107
  createWatcher(() => {
108
108
  // TODO performance improvement
109
- setTimeout(() => {
109
+
110
+ clearTimeout(timer);
111
+ timer = setTimeout(() => {
110
112
  getPending().forEach((pending) => {
111
113
  pending.get();
112
114
  });
package/dist/index.d.ts CHANGED
@@ -103,10 +103,12 @@ let w = null;
103
103
  function createWatcher(notify) {
104
104
  w = new Watcher(notify);
105
105
  }
106
-
106
+ let timer = null;
107
107
  createWatcher(() => {
108
108
  // TODO performance improvement
109
- setTimeout(() => {
109
+
110
+ clearTimeout(timer);
111
+ timer = setTimeout(() => {
110
112
  getPending().forEach((pending) => {
111
113
  pending.get();
112
114
  });
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var observable=require('@esmj/observable');var s=null;function f(n){let t=s;s=null;let e=n();return s=t,e}var x=Symbol("internal observable"),c=Symbol("original next"),d=class extends observable.Observable{#t=new Set;#e=null;constructor(t){super(),this.#e=t,this.pipe(e=>{let r=e.subscribe.bind(e),h=e.unsubscribe.bind(e);return e.subscribe=i=>{r(i),this.#t.add(i);},e.unsubscribe=i=>{h(i),this.#t.delete(i);},e});}watch(t){if(typeof t.next!="function"&&(t.next=()=>f(()=>{this.#t.add(t),this.#e();}),t.next[c]=void 0),t instanceof u&&t.next[c]===void 0){let e=t.next.bind(t);t.next=()=>f(()=>{this.#t.add(t),e(),this.#e();}),t.next[c]=e;}return this.subscribe(t)}getPending(){return Array.from(this.#t).map(e=>{let r=e.get.bind(e);return e.get=()=>f(()=>(this.#t.delete(e),r())),e})}unwatch(t){return t.next=t.next[c],this.unsubscribe(t)}},o=null;function w(n){o=new d(n);}w(()=>{setTimeout(()=>{g().forEach(n=>{n.get();});},0);});function g(){return o.getPending()}function m(n){return o.watch(n)}function y(n){return o.unwatch(n)}var u=class extends observable.Observer{#t=!0;#e=null;#n=null;#r=this.#o();#s=null;#i=null;constructor(t,e){super(),this.#s=t,this.#i=e,this.debug=e?.debug,this.get=this.get.bind(this);}#u(){Array.from(this.#r.dependencies.values()).forEach(({unsubscribe:t})=>{t();}),this.#r.dependencies.clear();}#o(){return {dependencies:new Map,observer:this}}#h(){this.#e=s,s=this.#r;}#f(){s=this.#e;}next(){this.#t=!0,this.#n[x].next();}get(){return this.#n||(this.#n=b(this.#c(),this.#i)),this.#t&&this.#c(),this.#n.get()}#c(){this.#t=!1,this.#u(),this.#h();let t;try{t=this.#s();}catch(e){t=e;}if(this.#f(),t instanceof Promise&&(t=t.then(e=>e).catch(e=>{throw e})),this.#n&&this.#n.set(t),t instanceof Error)throw t;return t}};function E(n,t){return new u(n,t)}function P(n,t){let e,r=E(()=>{e?.(),e=n();},{equals:()=>!1,debug:"effect",...t});return r.get(),m(r),()=>{e?.(),y(r);}}function b(n,t={}){let e=t?.equals??Object.is,r=new observable.Observable;function h(){if(typeof s=="object"&&s!==null&&s.dependencies.set(r,r.subscribe(s.observer)),n instanceof Error)throw n;return n}function i(a){return e(n,a)||(n=a,r.next()),n}return {get:h,set:i,[x]:r}}var S=b;exports.computed=E;exports.createSignal=b;exports.createWatcher=w;exports.effect=P;exports.getPending=g;exports.state=S;exports.untrack=f;exports.unwatch=y;exports.watch=m;
1
+ 'use strict';var observable=require('@esmj/observable');var i=null;function f(n){let t=i;i=null;let e=n();return i=t,e}var b=Symbol("internal observable"),c=Symbol("original next"),d=class extends observable.Observable{#t=new Set;#e=null;constructor(t){super(),this.#e=t,this.pipe(e=>{let r=e.subscribe.bind(e),h=e.unsubscribe.bind(e);return e.subscribe=s=>{r(s),this.#t.add(s);},e.unsubscribe=s=>{h(s),this.#t.delete(s);},e});}watch(t){if(typeof t.next!="function"&&(t.next=()=>f(()=>{this.#t.add(t),this.#e();}),t.next[c]=void 0),t instanceof u&&t.next[c]===void 0){let e=t.next.bind(t);t.next=()=>f(()=>{this.#t.add(t),e(),this.#e();}),t.next[c]=e;}return this.subscribe(t)}getPending(){return Array.from(this.#t).map(e=>{let r=e.get.bind(e);return e.get=()=>f(()=>(this.#t.delete(e),r())),e})}unwatch(t){return t.next=t.next[c],this.unsubscribe(t)}},o=null;function g(n){o=new d(n);}var a=null;g(()=>{clearTimeout(a),a=setTimeout(()=>{m().forEach(n=>{n.get();});},0);});function m(){return o.getPending()}function y(n){return o.watch(n)}function E(n){return o.unwatch(n)}var u=class extends observable.Observer{#t=!0;#e=null;#n=null;#r=this.#o();#i=null;#s=null;constructor(t,e){super(),this.#i=t,this.#s=e,this.debug=e?.debug,this.get=this.get.bind(this);}#u(){Array.from(this.#r.dependencies.values()).forEach(({unsubscribe:t})=>{t();}),this.#r.dependencies.clear();}#o(){return {dependencies:new Map,observer:this}}#h(){this.#e=i,i=this.#r;}#f(){i=this.#e;}next(){this.#t=!0,this.#n[b].next();}get(){return this.#n||(this.#n=p(this.#c(),this.#s)),this.#t&&this.#c(),this.#n.get()}#c(){this.#t=!1,this.#u(),this.#h();let t;try{t=this.#i();}catch(e){t=e;}if(this.#f(),t instanceof Promise&&(t=t.then(e=>e).catch(e=>{throw e})),this.#n&&this.#n.set(t),t instanceof Error)throw t;return t}};function N(n,t){return new u(n,t)}function S(n,t){let e,r=N(()=>{e?.(),e=n();},{equals:()=>!1,debug:"effect",...t});return r.get(),y(r),()=>{e?.(),E(r);}}function p(n,t={}){let e=t?.equals??Object.is,r=new observable.Observable;function h(){if(typeof i=="object"&&i!==null&&i.dependencies.set(r,r.subscribe(i.observer)),n instanceof Error)throw n;return n}function s(l){return e(n,l)||(n=l,r.next()),n}return {get:h,set:s,[b]:r}}var A=p;exports.computed=N;exports.createSignal=p;exports.createWatcher=g;exports.effect=S;exports.getPending=m;exports.state=A;exports.untrack=f;exports.unwatch=E;exports.watch=y;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import {Observable,Observer}from'@esmj/observable';var s=null;function f(n){let t=s;s=null;let e=n();return s=t,e}var x=Symbol("internal observable"),c=Symbol("original next"),d=class extends Observable{#t=new Set;#e=null;constructor(t){super(),this.#e=t,this.pipe(e=>{let r=e.subscribe.bind(e),h=e.unsubscribe.bind(e);return e.subscribe=i=>{r(i),this.#t.add(i);},e.unsubscribe=i=>{h(i),this.#t.delete(i);},e});}watch(t){if(typeof t.next!="function"&&(t.next=()=>f(()=>{this.#t.add(t),this.#e();}),t.next[c]=void 0),t instanceof u&&t.next[c]===void 0){let e=t.next.bind(t);t.next=()=>f(()=>{this.#t.add(t),e(),this.#e();}),t.next[c]=e;}return this.subscribe(t)}getPending(){return Array.from(this.#t).map(e=>{let r=e.get.bind(e);return e.get=()=>f(()=>(this.#t.delete(e),r())),e})}unwatch(t){return t.next=t.next[c],this.unsubscribe(t)}},o=null;function w(n){o=new d(n);}w(()=>{setTimeout(()=>{g().forEach(n=>{n.get();});},0);});function g(){return o.getPending()}function m(n){return o.watch(n)}function y(n){return o.unwatch(n)}var u=class extends Observer{#t=!0;#e=null;#n=null;#r=this.#o();#s=null;#i=null;constructor(t,e){super(),this.#s=t,this.#i=e,this.debug=e?.debug,this.get=this.get.bind(this);}#u(){Array.from(this.#r.dependencies.values()).forEach(({unsubscribe:t})=>{t();}),this.#r.dependencies.clear();}#o(){return {dependencies:new Map,observer:this}}#h(){this.#e=s,s=this.#r;}#f(){s=this.#e;}next(){this.#t=!0,this.#n[x].next();}get(){return this.#n||(this.#n=b(this.#c(),this.#i)),this.#t&&this.#c(),this.#n.get()}#c(){this.#t=!1,this.#u(),this.#h();let t;try{t=this.#s();}catch(e){t=e;}if(this.#f(),t instanceof Promise&&(t=t.then(e=>e).catch(e=>{throw e})),this.#n&&this.#n.set(t),t instanceof Error)throw t;return t}};function E(n,t){return new u(n,t)}function P(n,t){let e,r=E(()=>{e?.(),e=n();},{equals:()=>!1,debug:"effect",...t});return r.get(),m(r),()=>{e?.(),y(r);}}function b(n,t={}){let e=t?.equals??Object.is,r=new Observable;function h(){if(typeof s=="object"&&s!==null&&s.dependencies.set(r,r.subscribe(s.observer)),n instanceof Error)throw n;return n}function i(a){return e(n,a)||(n=a,r.next()),n}return {get:h,set:i,[x]:r}}var S=b;export{E as computed,b as createSignal,w as createWatcher,P as effect,g as getPending,S as state,f as untrack,y as unwatch,m as watch};
1
+ import {Observable,Observer}from'@esmj/observable';var i=null;function f(n){let t=i;i=null;let e=n();return i=t,e}var b=Symbol("internal observable"),c=Symbol("original next"),d=class extends Observable{#t=new Set;#e=null;constructor(t){super(),this.#e=t,this.pipe(e=>{let r=e.subscribe.bind(e),h=e.unsubscribe.bind(e);return e.subscribe=s=>{r(s),this.#t.add(s);},e.unsubscribe=s=>{h(s),this.#t.delete(s);},e});}watch(t){if(typeof t.next!="function"&&(t.next=()=>f(()=>{this.#t.add(t),this.#e();}),t.next[c]=void 0),t instanceof u&&t.next[c]===void 0){let e=t.next.bind(t);t.next=()=>f(()=>{this.#t.add(t),e(),this.#e();}),t.next[c]=e;}return this.subscribe(t)}getPending(){return Array.from(this.#t).map(e=>{let r=e.get.bind(e);return e.get=()=>f(()=>(this.#t.delete(e),r())),e})}unwatch(t){return t.next=t.next[c],this.unsubscribe(t)}},o=null;function g(n){o=new d(n);}var a=null;g(()=>{clearTimeout(a),a=setTimeout(()=>{m().forEach(n=>{n.get();});},0);});function m(){return o.getPending()}function y(n){return o.watch(n)}function E(n){return o.unwatch(n)}var u=class extends Observer{#t=!0;#e=null;#n=null;#r=this.#o();#i=null;#s=null;constructor(t,e){super(),this.#i=t,this.#s=e,this.debug=e?.debug,this.get=this.get.bind(this);}#u(){Array.from(this.#r.dependencies.values()).forEach(({unsubscribe:t})=>{t();}),this.#r.dependencies.clear();}#o(){return {dependencies:new Map,observer:this}}#h(){this.#e=i,i=this.#r;}#f(){i=this.#e;}next(){this.#t=!0,this.#n[b].next();}get(){return this.#n||(this.#n=p(this.#c(),this.#s)),this.#t&&this.#c(),this.#n.get()}#c(){this.#t=!1,this.#u(),this.#h();let t;try{t=this.#i();}catch(e){t=e;}if(this.#f(),t instanceof Promise&&(t=t.then(e=>e).catch(e=>{throw e})),this.#n&&this.#n.set(t),t instanceof Error)throw t;return t}};function N(n,t){return new u(n,t)}function S(n,t){let e,r=N(()=>{e?.(),e=n();},{equals:()=>!1,debug:"effect",...t});return r.get(),y(r),()=>{e?.(),E(r);}}function p(n,t={}){let e=t?.equals??Object.is,r=new Observable;function h(){if(typeof i=="object"&&i!==null&&i.dependencies.set(r,r.subscribe(i.observer)),n instanceof Error)throw n;return n}function s(l){return e(n,l)||(n=l,r.next()),n}return {get:h,set:s,[b]:r}}var A=p;export{N as computed,p as createSignal,g as createWatcher,S as effect,m as getPending,A as state,f as untrack,E as unwatch,y as watch};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esmj/signals",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "Tiny reactive signals.",
5
5
  "keywords": [
6
6
  "signals",
@@ -79,6 +79,6 @@
79
79
  "tsup": "^8.3.5"
80
80
  },
81
81
  "dependencies": {
82
- "@esmj/observable": "^0.1.1"
82
+ "@esmj/observable": "^0.2.2"
83
83
  }
84
84
  }