@asaidimu/react-store 5.3.0 → 6.0.0
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/index.cjs +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("@asaidimu/utils-store"),r=require("@asaidimu/utils-artifacts"),s=class{executions=[];maxHistory=100;listeners=new Set;track(e){this.executions.unshift(e),this.executions.length>this.maxHistory&&this.executions.pop(),this.notify()}getExecutions(){return[...this.executions]}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.listeners.forEach(e=>e())}};exports.createStore=function(a,n){const{enableMetrics:i,...
|
|
1
|
+
"use strict";var e=require("react"),t=require("@asaidimu/utils-store"),r=require("@asaidimu/utils-artifacts"),s=class{executions=[];maxHistory=100;listeners=new Set;track(e){this.executions.unshift(e),this.executions.length>this.maxHistory&&this.executions.pop(),this.notify()}getExecutions(){return[...this.executions]}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.listeners.forEach(e=>e())}};exports.createStore=function(a,n){const{enableMetrics:i,...o}=n||{},c=new t.ReactiveDataStore(a.state,o.persistence),u=Object.keys(a.actions).reduce((e,t)=>(e[t]=!1,e),{}),d=new t.ReactiveDataStore(u),l=i?new t.StoreObserver(c,o):void 0,m=i?new s:void 0;c.on("action:start",({name:e})=>{d.set(()=>({[e]:!0}))}),c.on("action:complete",e=>{d.set(()=>({[e.name]:!1})),i&&m&&m.track({id:e.actionId,name:e.name,params:e.params,startTime:e.startTime,endTime:e.endTime,duration:e.duration,status:"success",result:e.result})}),c.on("action:error",e=>{d.set(()=>({[e.name]:!1})),i&&m&&m.track({id:e.actionId,name:e.name,params:e.params,startTime:e.startTime,endTime:e.endTime,duration:e.duration,status:"error",error:e.error})});const y=e=>(c.isReady()&&e(),c.on("persistence:ready",e)),h=()=>c.isReady(),f=new r.ArtifactContainer(c),b=f.resolve.bind(f);a.artifacts&&Object.entries(a.artifacts).forEach(([e,t])=>{f.register({key:e,factory:t.factory,scope:t.scope,lazy:t.lazy})}),a.transform&&Object.entries(a.transform).forEach(([e,t])=>{c.use({name:e,action:(e,r)=>t({state:e,resolve:b},r)})}),a.validate&&Object.entries(a.validate).forEach(([e,t])=>{c.use({block:!0,name:e,action:(e,r)=>t({state:e,resolve:b},r)})});const S=Object.entries(a.actions).reduce((e,[t,r])=>(c.register({name:t,fn:(e,...t)=>r({state:e,resolve:b},...t)}),e[t]=(...e)=>c.dispatch(t,...e),e),{}),g=new Promise(e=>{c.isReady()&&e();const t=c.on("persistence:ready",()=>{t(),e()})});return function(t){if(!c.isReady())throw g;t&&c.set(t);const r=()=>e.useSyncExternalStore(e=>c.watch("",e),()=>c.get(),()=>c.get()),s=e.useSyncExternalStore(y,h,h);return{select:t=>{const r=c.select(t);return e.useSyncExternalStore(e=>r.subscribe(e),()=>r.get(),()=>r.get())},watch:t=>{const r=d.select(e=>e[t]);return e.useSyncExternalStore(e=>r.subscribe(e),()=>r.get(),()=>r.get())},resolve:t=>{const r=f.watch(t);return e.useSyncExternalStore(e=>r.subscribe(()=>e()),()=>r.get(),()=>r.get())},require:t=>{const r=f.watch(t),s=e.useSyncExternalStore(e=>r.subscribe(()=>e()),()=>r.get(),()=>r.get());if(!s.ready)throw r.resolve();if(s.ready&&s.error)throw s.error;return s.instance},actions:S,isReady:s,store:c,observer:l,actionTracker:m,get state(){return r}}}};
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useSyncExternalStore as e}from"react";import{ReactiveDataStore as t,StoreObserver as s}from"@asaidimu/utils-store";import{ArtifactContainer as r}from"@asaidimu/utils-artifacts";var a=class{executions=[];maxHistory=100;listeners=new Set;track(e){this.executions.unshift(e),this.executions.length>this.maxHistory&&this.executions.pop(),this.notify()}getExecutions(){return[...this.executions]}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.listeners.forEach(e=>e())}};function i(i,n){const{enableMetrics:o,...c}=n||{},u=new t(i.state,c.persistence),m=Object.keys(i.actions).reduce((e,t)=>(e[t]=!1,e),{}),d=new t(m),l=o?new s(u,c):void 0,f=o?new a:void 0;u.on("action:start",({name:e})=>{d.set(()=>({[e]:!0}))}),u.on("action:complete",e=>{d.set(()=>({[e.name]:!1})),o&&f&&f.track({id:e.actionId,name:e.name,params:e.params,startTime:e.startTime,endTime:e.endTime,duration:e.duration,status:"success",result:e.result})}),u.on("action:error",e=>{d.set(()=>({[e.name]:!1})),o&&f&&f.track({id:e.actionId,name:e.name,params:e.params,startTime:e.startTime,endTime:e.endTime,duration:e.duration,status:"error",error:e.error})});const h=e=>(u.isReady()&&e(),u.on("persistence:ready",e)),b=()=>u.isReady(),y=new r(u),p=y.resolve.bind(y);i.artifacts&&Object.entries(i.artifacts).forEach(([e,t])=>{y.register({key:e,factory:t.factory,scope:t.scope,lazy:t.lazy})}),i.transform&&Object.entries(i.transform).forEach(([e,t])=>{u.use({name:e,action:(e,s)=>t({state:e,resolve:p},s)})}),i.validate&&Object.entries(i.validate).forEach(([e,t])=>{u.use({block:!0,name:e,action:(e,s)=>t({state:e,resolve:p},s)})});const g=Object.entries(i.actions).reduce((e,[t,s])=>(u.register({name:t,fn:(e,...t)=>s({state:e,resolve:p},...t)}),e[t]=(...e)=>u.dispatch(t,...e),e),{})
|
|
1
|
+
import{useSyncExternalStore as e}from"react";import{ReactiveDataStore as t,StoreObserver as s}from"@asaidimu/utils-store";import{ArtifactContainer as r}from"@asaidimu/utils-artifacts";var a=class{executions=[];maxHistory=100;listeners=new Set;track(e){this.executions.unshift(e),this.executions.length>this.maxHistory&&this.executions.pop(),this.notify()}getExecutions(){return[...this.executions]}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.listeners.forEach(e=>e())}};function i(i,n){const{enableMetrics:o,...c}=n||{},u=new t(i.state,c.persistence),m=Object.keys(i.actions).reduce((e,t)=>(e[t]=!1,e),{}),d=new t(m),l=o?new s(u,c):void 0,f=o?new a:void 0;u.on("action:start",({name:e})=>{d.set(()=>({[e]:!0}))}),u.on("action:complete",e=>{d.set(()=>({[e.name]:!1})),o&&f&&f.track({id:e.actionId,name:e.name,params:e.params,startTime:e.startTime,endTime:e.endTime,duration:e.duration,status:"success",result:e.result})}),u.on("action:error",e=>{d.set(()=>({[e.name]:!1})),o&&f&&f.track({id:e.actionId,name:e.name,params:e.params,startTime:e.startTime,endTime:e.endTime,duration:e.duration,status:"error",error:e.error})});const h=e=>(u.isReady()&&e(),u.on("persistence:ready",e)),b=()=>u.isReady(),y=new r(u),p=y.resolve.bind(y);i.artifacts&&Object.entries(i.artifacts).forEach(([e,t])=>{y.register({key:e,factory:t.factory,scope:t.scope,lazy:t.lazy})}),i.transform&&Object.entries(i.transform).forEach(([e,t])=>{u.use({name:e,action:(e,s)=>t({state:e,resolve:p},s)})}),i.validate&&Object.entries(i.validate).forEach(([e,t])=>{u.use({block:!0,name:e,action:(e,s)=>t({state:e,resolve:p},s)})});const g=Object.entries(i.actions).reduce((e,[t,s])=>(u.register({name:t,fn:(e,...t)=>s({state:e,resolve:p},...t)}),e[t]=(...e)=>u.dispatch(t,...e),e),{}),w=new Promise(e=>{u.isReady()&&e();const t=u.on("persistence:ready",()=>{t(),e()})});return function(t){if(!u.isReady())throw w;t&&u.set(t);const s=()=>e(e=>u.watch("",e),()=>u.get(),()=>u.get()),r=e(h,b,b);return{select:t=>{const s=u.select(t);return e(e=>s.subscribe(e),()=>s.get(),()=>s.get())},watch:t=>{const s=d.select(e=>e[t]);return e(e=>s.subscribe(e),()=>s.get(),()=>s.get())},resolve:t=>{const s=y.watch(t);return e(e=>s.subscribe(()=>e()),()=>s.get(),()=>s.get())},require:t=>{const s=y.watch(t),r=e(e=>s.subscribe(()=>e()),()=>s.get(),()=>s.get());if(!r.ready)throw s.resolve();if(r.ready&&r.error)throw r.error;return r.instance},actions:g,isReady:r,store:u,observer:l,actionTracker:f,get state(){return s}}}}export{i as createStore};
|