effector-react
Advanced tools
Comparing version 20.4.1 to 20.4.2
{ | ||
"name": "effector-react", | ||
"version": "20.4.1", | ||
"version": "20.4.2", | ||
"description": "React bindings for effector", | ||
@@ -12,3 +12,3 @@ "main": "effector-react.cjs.js", | ||
"react": "^16.8.0", | ||
"effector": "*" | ||
"effector": "^20.7.0" | ||
}, | ||
@@ -15,0 +15,0 @@ "files": [ |
@@ -1,2 +0,2 @@ | ||
function e(e){if(!effector.is.store(e))throw Error('expect useStore argument to be a store');const t=n.useReducer(c,void 0,e.getState)[1],r=n.useMemo(()=>{const r=e.updates.watch(e=>{r.active&&t(e)});return r.active=1,r},[e]);return a(()=>()=>{r.active=0,r()},[r]),e.getState()}function t({store:t,keys:r,fn:o}){if(!effector.is.store(t))throw Error('useStoreMap expects a store');if(!Array.isArray(r))throw Error('useStoreMap expects an array as keys');if('function'!=typeof o)throw Error('useStoreMap expects a function');const s=n.useMemo(()=>effector.createStore(o(t.getState(),r)).on(t,(e,t)=>o(t,r)),r),c=e(s);return a(()=>()=>{s.off(t),effector.clearNode(s,{deep:1})},r),c}function r(e){return n.useContext(u).find(e).meta.wrapped}function o(e,t){if(0===i.length)throw Error('invoke cannot be called outside of forked .watch');effector.launch(i[i.length-1](e),t)}function s(e){function t(e,t){p.push(e);try{t()}finally{p.pop()}}function r(e,t){p[p.length-1].filter(t=>{for(const r in e)if(t.meta[r]!==e[r])return 0;return 1}).forEach(t)}function o(e){if(!S.has(e))throw Error('no ref found');return S.get(e)}function s(e){S.has(e)||S.set(e,{id:e.id,current:e.current})}function n(e){e.forEach((t,r)=>{t.meta.fork||(e[r]=a(t))})}function a(e){e=c(e);const t=d.indexOf(e);if(-1===t)throw Error('not found');return h[t]}function c(e){return e.graphite||e}const u=e,p=[],d=(e=>{const t=new Set;return function e(r){t.has(r)||(t.add(r),r.next.forEach(e),r.family.owners.forEach(e),r.family.links.forEach(e))}(c(e)),[...t]})(e=c(e)),h=d.map(e=>{const t=effector.createNode({node:e.seq.map(e=>({id:e.id,type:e.type,data:Object.assign({},e.data)})),child:[...e.next],meta:Object.assign({},e.meta),scope:Object.assign({},e.scope)});return t.family={type:e.family.type,links:[...e.family.links],owners:[...e.family.owners]},t});let m=new l;const y={current:0,syncComplete:0};let w=0,g=()=>{if(!y.syncComplete)return;if(0!==y.current)return;const e=w;Promise.resolve().then(()=>{if(e!==w)return;g=f;const t=m.rs;m.rs=f,m=null,t()})};const S=new Map,k=new Map;return t(h,()=>{r({op:'fx',fx:'runner'},e=>{const{scope:t}=e;t.done=a(t.done),t.fail=a(t.fail),t.anyway=a(t.anyway);const r=c(t.anyway),o=effector.createNode({meta:{fork:1},node:[effector.step.run({fn(){y.current-=1,0===y.current&&(w+=1,g())}})]});r.next.push(o)})}),t(d,()=>{r({unit:'store'},e=>{s(e.seq[1].data.store),s(e.seq[3].data.store)}),r({op:'sample',sample:'source'},e=>{s(e.scope.hasSource),s(e.seq[0].data.store)}),r({op:'sample',sample:'clock'},e=>{s(e.scope.hasSource),s(e.scope.sourceState),s(e.scope.clockState)}),r({op:'sample',sample:'store'},e=>{s(e.scope.state)}),r({op:'combine'},e=>{s(e.scope.target),s(e.scope.isFresh)})}),t(h,()=>{r({unit:'store'},e=>{const{seq:t,meta:r}=e,s=o(t[1].data.store),n=o(t[3].data.store);t[1].data.store=s,t[2].data.store=n,t[3].data.store=n,r.plainState=s,r.wrapped=(e=>({kind:'store',getState:()=>e.meta.plainState.current,updates:{watch:t=>((e,t)=>effector.forward({from:e,to:effector.createNode({node:[effector.step.run({fn(e){t(e)}})],family:{type:'crosslink',owners:[]},meta:{op:'watch'}})}))(e,t)},graphite:e,family:e.family}))(e)}),r({op:'sample',sample:'source'},({scope:e,seq:t})=>{e.hasSource=o(e.hasSource),t[0].data.store=o(t[0].data.store)}),r({op:'sample',sample:'clock'},({scope:e})=>{e.hasSource=o(e.hasSource),e.sourceState=o(e.sourceState),e.clockState=o(e.clockState)}),r({op:'sample',sample:'store'},({scope:e})=>{e.state=o(e.state)}),r({op:'combine'},({scope:e})=>{e.target=o(e.target),e.isFresh=o(e.isFresh)}),r({op:'map'},({scope:e})=>{e.state&&(e.state=o(e.state))}),r({op:'on'},({scope:e})=>{e.state=o(e.state)}),r({unit:'domain'},({scope:e})=>{e.history={domains:new Set,stores:new Set,events:new Set,effects:new Set}}),r({unit:'effect'},({scope:e,seq:t})=>{e.runner=a(e.runner),t.push(effector.step.tap({fn(){y.current+=1,w+=1}}))}),r({op:'watch'},({scope:e})=>{const t=e.handler;e.handler=e=>{i.push(a);try{t(e)}finally{i.pop()}}})}),h.forEach(e=>{n(e.next),n(e.family.links),n(e.family.owners)}),S.clear(),k.clear(),{syncComplete(){y.syncComplete=1,0===y.current&&(w+=1,g())},req:m.req,scope:{find:a,getDomain:()=>u,graphite:effector.createNode({node:[],meta:{unit:'domain'},family:{type:'domain',links:h}})}}}Object.defineProperty(exports,'__esModule',{value:1});var effector=require('effector'),n=require('react');const a='undefined'!=typeof window?n.useLayoutEffect:n.useEffect,c=(e,t)=>t,i=[],u=n.createContext(null),{Provider:p}=u,f=()=>{};class l{constructor(){this.req=new Promise((e,t)=>{this.rs=e,this.rj=t})}}exports.Provider=p,exports.cloneGraph=s,exports.fork=(e,{ctx:t,start:r})=>{if(!effector.is.domain(e))return Promise.reject(Error('first argument of fork should be domain'));e.graphite.meta.withScopes||(e.graphite.meta.withScopes=1,e.onCreateEvent(e=>{e.create=t=>(i.length>0?o(e,t):effector.launch(e,t),t)}),e.onCreateEffect(e=>{e.create=t=>{const r=new l,s={"ɔ":{params:t,req:r}};return i.length>0?o(e,s):effector.launch(e,s),r.req}}));const{scope:n,req:a,syncComplete:c}=s(e);return r&&effector.launch(n.find(r),t),c(),a.then(()=>n)},exports.hydrate=(e,{values:t})=>{if(!effector.is.domain(e))throw Error('first argument of hydrate should be domain');if(Object(t)!==t)throw Error('values property should be an object');const r=Object.getOwnPropertyNames(t);e.onCreateStore(e=>{e.sid&&r.includes(e.sid)&&e.setState(t[e.sid])})},exports.invoke=o,exports.scopeBind=e=>{if(0===i.length)throw Error('scopeBind cannot be called outside of forked .watch');const t=i[i.length-1](e);return e=>{effector.launch(t,e)}},exports.serialize=e=>{const t={},r=e.getDomain();for(const o of r.history.stores){if(!o.sid)throw Error('expect store to have sid (need to add "effector/babel-plugin" to babel plugins)');const r=e.find(o).meta.wrapped.getState();t[o.sid]=r}return t},exports.useEvent=e=>{const t=n.useContext(u),r=t.find(e),o=effector.is.effect(e)?e=>{const t=new l;return effector.launch(r,{"ɔ":{params:e,req:t}}),t.req}:e=>(effector.launch(r,e),e);return n.useCallback(o,[t,e])},exports.useList=(e,o)=>(e=>{let r,s=[];if('object'==typeof o&&null!==o?(o.keys&&(s=o.keys),r=o.fn):r=o,!effector.is.store(e))throw Error('expect useList first argument to be a store');if('function'!=typeof r)throw Error("expect useList's renderItem to be a function");if(!Array.isArray(s))throw Error("expect useList's keys to be an array");const a=n.useMemo(()=>{const r=({index:r,keys:o})=>{const s=t({store:e,keys:[r,...o],fn:(e,t)=>e[t[0]]});return i.current(s,r)};return r.displayName=(e.shortName||'Unknown')+".Item",n.memo(r)},[e]),c=t({store:e,keys:[e],fn:e=>e.length}),i=n.useRef(r);i.current=r;const u=n.useMemo(()=>s,s);return Array.from({length:c},(e,t)=>n.createElement(a,{index:t,key:t,keys:u}))})(r(e)),exports.useStore=t=>e(r(t)),exports.useStoreMap=({store:e,keys:o,fn:s})=>t({store:r(e),keys:o,fn:s}); | ||
function e(e){if(!effector.is.store(e))throw Error('expect useStore argument to be a store');const t=o.useReducer(a,void 0,e.getState)[1],r=o.useMemo(()=>{const r=e.updates.watch(e=>{r.active&&t(e)});return r.active=1,r},[e]);return s(()=>()=>{r.active=0,r()},[r]),e.getState()}function t({store:t,keys:r,fn:n}){if(!effector.is.store(t))throw Error('useStoreMap expects a store');if(!Array.isArray(r))throw Error('useStoreMap expects an array as keys');if('function'!=typeof n)throw Error('useStoreMap expects a function');const a=o.useMemo(()=>effector.createStore(n(t.getState(),r)).on(t,(e,t)=>n(t,r)),r),c=e(a);return s(()=>()=>{a.off(t),effector.clearNode(a,{deep:1})},r),c}function r(e){return o.useContext(i).find(e).meta.wrapped}function n(e,t){if(0===c.length)throw Error('invoke cannot be called outside of forked .watch');effector.launch(c[c.length-1](e),t)}Object.defineProperty(exports,'__esModule',{value:1});var effector=require('effector'),o=require('react');const s='undefined'!=typeof window?o.useLayoutEffect:o.useEffect,a=(e,t)=>t,c=[],i=o.createContext(null),{Provider:f}=i,u=()=>{};class p{constructor(){this.req=new Promise((e,t)=>{this.rs=e,this.rj=t})}}exports.Provider=f,exports.fork=(e,{ctx:t,start:r})=>{if(!effector.is.domain(e))return Promise.reject(Error('first argument of fork should be domain'));e.graphite.meta.withScopes||(e.graphite.meta.withScopes=1,e.onCreateEvent(e=>{e.create=t=>(c.length>0?n(e,t):effector.launch(e,t),t)}),e.onCreateEffect(e=>{e.create=t=>{const r=new p,o={"ɔ":{params:t,req:r}};return c.length>0?n(e,o):effector.launch(e,o),r.req}}));const{scope:o,req:s,syncComplete:a}=(()=>{function t(e,t){x.push({type:'op',name:e,cb:t})}function r(e,t){x.push({type:'unit',name:e,cb:t})}function n(e){if(w.has(e))return w.get(e);const t={id:e.id,current:e.current};return w.set(e,t),t}function o(e){e.forEach((t,r)=>{t.meta.fork||(e[r]=s(t))})}function s(e){e=a(e);const t=f.indexOf(e);if(-1===t)throw Error('not found');return l[t]}function a(e){return e.graphite||e}const i=e,f=(e=>{const t=new Set;return function e(r){t.has(r)||(t.add(r),r.next.forEach(e),r.family.owners.forEach(e),r.family.links.forEach(e))}(a(e)),[...t]})(a(e)),l=f.map(e=>{const t=effector.createNode({node:e.seq.map(e=>({id:e.id,type:e.type,data:Object.assign({},e.data),hasRef:e.hasRef})),child:[...e.next],meta:Object.assign({},e.meta),scope:Object.assign({},e.scope)});return t.family={type:e.family.type,links:[...e.family.links],owners:[...e.family.owners]},t});let d=new p;const h={current:0,syncComplete:0};let m=0,y=()=>{if(!h.syncComplete)return;if(0!==h.current)return;const e=m;Promise.resolve().then(()=>{if(e!==m)return;y=u;const t=d.rs;d.rs=u,d=null,t()})};const w=new Map,g=new Map;for(let e=0;e<l.length;e++){const t=l[e];for(const e in t.reg)t.reg[e]=n(t.reg[e])}const x=[];t('fx',e=>{const{scope:t}=e;t.done=s(t.done),t.fail=s(t.fail),t.anyway=s(t.anyway);const r=a(t.anyway),n=effector.createNode({meta:{fork:1},node:[effector.step.run({fn(){h.current-=1,0===h.current&&(m+=1,y())}})]});r.next.push(n)}),r('store',e=>{e.meta.wrapped=(e=>({kind:'store',getState:()=>e.reg[e.scope.state.id].current,updates:{watch:t=>((e,t)=>effector.forward({from:e,to:effector.createNode({node:[effector.step.run({fn(e){t(e)}})],family:{type:'crosslink',owners:[]},meta:{op:'watch'}})}))(e,t)},graphite:e,family:e.family}))(e)}),r('domain',({scope:e})=>{e.history={domains:new Set,stores:new Set,events:new Set,effects:new Set}}),r('effect',({scope:e,seq:t})=>{e.runner=s(e.runner),t.push(effector.step.compute({fn:e=>(h.current+=1,m+=1,e)}))}),t('watch',({scope:e})=>{const t=e.handler;e.handler=e=>{c.push(s);try{t(e)}finally{c.pop()}}});for(let e=0;e<x.length;e++){const{type:t,name:r,cb:n}=x[e];for(let e=0;e<l.length;e++)l[e].meta[t]===r&&n(l[e])}for(let e=0;e<l.length;e++){const t=l[e];o(t.next),o(t.family.links),o(t.family.owners)}return w.clear(),g.clear(),{syncComplete(){h.syncComplete=1,0===h.current&&(m+=1,y())},req:d.req,scope:{find:s,getDomain:()=>i,graphite:effector.createNode({node:[],meta:{unit:'domain'},family:{type:'domain',links:l}})}}})();return r&&effector.launch(o.find(r),t),a(),s.then(()=>o)},exports.hydrate=(e,{values:t})=>{if(!effector.is.domain(e))throw Error('first argument of hydrate should be domain');if(Object(t)!==t)throw Error('values property should be an object');const r=Object.getOwnPropertyNames(t);e.onCreateStore(e=>{e.sid&&r.includes(e.sid)&&e.setState(t[e.sid])})},exports.invoke=n,exports.scopeBind=e=>{if(0===c.length)throw Error('scopeBind cannot be called outside of forked .watch');const t=c[c.length-1](e);return e=>{effector.launch(t,e)}},exports.serialize=e=>{const t={},r=e.getDomain();for(const n of r.history.stores){if(!n.sid)throw Error('expect store to have sid (need to add "effector/babel-plugin" to babel plugins)');const r=e.find(n).meta.wrapped.getState();t[n.sid]=r}return t},exports.useEvent=e=>{const t=o.useContext(i),r=t.find(e),n=effector.is.effect(e)?e=>{const t=new p;return effector.launch(r,{"ɔ":{params:e,req:t}}),t.req}:e=>(effector.launch(r,e),e);return o.useCallback(n,[t,e])},exports.useList=(e,n)=>(e=>{let r,s=[];if('object'==typeof n&&null!==n?(n.keys&&(s=n.keys),r=n.fn):r=n,!effector.is.store(e))throw Error('expect useList first argument to be a store');if('function'!=typeof r)throw Error("expect useList's renderItem to be a function");if(!Array.isArray(s))throw Error("expect useList's keys to be an array");const a=o.useMemo(()=>{const r=({index:r,keys:n})=>{const o=t({store:e,keys:[r,...n],fn:(e,t)=>e[t[0]]});return i.current(o,r)};return r.displayName=(e.shortName||'Unknown')+".Item",o.memo(r)},[e]),c=t({store:e,keys:[e],fn:e=>e.length}),i=o.useRef(r);i.current=r;const f=o.useMemo(()=>s,s);return Array.from({length:c},(e,t)=>o.createElement(a,{index:t,key:t,keys:f}))})(r(e)),exports.useStore=t=>e(r(t)),exports.useStoreMap=({store:e,keys:n,fn:o})=>t({store:r(e),keys:n,fn:o}); | ||
//# sourceMappingURL=ssr.js.map |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
146746
492