@fane_the_divine/react-signal 0.0.0 → 0.0.1

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");let h;const y=()=>h;function E(o,t){const u=h;h=t;const s=o();return h=u,s}let p;const m=()=>p;function S(o,t){const u=p;p=t;const s=o();return p=u,s}function C(o){let t=o;const u=new Set;function s(){const n=y();return n&&!u.has(n)&&(u.add(n),n.listenRangeDestory(()=>u.delete(n))),t}Object.defineProperty(s,"value",{get(){return t}});function e(n){t!==n&&(t=n,u.forEach(l=>l.onSignalChange()))}return[s,e]}function v(o){const t=u=>{const[,s]=d.useReducer(()=>({}),null),e=d.useRef(null);if(e.current)e.current.propsSignal[1](u);else{const r={onSignalChange:()=>{var i;(i=e.current)!=null&&i.isRending||s()},listenRangeDestory:i=>{var c;(c=e.current)==null||c.cleanups.push(i)}},f={addEffectFn:i=>{var c;return(c=e.current)==null?void 0:c.effects.push(i)},addLayoutEffectFn:i=>{var c;return(c=e.current)==null?void 0:c.layoutEffects.push(i)}},g=C(u);e.current={reactivityRange:r,componentRange:f,cleanups:[],effects:[],layoutEffects:[],isRending:!1,propsSignal:g};const a=E(()=>S(()=>o(g[0]),f),r);e.current.render=a}d.useEffect(()=>()=>{if(!e.current)return;const r=e.current.cleanups;e.current=null,r.forEach(f=>f())},[]),d.useLayoutEffect(()=>{if(!e.current)return;const r=e.current.effects;e.current.effects=[],r.forEach(f=>f())}),d.useEffect(()=>{if(!e.current)return;const r=e.current.layoutEffects;e.current.layoutEffects=[],r.forEach(f=>f())});const{render:n,reactivityRange:l}=e.current;e.current.isRending=!0;const R=E(n,l);return e.current.isRending=!1,R};return d.memo(t)}function D(o,t,u){let s=[];function e(){s.forEach(c=>c()),s=[]}const n=y();n==null||n.listenRangeDestory(e);let l;const R={onSignalChange:()=>{f=!0},listenRangeDestory:c=>{s.push(c)}},r=m();let f=!0,g=!0;function a(){const{layoutEffect:c}=u??{};c?r==null||r.addLayoutEffectFn(i):r==null||r.addEffectFn(i)}function i(){a(),f&&(f=!1,e(),E(()=>{t==null||t.forEach(c=>c()),l=o(l,g),g=!1},R))}a()}function F(o,t=Object.is){let u=[];function s(){u.forEach(a=>a()),u=[]}const e=y();e==null||e.listenRangeDestory(s);let n,l=!0;const R={onSignalChange:()=>{l=!0},listenRangeDestory:a=>{u.push(a)}},r=new Set;function f(a=!0){if(!l)return;s();const i=n;E(()=>{n=o(i)},R),l=!1,!(!a||t(i,n))&&r.forEach(c=>c.onSignalChange())}function g(){f();const a=y();return a&&!r.has(a)&&(r.add(a),a.listenRangeDestory(()=>r.delete(a))),n}return Object.defineProperty(g,"value",{get(){return f(!1),n}}),g}function b(o){const t=y();t==null||t.listenRangeDestory(()=>E(o,void 0))}function M(o){return{current:o??null}}exports.createEffect=D;exports.createMemo=F;exports.createRef=M;exports.createSignal=C;exports.defineComponent=v;exports.onCleanup=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");let h;const y=()=>h;function E(o,t){const u=h;h=t;const s=o();return h=u,s}let p;const m=()=>p;function S(o,t){const u=p;p=t;const s=o();return p=u,s}function C(o){let t=o;const u=new Set;function s(){const n=y();return n&&!u.has(n)&&(u.add(n),n.listenRangeDestory(()=>u.delete(n))),t}Object.defineProperty(s,"value",{get(){return t}});function e(n){t!==n&&(t=n,u.forEach(l=>l.onSignalChange()))}return[s,e]}function v(o){const t=u=>{const[,s]=d.useReducer(()=>({}),null),e=d.useRef(null);if(e.current)e.current.propsSignal[1](u);else{const r={onSignalChange:()=>{var i;(i=e.current)!=null&&i.isRending||s()},listenRangeDestory:i=>{var c;(c=e.current)==null||c.cleanups.push(i)}},f={addEffectFn:i=>{var c;return(c=e.current)==null?void 0:c.effects.push(i)},addLayoutEffectFn:i=>{var c;return(c=e.current)==null?void 0:c.layoutEffects.push(i)}},g=C(u);e.current={reactivityRange:r,componentRange:f,cleanups:[],effects:[],layoutEffects:[],isRending:!1,propsSignal:g};const a=E(()=>S(()=>o(g[0]),f),r);e.current.render=a}d.useEffect(()=>()=>{if(!e.current)return;const r=e.current.cleanups;e.current=null,r.forEach(f=>f())},[]),d.useLayoutEffect(()=>{if(!e.current)return;const r=e.current.layoutEffects;e.current.layoutEffects=[],r.forEach(f=>f())}),d.useEffect(()=>{if(!e.current)return;const r=e.current.effects;e.current.effects=[],r.forEach(f=>f())});const{render:n,reactivityRange:l}=e.current;e.current.isRending=!0;const R=E(n,l);return e.current.isRending=!1,R};return d.memo(t)}function D(o,t,u){let s=[];function e(){s.forEach(c=>c()),s=[]}const n=y();n==null||n.listenRangeDestory(e);let l;const R={onSignalChange:()=>{f=!0},listenRangeDestory:c=>{s.push(c)}},r=m();let f=!0,g=!0;function a(){const{layoutEffect:c}=u??{};c?r==null||r.addLayoutEffectFn(i):r==null||r.addEffectFn(i)}function i(){a(),f&&(f=!1,e(),E(()=>{t==null||t.forEach(c=>c()),l=o(l,g),g=!1},R))}a()}function F(o,t=Object.is){let u=[];function s(){u.forEach(a=>a()),u=[]}const e=y();e==null||e.listenRangeDestory(s);let n,l=!0;const R={onSignalChange:()=>{l=!0},listenRangeDestory:a=>{u.push(a)}},r=new Set;function f(a=!0){if(!l)return;s();const i=n;E(()=>{n=o(i)},R),l=!1,!(!a||t(i,n))&&r.forEach(c=>c.onSignalChange())}function g(){f();const a=y();return a&&!r.has(a)&&(r.add(a),a.listenRangeDestory(()=>r.delete(a))),n}return Object.defineProperty(g,"value",{get(){return f(!1),n}}),g}function b(o){const t=y();t==null||t.listenRangeDestory(()=>E(o,void 0))}function M(o){return{current:o??null}}exports.createEffect=D;exports.createMemo=F;exports.createRef=M;exports.createSignal=C;exports.defineComponent=v;exports.onCleanup=b;
@@ -77,13 +77,13 @@ function L(a) {
77
77
  const n = e.current.cleanups;
78
78
  e.current = null, n.forEach((f) => f());
79
79
  }, []), S(() => {
80
- if (!e.current) return;
81
- const n = e.current.effects;
82
- e.current.effects = [], n.forEach((f) => f());
83
- }), p(() => {
84
80
  if (!e.current) return;
85
81
  const n = e.current.layoutEffects;
86
82
  e.current.layoutEffects = [], n.forEach((f) => f());
83
+ }), p(() => {
84
+ if (!e.current) return;
85
+ const n = e.current.effects;
86
+ e.current.effects = [], n.forEach((f) => f());
87
87
  });
88
88
  const { render: t, reactivityRange: l } = e.current;
89
89
  e.current.isRending = !0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fane_the_divine/react-signal",
3
- "version": "0.0.0",
3
+ "version": "0.0.1",
4
4
  "type": "module",
5
5
  "description": "在react中使用signal",
6
6
  "license": "MIT",