@asaidimu/react-store 5.0.0 → 5.1.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.
Files changed (3) hide show
  1. package/index.cjs +1 -1
  2. package/index.js +1 -1
  3. package/package.json +4 -6
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,{enableMetrics:n,...i}={}){const c=new t.ReactiveDataStore(a.state,i.persistence),o=Object.keys(a.actions).reduce((e,t)=>(e[t]=!1,e),{}),u=new t.ReactiveDataStore(o),l=n?new t.StoreObserver(c,i):void 0,d=n?new s:void 0;n&&d&&(c.on("action:start",({name:e})=>{u.set(()=>({[e]:!0}))}),c.on("action:complete",e=>{u.set(()=>({[e.name]:!1})),d.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=>{u.set(()=>({[e.name]:!1})),d.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 m=e=>(c.isReady()&&e(),c.on("persistence:ready",e)),h=()=>c.isReady(),y=new r.ArtifactContainer(c),f=y.resolve.bind(y);a.artifacts&&Object.entries(a.artifacts).forEach(([e,t])=>{y.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:f},r)})}),a.validate&&Object.entries(a.validate).forEach(([e,t])=>{c.use({block:!0,name:e,action:(e,r)=>t({state:e,resolve:f},r)})});const b=Object.entries(a.actions).reduce((e,[t,r])=>(c.register({name:t,fn:(e,...t)=>r({state:e,resolve:f},...t)}),e[t]=(...e)=>c.dispatch(t,...e),e),{});return function(){const t=()=>e.useSyncExternalStore(e=>c.watch("",e),()=>c.get(),()=>c.get()),r=e.useSyncExternalStore(m,h,h);return{select:t=>{const r=c.select(t);return e.useSyncExternalStore(e=>r.subscribe(e),()=>r.get(),()=>r.get())},watch:t=>e.useSyncExternalStore(e=>u.watch(t,e),()=>!!u.get()[t],()=>!!u.get()[t]),resolve:t=>{const r=y.watch(t);return e.useSyncExternalStore(e=>r.subscribe(()=>e()),()=>r.get(),()=>r.get())},actions:b,isReady:r,store:c,observer:l,actionTracker:d,get state(){return t}}}};
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,{enableMetrics:n,...i}={}){const c=new t.ReactiveDataStore(a.state,i.persistence),o=Object.keys(a.actions).reduce((e,t)=>(e[t]=!1,e),{}),u=new t.ReactiveDataStore(o),l=n?new t.StoreObserver(c,i):void 0,d=n?new s:void 0;c.on("action:start",({name:e})=>{u.set(()=>({[e]:!0}))}),c.on("action:complete",e=>{u.set(()=>({[e.name]:!1})),n&&d&&d.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=>{u.set(()=>({[e.name]:!1})),n&&d&&d.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 m=e=>(c.isReady()&&e(),c.on("persistence:ready",e)),h=()=>c.isReady(),y=new r.ArtifactContainer(c),b=y.resolve.bind(y);a.artifacts&&Object.entries(a.artifacts).forEach(([e,t])=>{y.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 f=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),{});return function(){const t=()=>e.useSyncExternalStore(e=>c.watch("",e),()=>c.get(),()=>c.get()),r=e.useSyncExternalStore(m,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=u.select(e=>e[t]);return e.useSyncExternalStore(e=>r.subscribe(e),()=>r.get(),()=>r.get())},resolve:t=>{const r=y.watch(t);return e.useSyncExternalStore(e=>r.subscribe(()=>e()),()=>r.get(),()=>r.get())},actions:f,isReady:r,store:c,observer:l,actionTracker:d,get state(){return t}}}};
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,{enableMetrics:n,...o}={}){const c=new t(i.state,o.persistence),u=Object.keys(i.actions).reduce((e,t)=>(e[t]=!1,e),{}),m=new t(u),d=n?new s(c,o):void 0,l=n?new a:void 0;n&&l&&(c.on("action:start",({name:e})=>{m.set(()=>({[e]:!0}))}),c.on("action:complete",e=>{m.set(()=>({[e.name]:!1})),l.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=>{m.set(()=>({[e.name]:!1})),l.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 f=e=>(c.isReady()&&e(),c.on("persistence:ready",e)),h=()=>c.isReady(),p=new r(c),b=p.resolve.bind(p);i.artifacts&&Object.entries(i.artifacts).forEach(([e,t])=>{p.register({key:e,factory:t.factory,scope:t.scope,lazy:t.lazy})}),i.transform&&Object.entries(i.transform).forEach(([e,t])=>{c.use({name:e,action:(e,s)=>t({state:e,resolve:b},s)})}),i.validate&&Object.entries(i.validate).forEach(([e,t])=>{c.use({block:!0,name:e,action:(e,s)=>t({state:e,resolve:b},s)})});const y=Object.entries(i.actions).reduce((e,[t,s])=>(c.register({name:t,fn:(e,...t)=>s({state:e,resolve:b},...t)}),e[t]=(...e)=>c.dispatch(t,...e),e),{});return function(){const t=()=>e(e=>c.watch("",e),()=>c.get(),()=>c.get()),s=e(f,h,h);return{select:t=>{const s=c.select(t);return e(e=>s.subscribe(e),()=>s.get(),()=>s.get())},watch:t=>e(e=>m.watch(t,e),()=>!!m.get()[t],()=>!!m.get()[t]),resolve:t=>{const s=p.watch(t);return e(e=>s.subscribe(()=>e()),()=>s.get(),()=>s.get())},actions:y,isReady:s,store:c,observer:d,actionTracker:l,get state(){return t}}}}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,{enableMetrics:n,...o}={}){const c=new t(i.state,o.persistence),u=Object.keys(i.actions).reduce((e,t)=>(e[t]=!1,e),{}),m=new t(u),d=n?new s(c,o):void 0,l=n?new a:void 0;c.on("action:start",({name:e})=>{m.set(()=>({[e]:!0}))}),c.on("action:complete",e=>{m.set(()=>({[e.name]:!1})),n&&l&&l.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=>{m.set(()=>({[e.name]:!1})),n&&l&&l.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 f=e=>(c.isReady()&&e(),c.on("persistence:ready",e)),h=()=>c.isReady(),b=new r(c),p=b.resolve.bind(b);i.artifacts&&Object.entries(i.artifacts).forEach(([e,t])=>{b.register({key:e,factory:t.factory,scope:t.scope,lazy:t.lazy})}),i.transform&&Object.entries(i.transform).forEach(([e,t])=>{c.use({name:e,action:(e,s)=>t({state:e,resolve:p},s)})}),i.validate&&Object.entries(i.validate).forEach(([e,t])=>{c.use({block:!0,name:e,action:(e,s)=>t({state:e,resolve:p},s)})});const y=Object.entries(i.actions).reduce((e,[t,s])=>(c.register({name:t,fn:(e,...t)=>s({state:e,resolve:p},...t)}),e[t]=(...e)=>c.dispatch(t,...e),e),{});return function(){const t=()=>e(e=>c.watch("",e),()=>c.get(),()=>c.get()),s=e(f,h,h);return{select:t=>{const s=c.select(t);return e(e=>s.subscribe(e),()=>s.get(),()=>s.get())},watch:t=>{const s=m.select(e=>e[t]);return e(e=>s.subscribe(e),()=>s.get(),()=>s.get())},resolve:t=>{const s=b.watch(t);return e(e=>s.subscribe(()=>e()),()=>s.get(),()=>s.get())},actions:y,isReady:s,store:c,observer:d,actionTracker:l,get state(){return t}}}}export{i as createStore};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asaidimu/react-store",
3
- "version": "5.0.0",
3
+ "version": "5.1.1",
4
4
  "description": "Efficient react state manager.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -26,11 +26,9 @@
26
26
  "access": "public"
27
27
  },
28
28
  "dependencies": {
29
- "@asaidimu/utils-artifacts": "^3.1.0",
29
+ "@asaidimu/utils-artifacts": "^3.1.4",
30
30
  "@asaidimu/utils-persistence": "^2.2.2",
31
- "@asaidimu/utils-store": "^7.0.0",
32
- "hash-wasm": "^4.12.0",
33
- "react": "^19.2.0",
34
- "uuid": "^11.1.0"
31
+ "@asaidimu/utils-store": "^7.0.1",
32
+ "react": "^19.2.1"
35
33
  }
36
34
  }