react-hooks-global-states 16.0.2 → 16.0.3-beta.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/GlobalStore.cjs +1 -1
- package/GlobalStore.js +1 -1
- package/GlobalStore.mjs +1 -1
- package/package.json +1 -1
package/GlobalStore.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var z=Object.create;var m=Object.defineProperty,D=Object.defineProperties,K=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,$=Object.getOwnPropertyNames,E=Object.getOwnPropertySymbols,J=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var H=(n,t,e)=>t in n?m(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,g=(n,t)=>{for(var e in t||(t={}))_.call(t,e)&&H(n,e,t[e]);if(E)for(var e of E(t))Q.call(t,e)&&H(n,e,t[e]);return n},O=(n,t)=>D(n,N(t));var X=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})},U=(n,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!_.call(n,s)&&s!==e&&m(n,s,{get:()=>t[s],enumerable:!(a=K(t,s))||a.enumerable});return n};var M=(n,t,e)=>(e=n!=null?z(J(n)):{},U(t||!n||!n.__esModule?m(e,"default",{value:n,enumerable:!0}):e,n)),Y=n=>U(m({},"__esModule",{value:!0}),n);var tt={};X(tt,{GlobalStore:()=>C,createObservable:()=>y,createSelectorHook:()=>R,default:()=>Z});module.exports=Y(tt);var k=require("react"),f=M(require("json-storage-formatter/isFunction")),q=M(require("./isRecord.cjs")),A=M(require("./shallowCompare.cjs")),j=M(require("./throwWrongKeyOnActionCollectionConfig.cjs")),v=M(require("./uniqueId.cjs")),T=M(require("./GlobalStore.debugProps.cjs"));var C=class n{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var r,l,u;this.dispose=this.dispose.bind(this),this.getMetadata=this.getMetadata.bind(this),this.getState=this.getState.bind(this),this.reset=this.reset.bind(this),this.setMetadata=this.setMetadata.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this);let{metadata:a,callbacks:s,actions:i,name:c}=e;if((0,f.default)(t)&&(this.stateCallback=t),(0,f.default)(a)&&(this.metadataCallback=a),this._name=c!=null?c:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=i!=null?i:null,T.default.isDevToolsPresent){let b=(r=new Error().stack)!=null?r:"";(u=(l=T.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(l,this,e,b)}this.constructor===n&&this.initialize()}async initialize(){var r,l,u,b,d,S,h,p;let t=(l=(r=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:r.call(this))!=null?l:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,f.default)(s)&&this.cleanupFunctions.push(s);let{onInit:i}=(d=this.callbacks)!=null?d:{};if(!i)return;let c=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,o=(p=i==null?void 0:i(c))!=null?p:null;(0,f.default)(o)&&this.cleanupFunctions.push(o)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:i,isEqualRoot:c=(l,u)=>l===u,isEqual:o=(l,u)=>l===u}=t;if(!e.forceUpdate&&c(e.currentState,e.newState))return{didUpdate:!1};let r=a?a(e.newState):e.newState;return!e.forceUpdate&&o(i,r)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:r}),s({state:r},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let c=this.subscribers.values(),o={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let r of c)this.executeSetStateForSubscriber(r,o)}setMetadata(t){let e=(0,f.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,f.default)(e),i=s?t:void 0,c=s?e:t,o=(u=s?a:e)!=null?u:void 0,r=i?i(this.state):this.state;o!=null&&o.skipFirst||c(r);let l=g({selector:i,currentState:r,onStoreChange:({state:b})=>c(b)},o);return this.subscribeCallback(l),()=>{this.subscribers.delete(l)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(d,S=[])=>{(0,k.useDebugValue)(t);let h=(0,A.isArray)(S)?{dependencies:S}:S!=null?S:{},p=(0,k.useRef)(null),x=P=>(0,f.default)(d)?d(P):P;p.current=p.current?p.current:g({selector:x,currentState:x(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},h);let V=p.current.dependencies,w=h==null?void 0:h.dependencies,W=O(g({},h),{selector:x,dependencies:w});this.partialUpdateSubscription(p.current,W);let{subscribe:B,getSnapshot:I,getServerSnapshot:L}=(0,k.useMemo)(()=>{let P=G=>(p.current.onStoreChange=G,this.subscribeCallback(p.current)),F=()=>p.current.currentState;return{subscribe:P,getSnapshot:F,getServerSnapshot:F}},[]);return this.reselectIfDependenciesChanged({subscription:p.current,newDependencies:w,currentDependencies:V}),[(0,k.useSyncExternalStore)(B,I,L),this.getStateOrchestrator(),this.metadata]},a=this,{getMetadata:s,dispose:i,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u}=this,b={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:i,metadata:void 0,getMetadata:s,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u,subscribers:this.subscribers,use:e,select:(...d)=>e(...d)[0]};return Object.assign(e,b),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState}setState(t,{forceUpdate:e,identifier:a}={}){var l,u,b,d,S,h;let s=this.state,i=(0,f.default)(t)?t(s):t;if(!e&&this.state===i)return;let c=this.setActualStateWithoutValidations,o={previousState:s,state:i,identifier:a},r=O(g(g({},this.storeTools),o),{setState:c});Object.defineProperty(r,"metadata",{configurable:!0,enumerable:!0,get:r.getMetadata}),!((l=this.callbacks)!=null&&l.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,r)))&&(this.setActualStateWithoutValidations(i,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,r),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,r))}getStoreActionsMap(){let{getMetadata:t,setMetadata:e,getState:a,setState:s,subscribe:i}=this,c={setMetadata:e,get metadata(){return t()},getMetadata:t,getState:a,setState:s,subscribe:i,actions:null};if(!(0,q.default)(this.actionsConfig))return{actions:null,storeTools:c};let o=this.actionsConfig,r={};c.actions=r;let l=Object.keys(o);for(let u of l)Object.assign(r,{[u](...b){let S=o[u].apply(r,b);return typeof S!="function"&&(0,j.default)(u),S.call(r,c)}});return{actions:r,storeTools:c}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var l,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let i=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;(0,f.default)(i)&&this.cleanupFunctions.push(i);let{onInit:c}=(b=this.callbacks)!=null?b:{};if(!c)return;let o=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,r=(h=c==null?void 0:c(o))!=null?h:null;(0,f.default)(r)&&this.cleanupFunctions.push(r)}};function y(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=o.subscribe.bind(o),u={getState:o.getState.bind(o),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}function R(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=(...b)=>{let[d]=o.use(...b);return d},u={getState:()=>o.getState(),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}var Z=C;
|
package/GlobalStore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var z=Object.create;var m=Object.defineProperty,D=Object.defineProperties,K=Object.getOwnPropertyDescriptor,N=Object.getOwnPropertyDescriptors,$=Object.getOwnPropertyNames,E=Object.getOwnPropertySymbols,J=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var H=(n,t,e)=>t in n?m(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,g=(n,t)=>{for(var e in t||(t={}))_.call(t,e)&&H(n,e,t[e]);if(E)for(var e of E(t))Q.call(t,e)&&H(n,e,t[e]);return n},O=(n,t)=>D(n,N(t));var X=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})},U=(n,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $(t))!_.call(n,s)&&s!==e&&m(n,s,{get:()=>t[s],enumerable:!(a=K(t,s))||a.enumerable});return n};var M=(n,t,e)=>(e=n!=null?z(J(n)):{},U(t||!n||!n.__esModule?m(e,"default",{value:n,enumerable:!0}):e,n)),Y=n=>U(m({},"__esModule",{value:!0}),n);var tt={};X(tt,{GlobalStore:()=>C,createObservable:()=>y,createSelectorHook:()=>R,default:()=>Z});module.exports=Y(tt);var k=require("react"),f=M(require("json-storage-formatter/isFunction")),q=M(require("./isRecord.js")),A=M(require("./shallowCompare.js")),j=M(require("./throwWrongKeyOnActionCollectionConfig.js")),v=M(require("./uniqueId.js")),T=M(require("./GlobalStore.debugProps.js"));var C=class n{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=R;this.createObservable=y;var r,l,u;this.dispose=this.dispose.bind(this),this.getMetadata=this.getMetadata.bind(this),this.getState=this.getState.bind(this),this.reset=this.reset.bind(this),this.setMetadata=this.setMetadata.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this);let{metadata:a,callbacks:s,actions:i,name:c}=e;if((0,f.default)(t)&&(this.stateCallback=t),(0,f.default)(a)&&(this.metadataCallback=a),this._name=c!=null?c:(0,v.default)("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=s!=null?s:null,this.actionsConfig=i!=null?i:null,T.default.isDevToolsPresent){let b=(r=new Error().stack)!=null?r:"";(u=(l=T.default).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||u.call(l,this,e,b)}this.constructor===n&&this.initialize()}async initialize(){var r,l,u,b,d,S,h,p;let t=(l=(r=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:r.call(this))!=null?l:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let s=(b=(u=this.onInit)==null?void 0:u.call(this))!=null?b:null;(0,f.default)(s)&&this.cleanupFunctions.push(s);let{onInit:i}=(d=this.callbacks)!=null?d:{};if(!i)return;let c=(h=(S=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:S.call(this,"config/onInit/"))!=null?h:a,o=(p=i==null?void 0:i(c))!=null?p:null;(0,f.default)(o)&&this.cleanupFunctions.push(o)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:s,currentState:i,isEqualRoot:c=(l,u)=>l===u,isEqual:o=(l,u)=>l===u}=t;if(!e.forceUpdate&&c(e.currentState,e.newState))return{didUpdate:!1};let r=a?a(e.newState):e.newState;return!e.forceUpdate&&o(i,r)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:r}),s({state:r},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let s=this.state;if(!(e||s!==t))return;this.state=t;let c=this.subscribers.values(),o={forceUpdate:e,newState:t,currentState:s,identifier:a};for(let r of c)this.executeSetStateForSubscriber(r,o)}setMetadata(t){let e=(0,f.default)(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var u;let s=(0,f.default)(e),i=s?t:void 0,c=s?e:t,o=(u=s?a:e)!=null?u:void 0,r=i?i(this.state):this.state;o!=null&&o.skipFirst||c(r);let l=g({selector:i,currentState:r,onStoreChange:({state:b})=>c(b)},o);return this.subscribeCallback(l),()=>{this.subscribers.delete(l)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(d,S=[])=>{(0,k.useDebugValue)(t);let h=(0,A.isArray)(S)?{dependencies:S}:S!=null?S:{},p=(0,k.useRef)(null),x=P=>(0,f.default)(d)?d(P):P;p.current=p.current?p.current:g({selector:x,currentState:x(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},h);let V=p.current.dependencies,w=h==null?void 0:h.dependencies,W=O(g({},h),{selector:x,dependencies:w});this.partialUpdateSubscription(p.current,W);let{subscribe:B,getSnapshot:I,getServerSnapshot:L}=(0,k.useMemo)(()=>{let P=G=>(p.current.onStoreChange=G,this.subscribeCallback(p.current)),F=()=>p.current.currentState;return{subscribe:P,getSnapshot:F,getServerSnapshot:F}},[]);return this.reselectIfDependenciesChanged({subscription:p.current,newDependencies:w,currentDependencies:V}),[(0,k.useSyncExternalStore)(B,I,L),this.getStateOrchestrator(),this.metadata]},a=this,{getMetadata:s,dispose:i,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u}=this,b={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:i,metadata:void 0,getMetadata:s,getState:c,reset:o,setMetadata:r,setState:l,subscribe:u,subscribers:this.subscribers,use:e,select:(...d)=>e(...d)[0]};return Object.assign(e,b),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:s}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&(0,A.default)(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState}setState(t,{forceUpdate:e,identifier:a}={}){var l,u,b,d,S,h;let s=this.state,i=(0,f.default)(t)?t(s):t;if(!e&&this.state===i)return;let c=this.setActualStateWithoutValidations,o={previousState:s,state:i,identifier:a},r=O(g(g({},this.storeTools),o),{setState:c});Object.defineProperty(r,"metadata",{configurable:!0,enumerable:!0,get:r.getMetadata}),!((l=this.callbacks)!=null&&l.computePreventStateChange&&((b=(u=this.callbacks)==null?void 0:u.computePreventStateChange)!=null&&b.call(u,r)))&&(this.setActualStateWithoutValidations(i,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,r),(h=(S=this.callbacks)==null?void 0:S.onStateChanged)==null||h.call(S,r))}getStoreActionsMap(){let{getMetadata:t,setMetadata:e,getState:a,setState:s,subscribe:i}=this,c={setMetadata:e,get metadata(){return t()},getMetadata:t,getState:a,setState:s,subscribe:i,actions:null};if(!(0,q.default)(this.actionsConfig))return{actions:null,storeTools:c};let o=this.actionsConfig,r={};c.actions=r;let l=Object.keys(o);for(let u of l)Object.assign(r,{[u](...b){let S=o[u].apply(r,b);return typeof S!="function"&&(0,j.default)(u),S.call(r,c)}});return{actions:r,storeTools:c}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var l,u,b,d,S,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,s=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(s);let i=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;(0,f.default)(i)&&this.cleanupFunctions.push(i);let{onInit:c}=(b=this.callbacks)!=null?b:{};if(!c)return;let o=(S=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?S:this.storeTools,r=(h=c==null?void 0:c(o))!=null?h:null;(0,f.default)(r)&&this.cleanupFunctions.push(r)}};function y(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=o.subscribe.bind(o),u={getState:o.getState.bind(o),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}function R(n,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,s=t==null?void 0:t.isEqual,i=this.getState(),c=(n!=null?n:b=>b)(i),o=new C(c,{name:e!=null?e:(0,v.default)("sh:")}),r=this.subscribe(b=>{if((a!=null?a:Object.is)(i,b))return;i=b;let S=n(b);(s!=null?s:Object.is)(c,S)||(c=S,o.setState(S))},{skipFirst:!0}),l=(...b)=>{let[d]=o.use(...b);return d},u={getState:()=>o.getState(),subscribe:o.subscribe.bind(o),createSelectorHook:R.bind(l),createObservable:y.bind(l),dispose:()=>{r(),o.dispose()},subscribers:o.subscribers};return Object.assign(l,u),l}var Z=C;
|
package/GlobalStore.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var q=Object.defineProperty,j=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var x=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var O=(S,t,e)=>t in S?q(S,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):S[t]=e,k=(S,t)=>{for(var e in t||(t={}))W.call(t,e)&&O(S,e,t[e]);if(x)for(var e of x(t))B.call(t,e)&&O(S,e,t[e]);return S},m=(S,t)=>j(S,V(t));import{useDebugValue as I,useMemo as L,useRef as G,useSyncExternalStore as z}from"react";import f from"json-storage-formatter/isFunction";import D from"./isRecord.mjs";import K,{isArray as N}from"./shallowCompare.mjs";import $ from"./throwWrongKeyOnActionCollectionConfig.mjs";import P from"./uniqueId.mjs";import T from"./GlobalStore.debugProps.mjs";var g=class S{constructor(t,e={metadata:{}}){this.cleanupFunctions=[];this.actionsConfig=null;this.callbacks=null;this.actions=null;this.subscribers=new Set;this.createSelectorHook=v;this.createObservable=A;var n,c,l;this.dispose=this.dispose.bind(this),this.getMetadata=this.getMetadata.bind(this),this.getState=this.getState.bind(this),this.reset=this.reset.bind(this),this.setMetadata=this.setMetadata.bind(this),this.setState=this.setState.bind(this),this.subscribe=this.subscribe.bind(this);let{metadata:a,callbacks:i,actions:o,name:r}=e;if(f(t)&&(this.stateCallback=t),f(a)&&(this.metadataCallback=a),this._name=r!=null?r:P("gs:"),this.state=this.stateCallback?this.stateCallback():t,this.metadata=this.metadataCallback?this.metadataCallback():a!=null?a:{},this.callbacks=i!=null?i:null,this.actionsConfig=o!=null?o:null,T.isDevToolsPresent){let u=(n=new Error().stack)!=null?n:"";(l=(c=T).REACT_GLOBAL_STATE_HOOK_DEBUG)==null||l.call(c,this,e,u)}this.constructor===S&&this.initialize()}async initialize(){var n,c,l,u,d,b,h,p;let t=(c=(n=this.__devtools_initialize_getStoreActionsMapWrapped)==null?void 0:n.call(this))!=null?c:this.getStoreActionsMap(),{actions:e,storeTools:a}=t;this.actions=e,this.storeTools=a,this.use=this.getMainHook();let i=(u=(l=this.onInit)==null?void 0:l.call(this))!=null?u:null;f(i)&&this.cleanupFunctions.push(i);let{onInit:o}=(d=this.callbacks)!=null?d:{};if(!o)return;let r=(h=(b=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:b.call(this,"config/onInit/"))!=null?h:a,s=(p=o==null?void 0:o(r))!=null?p:null;f(s)&&this.cleanupFunctions.push(s)}executeSetStateForSubscriber(t,e){let{selector:a,onStoreChange:i,currentState:o,isEqualRoot:r=(c,l)=>c===l,isEqual:s=(c,l)=>c===l}=t;if(!e.forceUpdate&&r(e.currentState,e.newState))return{didUpdate:!1};let n=a?a(e.newState):e.newState;return!e.forceUpdate&&s(o,n)?{didUpdate:!1}:(this.partialUpdateSubscription(t,{currentState:n}),i({state:n},{identifier:e.identifier}),{didUpdate:!0})}setActualStateWithoutValidations(t,{forceUpdate:e,identifier:a}){let i=this.state;if(!(e||i!==t))return;this.state=t;let r=this.subscribers.values(),s={forceUpdate:e,newState:t,currentState:i,identifier:a};for(let n of r)this.executeSetStateForSubscriber(n,s)}setMetadata(t){let e=f(t)?t(this.metadata):t;this.metadata=e}getMetadata(){return this.metadata}getState(){return this.state}subscribe(...[t,e,a]){var l;let i=f(e),o=i?t:void 0,r=i?e:t,s=(l=i?a:e)!=null?l:void 0,n=o?o(this.state):this.state;s!=null&&s.skipFirst||r(n);let c=k({selector:o,currentState:n,onStoreChange:({state:u})=>r(u)},s);return this.subscribeCallback(c),()=>{this.subscribers.delete(c)}}subscribeCallback(t){var e,a;return(a=(e=this.callbacks)==null?void 0:e.onSubscribed)==null||a.call(e,this.storeTools,t),this.subscribers.add(t),()=>{this.subscribers.delete(t)}}partialUpdateSubscription(t,e){Object.assign(t,e)}getMainHook(){let t=`globalHook:${this._name}`,e=(d,b=[])=>{I(t);let h=N(b)?{dependencies:b}:b!=null?b:{},p=G(null),C=M=>f(d)?d(M):M;p.current=p.current?p.current:k({selector:C,currentState:C(this.state),onStoreChange:()=>{throw new Error("Callback not set")}},h);let w=p.current.dependencies,y=h==null?void 0:h.dependencies,F=m(k({},h),{selector:C,dependencies:y});this.partialUpdateSubscription(p.current,F);let{subscribe:E,getSnapshot:H,getServerSnapshot:_}=L(()=>{let M=U=>(p.current.onStoreChange=U,this.subscribeCallback(p.current)),R=()=>p.current.currentState;return{subscribe:M,getSnapshot:R,getServerSnapshot:R}},[]);return this.reselectIfDependenciesChanged({subscription:p.current,newDependencies:y,currentDependencies:w}),[z(E,H,_),this.getStateOrchestrator(),this.metadata]},a=this,{getMetadata:i,dispose:o,getState:r,reset:s,setMetadata:n,setState:c,subscribe:l}=this,u={actions:this.actions,createObservable:this.createObservable.bind(a),createSelectorHook:this.createSelectorHook.bind(a),dispose:o,metadata:void 0,getMetadata:i,getState:r,reset:s,setMetadata:n,setState:c,subscribe:l,subscribers:this.subscribers,use:e,select:(...d)=>e(...d)[0]};return Object.assign(e,u),Object.defineProperty(e,"metadata",{configurable:!0,enumerable:!0,get:i}),e}reselectIfDependenciesChanged({subscription:t,newDependencies:e,currentDependencies:a}){!t.selector||a===e||(a==null?void 0:a.length)===(e==null?void 0:e.length)&&K(a,e)||this.partialUpdateSubscription(t,{currentState:t.selector(this.state)})}getStateOrchestrator(){return this.actions?this.actions:this.setState}setState(t,{forceUpdate:e,identifier:a}={}){var c,l,u,d,b,h;let i=this.state,o=f(t)?t(i):t;if(!e&&this.state===o)return;let r=this.setActualStateWithoutValidations,s={previousState:i,state:o,identifier:a},n=m(k(k({},this.storeTools),s),{setState:r});Object.defineProperty(n,"metadata",{configurable:!0,enumerable:!0,get:n.getMetadata}),!((c=this.callbacks)!=null&&c.computePreventStateChange&&((u=(l=this.callbacks)==null?void 0:l.computePreventStateChange)!=null&&u.call(l,n)))&&(this.setActualStateWithoutValidations(o,{forceUpdate:e,identifier:a}),(d=this.onStateChanged)==null||d.call(this,n),(h=(b=this.callbacks)==null?void 0:b.onStateChanged)==null||h.call(b,n))}getStoreActionsMap(){let{getMetadata:t,setMetadata:e,getState:a,setState:i,subscribe:o}=this,r={setMetadata:e,get metadata(){return t()},getMetadata:t,getState:a,setState:i,subscribe:o,actions:null};if(!D(this.actionsConfig))return{actions:null,storeTools:r};let s=this.actionsConfig,n={};r.actions=n;let c=Object.keys(s);for(let l of c)Object.assign(n,{[l](...u){let b=s[l].apply(n,u);return typeof b!="function"&&$(l),b.call(n,r)}});return{actions:n,storeTools:r}}removeSubscriptions(){this.subscribers.clear()}executeCleanupTasks(){this.cleanupFunctions.forEach(t=>{t==null||t()}),this.cleanupFunctions.length=0}dispose(){this.removeSubscriptions(),this.executeCleanupTasks()}reset(...t){var c,l,u,d,b,h;this.executeCleanupTasks();let e=t.length>0,a=e?t[0]:this.stateCallback?this.stateCallback():this.state,i=e?t[1]:this.metadataCallback?this.metadataCallback():this.metadata;this.setActualStateWithoutValidations(a,{forceUpdate:!0}),this.setMetadata(i);let o=(l=(c=this.onInit)==null?void 0:c.call(this))!=null?l:null;f(o)&&this.cleanupFunctions.push(o);let{onInit:r}=(u=this.callbacks)!=null?u:{};if(!r)return;let s=(b=(d=this.__devtools_getLifeCycleStoreToolsWrapper)==null?void 0:d.call(this,"config/onInit/"))!=null?b:this.storeTools,n=(h=r==null?void 0:r(s))!=null?h:null;f(n)&&this.cleanupFunctions.push(n)}};function A(S,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,i=t==null?void 0:t.isEqual,o=this.getState(),r=(S!=null?S:u=>u)(o),s=new g(r,{name:e!=null?e:P("sh:")}),n=this.subscribe(u=>{if((a!=null?a:Object.is)(o,u))return;o=u;let b=S(u);(i!=null?i:Object.is)(r,b)||(r=b,s.setState(b))},{skipFirst:!0}),c=s.subscribe.bind(s),l={getState:s.getState.bind(s),subscribe:s.subscribe.bind(s),createSelectorHook:v.bind(c),createObservable:A.bind(c),dispose:()=>{n(),s.dispose()},subscribers:s.subscribers};return Object.assign(c,l),c}function v(S,t){let e=t==null?void 0:t.name,a=t==null?void 0:t.isEqualRoot,i=t==null?void 0:t.isEqual,o=this.getState(),r=(S!=null?S:u=>u)(o),s=new g(r,{name:e!=null?e:P("sh:")}),n=this.subscribe(u=>{if((a!=null?a:Object.is)(o,u))return;o=u;let b=S(u);(i!=null?i:Object.is)(r,b)||(r=b,s.setState(b))},{skipFirst:!0}),c=(...u)=>{let[d]=s.use(...u);return d},l={getState:()=>s.getState(),subscribe:s.subscribe.bind(s),createSelectorHook:v.bind(c),createObservable:A.bind(c),dispose:()=>{n(),s.dispose()},subscribers:s.subscribers};return Object.assign(c,l),c}var ot=g;export{g as GlobalStore,A as createObservable,v as createSelectorHook,ot as default};
|
package/package.json
CHANGED