@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.
Files changed (3) hide show
  1. package/index.cjs +1 -1
  2. package/index.js +1 -1
  3. 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,...c}=n||{},o=new t.ReactiveDataStore(a.state,c.persistence),u=Object.keys(a.actions).reduce((e,t)=>(e[t]=!1,e),{}),l=new t.ReactiveDataStore(u),d=i?new t.StoreObserver(o,c):void 0,m=i?new s:void 0;o.on("action:start",({name:e})=>{l.set(()=>({[e]:!0}))}),o.on("action:complete",e=>{l.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})}),o.on("action:error",e=>{l.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=>(o.isReady()&&e(),o.on("persistence:ready",e)),f=()=>o.isReady(),h=new r.ArtifactContainer(o),b=h.resolve.bind(h);a.artifacts&&Object.entries(a.artifacts).forEach(([e,t])=>{h.register({key:e,factory:t.factory,scope:t.scope,lazy:t.lazy})}),a.transform&&Object.entries(a.transform).forEach(([e,t])=>{o.use({name:e,action:(e,r)=>t({state:e,resolve:b},r)})}),a.validate&&Object.entries(a.validate).forEach(([e,t])=>{o.use({block:!0,name:e,action:(e,r)=>t({state:e,resolve:b},r)})});const S=Object.entries(a.actions).reduce((e,[t,r])=>(o.register({name:t,fn:(e,...t)=>r({state:e,resolve:b},...t)}),e[t]=(...e)=>o.dispatch(t,...e),e),{});return function(t){if(t)if(o.isReady())o.set(t);else{const e=o.on("persistence:ready",()=>{o.set(t),e()})}const r=()=>e.useSyncExternalStore(e=>o.watch("",e),()=>o.get(),()=>o.get()),s=e.useSyncExternalStore(y,f,f);return{select:t=>{const r=o.select(t);return e.useSyncExternalStore(e=>r.subscribe(e),()=>r.get(),()=>r.get())},watch:t=>{const r=l.select(e=>e[t]);return e.useSyncExternalStore(e=>r.subscribe(e),()=>r.get(),()=>r.get())},resolve:t=>{const r=h.watch(t);return e.useSyncExternalStore(e=>r.subscribe(()=>e()),()=>r.get(),()=>r.get())},require:t=>{const r=h.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:o,observer:d,actionTracker:m,get state(){return r}}}};
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),{});return function(t){if(t)if(u.isReady())u.set(t);else{const e=u.on("persistence:ready",()=>{u.set(t),e()})}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};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asaidimu/react-store",
3
- "version": "5.3.0",
3
+ "version": "6.0.0",
4
4
  "description": "Efficient react state manager.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",