@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.
- package/index.cjs +1 -1
- package/index.js +1 -1
- 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;
|
|
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;
|
|
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.
|
|
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.
|
|
29
|
+
"@asaidimu/utils-artifacts": "^3.1.4",
|
|
30
30
|
"@asaidimu/utils-persistence": "^2.2.2",
|
|
31
|
-
"@asaidimu/utils-store": "^7.0.
|
|
32
|
-
"
|
|
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
|
}
|