react-hooks-global-states 16.0.1 → 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 -0
- package/GlobalStore.d.ts +160 -0
- package/GlobalStore.debugProps.cjs +1 -0
- package/GlobalStore.debugProps.d.ts +5 -0
- package/GlobalStore.debugProps.js +1 -0
- package/GlobalStore.debugProps.mjs +1 -0
- package/GlobalStore.js +1 -0
- package/GlobalStore.mjs +1 -0
- package/actions.cjs +1 -0
- package/actions.d.ts +32 -0
- package/actions.js +1 -0
- package/actions.mjs +1 -0
- package/bundle.cjs +1 -0
- package/bundle.js +1 -0
- package/bundle.mjs +1 -0
- package/createContext.cjs +1 -0
- package/createContext.d.ts +15 -0
- package/createContext.js +1 -0
- package/createContext.mjs +1 -0
- package/createGlobalState.cjs +1 -0
- package/createGlobalState.d.ts +7 -0
- package/createGlobalState.js +1 -0
- package/createGlobalState.mjs +1 -0
- package/index.d.ts +9 -0
- package/isRecord.cjs +1 -0
- package/isRecord.d.ts +2 -0
- package/isRecord.js +1 -0
- package/isRecord.mjs +1 -0
- package/package.json +1 -51
- package/shallowCompare.cjs +1 -0
- package/shallowCompare.d.ts +52 -0
- package/shallowCompare.js +1 -0
- package/shallowCompare.mjs +1 -0
- package/throwWrongKeyOnActionCollectionConfig.cjs +12 -0
- package/throwWrongKeyOnActionCollectionConfig.d.ts +2 -0
- package/throwWrongKeyOnActionCollectionConfig.js +12 -0
- package/throwWrongKeyOnActionCollectionConfig.mjs +12 -0
- package/types.cjs +1 -0
- package/types.d.ts +1268 -0
- package/types.js +1 -0
- package/types.mjs +0 -0
- package/uniqueId.cjs +1 -0
- package/uniqueId.d.ts +7 -0
- package/uniqueId.js +1 -0
- package/uniqueId.mjs +1 -0
- package/jest.config.js +0 -50
package/GlobalStore.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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.d.ts
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { ActionCollectionConfig, GlobalStoreCallbacks, ActionCollectionResult, MetadataSetter, SubscribeCallbackConfig, SubscribeCallback, SelectorCallback, SubscriberParameters, StateHook, BaseMetadata, StateChanges, StoreTools, ObservableFragment, UnsubscribeCallback, AnyFunction, ReadonlyHook, ReadonlyStateApi, CleanupFunction } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The GlobalStore class is the main class of the library and it is used to create a GlobalStore instances
|
|
4
|
+
* */
|
|
5
|
+
export declare class GlobalStore<State, Metadata extends BaseMetadata, ActionsConfig extends ActionCollectionConfig<State, Metadata> | undefined | unknown, PublicStateMutator = keyof ActionsConfig extends never | undefined ? React.Dispatch<React.SetStateAction<State>> : ActionCollectionResult<State, Metadata, NonNullable<ActionsConfig>>> {
|
|
6
|
+
protected cleanupFunctions: CleanupFunction[];
|
|
7
|
+
protected _name: string;
|
|
8
|
+
actionsConfig: ActionsConfig | null;
|
|
9
|
+
callbacks: GlobalStoreCallbacks<State, PublicStateMutator, Metadata> | null;
|
|
10
|
+
metadata: Metadata;
|
|
11
|
+
/**
|
|
12
|
+
* @description If the actionsConfig is defined, this will be a map of actions that can be used to modify or interact with the state
|
|
13
|
+
* */
|
|
14
|
+
actions: PublicStateMutator extends AnyFunction ? null : PublicStateMutator;
|
|
15
|
+
storeTools: StoreTools<State, PublicStateMutator, Metadata>;
|
|
16
|
+
/**
|
|
17
|
+
* @description The main hook that will be used to interact with the global state
|
|
18
|
+
*/
|
|
19
|
+
use: StateHook<State, PublicStateMutator, Metadata>;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated
|
|
22
|
+
* @description Set of subscribers that are listening to state changes
|
|
23
|
+
* Useful for debugging purposes... You'll probably not need to use this in your application
|
|
24
|
+
*/
|
|
25
|
+
subscribers: Set<SubscriberParameters>;
|
|
26
|
+
state: State;
|
|
27
|
+
protected stateCallback?: () => State;
|
|
28
|
+
protected metadataCallback?: () => Metadata;
|
|
29
|
+
constructor(state: State | (() => State));
|
|
30
|
+
constructor(state: State | (() => State), args: {
|
|
31
|
+
metadata?: Metadata | (() => Metadata);
|
|
32
|
+
callbacks?: GlobalStoreCallbacks<State, PublicStateMutator, Metadata>;
|
|
33
|
+
actions?: ActionsConfig;
|
|
34
|
+
name?: string;
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* This method is meant to be overridden by the extended classes
|
|
38
|
+
*/
|
|
39
|
+
protected onInit?: () => void | CleanupFunction;
|
|
40
|
+
/**
|
|
41
|
+
* This method is meant to be overridden by the extended classes
|
|
42
|
+
*/
|
|
43
|
+
protected onStateChanged?: (args: StateChanges<State>) => void;
|
|
44
|
+
/**
|
|
45
|
+
* @description
|
|
46
|
+
* Initializes the global store, setting up the main hook and actions map if applicable,
|
|
47
|
+
*/
|
|
48
|
+
protected initialize(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* set the state for a single subscriber
|
|
51
|
+
* validate if the state should be updated by comparing the previous state and the new state
|
|
52
|
+
*/
|
|
53
|
+
protected executeSetStateForSubscriber(subscription: SubscriberParameters, args: {
|
|
54
|
+
forceUpdate: boolean | undefined;
|
|
55
|
+
newState: State;
|
|
56
|
+
currentState: State;
|
|
57
|
+
identifier: string | undefined;
|
|
58
|
+
}): {
|
|
59
|
+
didUpdate: boolean;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* set the state and update all the subscribers
|
|
63
|
+
* @param {State} newState - The new state to set
|
|
64
|
+
* @param {object} options - The options for setting the state
|
|
65
|
+
* @param {boolean} [options.forceUpdate] - Whether to force the update even if the state is the same
|
|
66
|
+
* @param {string} [options.identifier] - An optional identifier for the state change
|
|
67
|
+
* */
|
|
68
|
+
setActualStateWithoutValidations(newState: State, { forceUpdate, identifier }: {
|
|
69
|
+
forceUpdate?: boolean;
|
|
70
|
+
identifier?: string;
|
|
71
|
+
}): void;
|
|
72
|
+
/**
|
|
73
|
+
* Set the value of the metadata property, this is no reactive and will not trigger a re-render
|
|
74
|
+
* @param {MetadataSetter<Metadata>} setter - The setter function or the value to set
|
|
75
|
+
* */
|
|
76
|
+
setMetadata(setter: Parameters<MetadataSetter<Metadata>>[0]): void;
|
|
77
|
+
/**
|
|
78
|
+
* Returns the metadata [non-reactive additional information associated with the global state]
|
|
79
|
+
*/
|
|
80
|
+
getMetadata(): Metadata;
|
|
81
|
+
/**
|
|
82
|
+
* Get the current value of the state
|
|
83
|
+
*/
|
|
84
|
+
getState(): State;
|
|
85
|
+
/**
|
|
86
|
+
* Subscribe an individual callback to state changes
|
|
87
|
+
*/
|
|
88
|
+
subscribe<TDerivate>(...[param1, param2, param3]: [
|
|
89
|
+
SubscribeCallback<State> | SelectorCallback<State, TDerivate>,
|
|
90
|
+
(SubscribeCallbackConfig<State> | SubscribeCallback<TDerivate>)?,
|
|
91
|
+
SubscribeCallbackConfig<State | TDerivate>?
|
|
92
|
+
]): UnsubscribeCallback;
|
|
93
|
+
/**
|
|
94
|
+
* Adds a subscription object to the subscribers set and returns the unsubscribe function
|
|
95
|
+
*/
|
|
96
|
+
protected subscribeCallback(subscription: SubscriberParameters): () => void;
|
|
97
|
+
partialUpdateSubscription(subscription: SubscriberParameters, values: Partial<SubscriberParameters>): void;
|
|
98
|
+
/**
|
|
99
|
+
* Returns a custom hook that allows to handle a global state
|
|
100
|
+
* @returns {[State, StateMutator, Metadata]} - The state, the state setter or the actions map, the metadata
|
|
101
|
+
* */
|
|
102
|
+
getMainHook(): StateHook<State, PublicStateMutator, Metadata>;
|
|
103
|
+
protected reselectIfDependenciesChanged({ subscription, newDependencies, currentDependencies, }: {
|
|
104
|
+
subscription: SubscriberParameters;
|
|
105
|
+
newDependencies: unknown[] | undefined;
|
|
106
|
+
currentDependencies: unknown[] | undefined;
|
|
107
|
+
}): void;
|
|
108
|
+
createSelectorHook: typeof createSelectorHook;
|
|
109
|
+
createObservable: typeof createObservable;
|
|
110
|
+
/**
|
|
111
|
+
* Returns the state setter or the actions map
|
|
112
|
+
* @returns {StateMutator} - The state setter or the actions map
|
|
113
|
+
* */
|
|
114
|
+
protected getStateOrchestrator(): PublicStateMutator;
|
|
115
|
+
/**
|
|
116
|
+
* This is the only setState function that should be exposed outside the class
|
|
117
|
+
* This is responsible for defining whenever or not the state change should be allowed or prevented
|
|
118
|
+
* the function also execute the functions:
|
|
119
|
+
* - onStateChanged (if defined) - this function is executed after the state change
|
|
120
|
+
* - computePreventStateChange (if defined) - this function is executed before the state change and it should return a boolean value that will be used to determine if the state change should be prevented or not
|
|
121
|
+
*/
|
|
122
|
+
setState(setter: Parameters<React.Dispatch<React.SetStateAction<State>>>[0], { forceUpdate, identifier, }?: {
|
|
123
|
+
forceUpdate?: boolean;
|
|
124
|
+
identifier?: string;
|
|
125
|
+
}): void;
|
|
126
|
+
/**
|
|
127
|
+
* This creates storeTools and actions map if applicable
|
|
128
|
+
* */
|
|
129
|
+
getStoreActionsMap(): {
|
|
130
|
+
actions: PublicStateMutator extends AnyFunction ? null : PublicStateMutator;
|
|
131
|
+
storeTools: StoreTools<State, PublicStateMutator, Metadata>;
|
|
132
|
+
};
|
|
133
|
+
protected removeSubscriptions(): void;
|
|
134
|
+
protected executeCleanupTasks(): void;
|
|
135
|
+
dispose(): void;
|
|
136
|
+
reset(): void;
|
|
137
|
+
reset(state: State, metadata: Metadata): void;
|
|
138
|
+
__devtools_getLifeCycleStoreToolsWrapper?: (logsPrefix: string) => StoreTools<State, PublicStateMutator, Metadata>;
|
|
139
|
+
__devtools_initialize_getStoreActionsMapWrapped?: () => {
|
|
140
|
+
actions: PublicStateMutator extends AnyFunction ? null : PublicStateMutator;
|
|
141
|
+
storeTools: StoreTools<State, PublicStateMutator, Metadata>;
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
export declare function createObservable<RootState, PublicStateMutator, Metadata extends BaseMetadata, Selected>(this: Pick<ReadonlyStateApi<RootState, PublicStateMutator, Metadata>, 'getState' | 'subscribe'>, selector: (state: RootState) => Selected, options?: {
|
|
145
|
+
isEqual?: (current: Selected, next: Selected) => boolean;
|
|
146
|
+
isEqualRoot?: (current: RootState, next: RootState) => boolean;
|
|
147
|
+
name?: string;
|
|
148
|
+
}): ObservableFragment<Selected, PublicStateMutator, Metadata>;
|
|
149
|
+
/**
|
|
150
|
+
* @description
|
|
151
|
+
* Creates a derived hook bound to a selected fragment of the root state.
|
|
152
|
+
* The derived hook re-renders only when the selected value changes and
|
|
153
|
+
* exposes the same API as the parent state hook.
|
|
154
|
+
*/
|
|
155
|
+
export declare function createSelectorHook<RootState, PublicStateMutator, Metadata extends BaseMetadata, Selected>(this: Pick<ReadonlyStateApi<RootState, PublicStateMutator, Metadata>, 'getState' | 'subscribe'>, selector: (state: RootState) => Selected, options?: {
|
|
156
|
+
isEqual?: (current: Selected, next: Selected) => boolean;
|
|
157
|
+
isEqualRoot?: (current: RootState, next: RootState) => boolean;
|
|
158
|
+
name?: string;
|
|
159
|
+
}): ReadonlyHook<Selected, PublicStateMutator, Metadata>;
|
|
160
|
+
export default GlobalStore;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var T=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var r=(e,o)=>{for(var n in o)T(e,n,{get:o[n],enumerable:!0})},A=(e,o,n,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of t(o))!_.call(e,s)&&s!==n&&T(e,s,{get:()=>o[s],enumerable:!(i=l(o,s))||i.enumerable});return e};var E=e=>A(T({},"__esModule",{value:!0}),e);var d={};r(d,{default:()=>O});module.exports=E(d);var a=globalThis;a.isDevToolsPresent=!!a.REACT_GLOBAL_STATE_HOOK_DEBUG;var O=a;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var T=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var r=(e,o)=>{for(var n in o)T(e,n,{get:o[n],enumerable:!0})},A=(e,o,n,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of t(o))!_.call(e,s)&&s!==n&&T(e,s,{get:()=>o[s],enumerable:!(i=l(o,s))||i.enumerable});return e};var E=e=>A(T({},"__esModule",{value:!0}),e);var d={};r(d,{default:()=>O});module.exports=E(d);var a=globalThis;a.isDevToolsPresent=!!a.REACT_GLOBAL_STATE_HOOK_DEBUG;var O=a;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=globalThis;o.isDevToolsPresent=!!o.REACT_GLOBAL_STATE_HOOK_DEBUG;var e=o;export{e as default};
|
package/GlobalStore.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1 @@
|
|
|
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/actions.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var y=Object.create;var A=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!f.call(t,i)&&i!==o&&A(t,i,{get:()=>e[i],enumerable:!(n=l(e,i))||n.enumerable});return t};var M=(t,e,o)=>(o=t!=null?y(S(t)):{},a(e||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),x=t=>a(A({},"__esModule",{value:!0}),t);var C={};T(C,{actions:()=>c,default:()=>R});module.exports=x(C);var r=M(require("./GlobalStore.cjs"));function c(t,e){let o=(n,i)=>{let p={setMetadata:(...s)=>n.setMetadata(...s),get metadata(){return n.getMetadata()},getMetadata:()=>n.getMetadata(),getState:()=>n.getState(),setState:(...s)=>n.setState(...s),subscribe:(...s)=>n.subscribe(...s),actionsConfig:i,actions:null},{storeTools:u,actions:d}=r.default.prototype.getStoreActionsMap.call(p);return u.actions=n.actions,d};return t&&e?o(t,e):n=>i=>o(i,n)}var R=c;
|
package/actions.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Any, DerivedActionsBuilder, DerivedActionsConfig, StoreTools } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a reusable action template builder.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const makeUserActions = actions<API>()({
|
|
7
|
+
* syncUser(id) {
|
|
8
|
+
* return (store) => {...}
|
|
9
|
+
* }
|
|
10
|
+
* });
|
|
11
|
+
*
|
|
12
|
+
* const { syncUser } = makeUserActions(api);
|
|
13
|
+
*/
|
|
14
|
+
export declare function actions<Api extends StoreTools<Any, Any, Any>>(): DerivedActionsBuilder<Api>;
|
|
15
|
+
/**
|
|
16
|
+
* Creates and action group from a config and binds it the provided store
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const userActions = actions(api, {
|
|
20
|
+
* syncUser(id) {
|
|
21
|
+
* return (store) => {...}
|
|
22
|
+
* }
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* const { syncUser } = userActions;
|
|
26
|
+
*/
|
|
27
|
+
export declare function actions<Api extends StoreTools<Any, Any, Any>, Actions extends DerivedActionsConfig<Api>>(api: Api, actions: Actions): {
|
|
28
|
+
[key in keyof Actions]: {
|
|
29
|
+
(...params: Parameters<Actions[key]>): ReturnType<ReturnType<Actions[key]>>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export default actions;
|
package/actions.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var y=Object.create;var A=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!f.call(t,i)&&i!==o&&A(t,i,{get:()=>e[i],enumerable:!(n=l(e,i))||n.enumerable});return t};var M=(t,e,o)=>(o=t!=null?y(S(t)):{},a(e||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),x=t=>a(A({},"__esModule",{value:!0}),t);var C={};T(C,{actions:()=>c,default:()=>R});module.exports=x(C);var r=M(require("./GlobalStore.js"));function c(t,e){let o=(n,i)=>{let p={setMetadata:(...s)=>n.setMetadata(...s),get metadata(){return n.getMetadata()},getMetadata:()=>n.getMetadata(),getState:()=>n.getState(),setState:(...s)=>n.setState(...s),subscribe:(...s)=>n.subscribe(...s),actionsConfig:i,actions:null},{storeTools:u,actions:d}=r.default.prototype.getStoreActionsMap.call(p);return u.actions=n.actions,d};return t&&e?o(t,e):n=>i=>o(i,n)}var R=c;
|
package/actions.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c from"./GlobalStore.mjs";function p(o,i){let s=(t,n)=>{let A={setMetadata:(...e)=>t.setMetadata(...e),get metadata(){return t.getMetadata()},getMetadata:()=>t.getMetadata(),getState:()=>t.getState(),setState:(...e)=>t.setState(...e),subscribe:(...e)=>t.subscribe(...e),actionsConfig:n,actions:null},{storeTools:a,actions:r}=c.prototype.getStoreActionsMap.call(A);return a.actions=t.actions,r};return o&&i?s(o,i):t=>n=>s(n,t)}var d=p;export{p as actions,d as default};
|
package/bundle.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var u=(t,o)=>{for(var a in o)n(t,a,{get:o[a],enumerable:!0})},d=(t,o,a,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of f(o))!A.call(t,e)&&e!==a&&n(t,e,{get:()=>o[e],enumerable:!(l=p(o,e))||l.enumerable});return t};var k=t=>d(n({},"__esModule",{value:!0}),t);var m={};u(m,{GlobalStore:()=>r.GlobalStore,actions:()=>x.actions,createContext:()=>S.createContext,createGlobalState:()=>i.createGlobalState,isRecord:()=>b.isRecord,shallowCompare:()=>C.shallowCompare,throwWrongKeyOnActionCollectionConfig:()=>s.throwWrongKeyOnActionCollectionConfig,uniqueId:()=>c.uniqueId});module.exports=k(m);var r=require("./GlobalStore.cjs"),i=require("./createGlobalState.cjs"),C=require("./shallowCompare.cjs"),c=require("./uniqueId.cjs"),s=require("./throwWrongKeyOnActionCollectionConfig.cjs"),b=require("./isRecord.cjs"),x=require("./actions.cjs"),S=require("./createContext.cjs");
|
package/bundle.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var u=(t,o)=>{for(var a in o)n(t,a,{get:o[a],enumerable:!0})},d=(t,o,a,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of f(o))!A.call(t,e)&&e!==a&&n(t,e,{get:()=>o[e],enumerable:!(l=p(o,e))||l.enumerable});return t};var k=t=>d(n({},"__esModule",{value:!0}),t);var m={};u(m,{GlobalStore:()=>r.GlobalStore,actions:()=>x.actions,createContext:()=>S.createContext,createGlobalState:()=>i.createGlobalState,isRecord:()=>b.isRecord,shallowCompare:()=>C.shallowCompare,throwWrongKeyOnActionCollectionConfig:()=>s.throwWrongKeyOnActionCollectionConfig,uniqueId:()=>c.uniqueId});module.exports=k(m);var r=require("./GlobalStore.js"),i=require("./createGlobalState.js"),C=require("./shallowCompare.js"),c=require("./uniqueId.js"),s=require("./throwWrongKeyOnActionCollectionConfig.js"),b=require("./isRecord.js"),x=require("./actions.js"),S=require("./createContext.js");
|
package/bundle.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{GlobalStore as e}from"./GlobalStore.mjs";import{createGlobalState as n}from"./createGlobalState.mjs";import{shallowCompare as r}from"./shallowCompare.mjs";import{uniqueId as C}from"./uniqueId.mjs";import{throwWrongKeyOnActionCollectionConfig as s}from"./throwWrongKeyOnActionCollectionConfig.mjs";import{isRecord as x}from"./isRecord.mjs";import{actions as p}from"./actions.mjs";import{createContext as A}from"./createContext.mjs";export{e as GlobalStore,p as actions,A as createContext,n as createGlobalState,x as isRecord,r as shallowCompare,s as throwWrongKeyOnActionCollectionConfig,C as uniqueId};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var G=Object.create;var M=Object.defineProperty,O=Object.defineProperties,F=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,H=Object.getOwnPropertySymbols,g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,P=(t,e)=>{for(var o in e||(e={}))h.call(e,o)&&_(t,o,e[o]);if(H)for(var o of H(e))$.call(e,o)&&_(t,o,e[o]);return t},p=(t,e)=>O(t,D(e));var q=(t,e)=>{var o={};for(var s in t)h.call(t,s)&&e.indexOf(s)<0&&(o[s]=t[s]);if(t!=null&&H)for(var s of H(t))e.indexOf(s)<0&&$.call(t,s)&&(o[s]=t[s]);return o};var z=(t,e)=>{for(var o in e)M(t,o,{get:e[o],enumerable:!0})},N=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let C of L(e))!h.call(t,C)&&C!==o&&M(t,C,{get:()=>e[C],enumerable:!(s=F(e,C))||s.enumerable});return t};var U=(t,e,o)=>(o=t!=null?G(g(t)):{},N(e||!t||!t.__esModule?M(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>N(M({},"__esModule",{value:!0}),t);var Q={};z(Q,{createContext:()=>I,default:()=>K});module.exports=J(Q);var a=require("react"),v=require("./GlobalStore.cjs"),B=U(require("json-storage-formatter/isFunction")),T=U(require("./uniqueId.cjs"));var I=(t,e={})=>{var A;let o=(0,a.createContext)(null),s=(A=e.name)!=null?A:(0,T.default)("ctx:"),C=()=>(0,B.default)(t)?t():t,f=n=>Object.prototype.hasOwnProperty.call(n,"value"),E=n=>{var d;(0,a.useDebugValue)(`${s}:Provider`);let[r]=(0,a.useState)(()=>{var u,l,S,m;let b=f(n)?(0,B.default)(n.value)?n.value(C()):n.value:C(),k={__devtools_isContextStore:!0},i=new v.GlobalStore(b,P(p(P({},e),{metadata:(u=(0,B.default)(e.metadata)?e.metadata():e.metadata)!=null?u:{}}),k)),c={use:y};return Object.assign(i.storeTools,c),(S=(l=e.callbacks)==null?void 0:l.onCreated)==null||S.call(l,i.storeTools,i),(m=n.onCreated)==null||m.call(n,i.storeTools,i),i});return(0,a.useLayoutEffect)(()=>{f(n)&&!(0,B.default)(n.value)&&r.setState(n.value)},[r,n.value]),(0,a.useEffect)(()=>{var k,i,c;let b=[(i=(k=e.callbacks)==null?void 0:k.onMounted)==null?void 0:i.call(k,r.storeTools,r),(c=n.onMounted)==null?void 0:c.call(n,r.storeTools,r)].filter(Boolean);return()=>{var u,l,S;(l=(u=r.callbacks)==null?void 0:u.onUnMount)==null||l.call(u,r),b.forEach(m=>m==null?void 0:m()),(S=r.__onUnMountContext)==null||S.call(r,r)}},[r]),(d=n.onRender)==null||d.call(n,r.storeTools,r),r},w=n=>{let r=E(n);return(0,a.createElement)(o.Provider,{value:r.use},n.children)};w.displayName=`${s}:Provider`,o.displayName=`${s}`;let x={makeProviderWrapper:n=>{let r={current:void 0,instance:void 0};return{wrapper:i=>{var c=i,{children:b}=c,k=q(c,["children"]);return(0,a.createElement)(w,p(P(P({},n),k),{onCreated:(u,l)=>{var S;r.current=u,r.instance=l,(S=n==null?void 0:n.onCreated)==null||S.call(n,u,l)}}),b)},context:r}}},y=(...n)=>{(0,a.useDebugValue)(`${s}:use`);let r=(0,a.useContext)(o);if(!r)throw new Error("use hook must be used within a ContextProvider");return r(...n)},R=()=>{(0,a.useDebugValue)(`${s}:api`);let n=(0,a.useContext)(o);if(!n)throw new Error("api hook must be used within a ContextProvider");return n},V=(...n)=>{(0,a.useDebugValue)(`${s}:observable`);let r=R(),d=(0,a.useRef)(n);return d.current=n,(0,a.useMemo)(()=>{var b,k,i;return r.createObservable(c=>{let u=d.current[0];return u(c)},{isEqualRoot:(b=d.current[1])!=null&&b.isEqualRoot?(c,u)=>{let l=d.current[1].isEqualRoot;return!!l(c,u)}:void 0,isEqual:(k=d.current[1])!=null&&k.isEqual?(c,u)=>{let l=d.current[1].isEqual;return!!l(c,u)}:void 0,name:(i=d.current[1])==null?void 0:i.name})},[r])},W={displayName:o.displayName,createSelectorHook:j.bind(y),api:R,select:(...n)=>y(...n)[0],observable:V,actions:()=>R().actions};return Object.assign(w,x),Object.assign(y,W),{use:y,Provider:w,Context:o}};function j(t,e){var E;let o=(E=e==null?void 0:e.name)!=null?E:(0,T.default)("sh:"),s=(...w)=>{let x=this.api();return(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:use`),(0,a.useMemo)(()=>x.createSelectorHook(t,e),[x])(...w)},C=()=>{(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:api`);let w=this.api();return(0,a.useMemo)(()=>{let x=w.createObservable(t,e);return p(P({},w),{getState:()=>x.getState(),subscribe:x.subscribe.bind(x),createSelectorHook:v.createSelectorHook.bind(x),createObservable:v.createObservable.bind(x)})},[w])},f={displayName:this.displayName,createSelectorHook:j.bind(s),api:C};return Object.assign(s,f),s}var K=I;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CreateContext } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* @description Creates a highly granular React context with its associated provider and state hook.
|
|
4
|
+
* Unlike the native `React.createContext`, this version provides fine-grained reactivity and supports
|
|
5
|
+
* state selection, metadata handling, and optional custom actions for controlled mutations.
|
|
6
|
+
*
|
|
7
|
+
* Components using the generated hook only re-render when the selected part of the state changes,
|
|
8
|
+
* making it efficient for large or deeply nested state trees.
|
|
9
|
+
*/
|
|
10
|
+
export declare const createContext: CreateContext;
|
|
11
|
+
export default createContext;
|
|
12
|
+
/**
|
|
13
|
+
* Temporary re-export types for backwards compatibility
|
|
14
|
+
*/
|
|
15
|
+
export type { GlobalStoreContextCallbacks, GlobalStoreCallbacks, ContextActionCollectionResult, ContextActionCollectionConfig, ContextStoreToolsExtensions, ContextStoreTools, ContextProviderExtensions, ContextProvider, ReadonlyContextHook, ContextHook, ContextPublicApi, ReadonlyContextPublicApi, CreateContext, InferContextApi, InferStateApi, } from './types';
|
package/createContext.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var G=Object.create;var M=Object.defineProperty,O=Object.defineProperties,F=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertyNames,H=Object.getOwnPropertySymbols,g=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,P=(t,e)=>{for(var o in e||(e={}))h.call(e,o)&&_(t,o,e[o]);if(H)for(var o of H(e))$.call(e,o)&&_(t,o,e[o]);return t},p=(t,e)=>O(t,D(e));var q=(t,e)=>{var o={};for(var s in t)h.call(t,s)&&e.indexOf(s)<0&&(o[s]=t[s]);if(t!=null&&H)for(var s of H(t))e.indexOf(s)<0&&$.call(t,s)&&(o[s]=t[s]);return o};var z=(t,e)=>{for(var o in e)M(t,o,{get:e[o],enumerable:!0})},N=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let C of L(e))!h.call(t,C)&&C!==o&&M(t,C,{get:()=>e[C],enumerable:!(s=F(e,C))||s.enumerable});return t};var U=(t,e,o)=>(o=t!=null?G(g(t)):{},N(e||!t||!t.__esModule?M(o,"default",{value:t,enumerable:!0}):o,t)),J=t=>N(M({},"__esModule",{value:!0}),t);var Q={};z(Q,{createContext:()=>I,default:()=>K});module.exports=J(Q);var a=require("react"),v=require("./GlobalStore.js"),B=U(require("json-storage-formatter/isFunction")),T=U(require("./uniqueId.js"));var I=(t,e={})=>{var A;let o=(0,a.createContext)(null),s=(A=e.name)!=null?A:(0,T.default)("ctx:"),C=()=>(0,B.default)(t)?t():t,f=n=>Object.prototype.hasOwnProperty.call(n,"value"),E=n=>{var d;(0,a.useDebugValue)(`${s}:Provider`);let[r]=(0,a.useState)(()=>{var u,l,S,m;let b=f(n)?(0,B.default)(n.value)?n.value(C()):n.value:C(),k={__devtools_isContextStore:!0},i=new v.GlobalStore(b,P(p(P({},e),{metadata:(u=(0,B.default)(e.metadata)?e.metadata():e.metadata)!=null?u:{}}),k)),c={use:y};return Object.assign(i.storeTools,c),(S=(l=e.callbacks)==null?void 0:l.onCreated)==null||S.call(l,i.storeTools,i),(m=n.onCreated)==null||m.call(n,i.storeTools,i),i});return(0,a.useLayoutEffect)(()=>{f(n)&&!(0,B.default)(n.value)&&r.setState(n.value)},[r,n.value]),(0,a.useEffect)(()=>{var k,i,c;let b=[(i=(k=e.callbacks)==null?void 0:k.onMounted)==null?void 0:i.call(k,r.storeTools,r),(c=n.onMounted)==null?void 0:c.call(n,r.storeTools,r)].filter(Boolean);return()=>{var u,l,S;(l=(u=r.callbacks)==null?void 0:u.onUnMount)==null||l.call(u,r),b.forEach(m=>m==null?void 0:m()),(S=r.__onUnMountContext)==null||S.call(r,r)}},[r]),(d=n.onRender)==null||d.call(n,r.storeTools,r),r},w=n=>{let r=E(n);return(0,a.createElement)(o.Provider,{value:r.use},n.children)};w.displayName=`${s}:Provider`,o.displayName=`${s}`;let x={makeProviderWrapper:n=>{let r={current:void 0,instance:void 0};return{wrapper:i=>{var c=i,{children:b}=c,k=q(c,["children"]);return(0,a.createElement)(w,p(P(P({},n),k),{onCreated:(u,l)=>{var S;r.current=u,r.instance=l,(S=n==null?void 0:n.onCreated)==null||S.call(n,u,l)}}),b)},context:r}}},y=(...n)=>{(0,a.useDebugValue)(`${s}:use`);let r=(0,a.useContext)(o);if(!r)throw new Error("use hook must be used within a ContextProvider");return r(...n)},R=()=>{(0,a.useDebugValue)(`${s}:api`);let n=(0,a.useContext)(o);if(!n)throw new Error("api hook must be used within a ContextProvider");return n},V=(...n)=>{(0,a.useDebugValue)(`${s}:observable`);let r=R(),d=(0,a.useRef)(n);return d.current=n,(0,a.useMemo)(()=>{var b,k,i;return r.createObservable(c=>{let u=d.current[0];return u(c)},{isEqualRoot:(b=d.current[1])!=null&&b.isEqualRoot?(c,u)=>{let l=d.current[1].isEqualRoot;return!!l(c,u)}:void 0,isEqual:(k=d.current[1])!=null&&k.isEqual?(c,u)=>{let l=d.current[1].isEqual;return!!l(c,u)}:void 0,name:(i=d.current[1])==null?void 0:i.name})},[r])},W={displayName:o.displayName,createSelectorHook:j.bind(y),api:R,select:(...n)=>y(...n)[0],observable:V,actions:()=>R().actions};return Object.assign(w,x),Object.assign(y,W),{use:y,Provider:w,Context:o}};function j(t,e){var E;let o=(E=e==null?void 0:e.name)!=null?E:(0,T.default)("sh:"),s=(...w)=>{let x=this.api();return(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:use`),(0,a.useMemo)(()=>x.createSelectorHook(t,e),[x])(...w)},C=()=>{(0,a.useDebugValue)(`${this.displayName}:selector`),(0,a.useDebugValue)(`${o}:api`);let w=this.api();return(0,a.useMemo)(()=>{let x=w.createObservable(t,e);return p(P({},w),{getState:()=>x.getState(),subscribe:x.subscribe.bind(x),createSelectorHook:v.createSelectorHook.bind(x),createObservable:v.createObservable.bind(x)})},[w])},f={displayName:this.displayName,createSelectorHook:j.bind(s),api:C};return Object.assign(s,f),s}var K=I;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var V=Object.defineProperty,W=Object.defineProperties;var G=Object.getOwnPropertyDescriptors;var B=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var h=(o,t,a)=>t in o?V(o,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[t]=a,m=(o,t)=>{for(var a in t||(t={}))T.call(t,a)&&h(o,a,t[a]);if(B)for(var a of B(t))A.call(t,a)&&h(o,a,t[a]);return o},f=(o,t)=>W(o,G(t));var _=(o,t)=>{var a={};for(var r in o)T.call(o,r)&&t.indexOf(r)<0&&(a[r]=o[r]);if(o!=null&&B)for(var r of B(o))t.indexOf(r)<0&&A.call(o,r)&&(a[r]=o[r]);return a};import{createContext as O,useContext as $,createElement as q,useMemo as p,useEffect as F,useRef as D,useDebugValue as b,useLayoutEffect as L,useState as g}from"react";import{createObservable as z,createSelectorHook as J,GlobalStore as K}from"./GlobalStore.mjs";import E from"json-storage-formatter/isFunction";import N from"./uniqueId.mjs";var Q=(o,t={})=>{var R;let a=O(null),r=(R=t.name)!=null?R:N("ctx:"),v=()=>E(o)?o():o,y=e=>Object.prototype.hasOwnProperty.call(e,"value"),M=e=>{var c;b(`${r}:Provider`);let[n]=g(()=>{var s,u,x,S;let w=y(e)?E(e.value)?e.value(v()):e.value:v(),d={__devtools_isContextStore:!0},l=new K(w,m(f(m({},t),{metadata:(s=E(t.metadata)?t.metadata():t.metadata)!=null?s:{}}),d)),i={use:P};return Object.assign(l.storeTools,i),(x=(u=t.callbacks)==null?void 0:u.onCreated)==null||x.call(u,l.storeTools,l),(S=e.onCreated)==null||S.call(e,l.storeTools,l),l});return L(()=>{y(e)&&!E(e.value)&&n.setState(e.value)},[n,e.value]),F(()=>{var d,l,i;let w=[(l=(d=t.callbacks)==null?void 0:d.onMounted)==null?void 0:l.call(d,n.storeTools,n),(i=e.onMounted)==null?void 0:i.call(e,n.storeTools,n)].filter(Boolean);return()=>{var s,u,x;(u=(s=n.callbacks)==null?void 0:s.onUnMount)==null||u.call(s,n),w.forEach(S=>S==null?void 0:S()),(x=n.__onUnMountContext)==null||x.call(n,n)}},[n]),(c=e.onRender)==null||c.call(e,n.storeTools,n),n},k=e=>{let n=M(e);return q(a.Provider,{value:n.use},e.children)};k.displayName=`${r}:Provider`,a.displayName=`${r}`;let C={makeProviderWrapper:e=>{let n={current:void 0,instance:void 0};return{wrapper:l=>{var i=l,{children:w}=i,d=_(i,["children"]);return q(k,f(m(m({},e),d),{onCreated:(s,u)=>{var x;n.current=s,n.instance=u,(x=e==null?void 0:e.onCreated)==null||x.call(e,s,u)}}),w)},context:n}}},P=(...e)=>{b(`${r}:use`);let n=$(a);if(!n)throw new Error("use hook must be used within a ContextProvider");return n(...e)},H=()=>{b(`${r}:api`);let e=$(a);if(!e)throw new Error("api hook must be used within a ContextProvider");return e},I=(...e)=>{b(`${r}:observable`);let n=H(),c=D(e);return c.current=e,p(()=>{var w,d,l;return n.createObservable(i=>{let s=c.current[0];return s(i)},{isEqualRoot:(w=c.current[1])!=null&&w.isEqualRoot?(i,s)=>{let u=c.current[1].isEqualRoot;return!!u(i,s)}:void 0,isEqual:(d=c.current[1])!=null&&d.isEqual?(i,s)=>{let u=c.current[1].isEqual;return!!u(i,s)}:void 0,name:(l=c.current[1])==null?void 0:l.name})},[n])},j={displayName:a.displayName,createSelectorHook:U.bind(P),api:H,select:(...e)=>P(...e)[0],observable:I,actions:()=>H().actions};return Object.assign(k,C),Object.assign(P,j),{use:P,Provider:k,Context:a}};function U(o,t){var M;let a=(M=t==null?void 0:t.name)!=null?M:N("sh:"),r=(...k)=>{let C=this.api();return b(`${this.displayName}:selector`),b(`${a}:use`),p(()=>C.createSelectorHook(o,t),[C])(...k)},v=()=>{b(`${this.displayName}:selector`),b(`${a}:api`);let k=this.api();return p(()=>{let C=k.createObservable(o,t);return f(m({},k),{getState:()=>C.getState(),subscribe:C.subscribe.bind(C),createSelectorHook:J.bind(C),createObservable:z.bind(C)})},[k])},y={displayName:this.displayName,createSelectorHook:U.bind(r),api:v};return Object.assign(r,y),r}var oe=Q;export{Q as createContext,oe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of f(t))!y.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(p=n(t,o))||p.enumerable});return e};var b=e=>S(a({},"__esModule",{value:!0}),e);var i={};m(i,{createGlobalState:()=>s,default:()=>c});module.exports=b(i);var l=require("./GlobalStore.cjs"),s=(...[e,t])=>new l.GlobalStore(e,t).use,c=s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of f(t))!y.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(p=n(t,o))||p.enumerable});return e};var b=e=>S(a({},"__esModule",{value:!0}),e);var i={};m(i,{createGlobalState:()=>s,default:()=>c});module.exports=b(i);var l=require("./GlobalStore.js"),s=(...[e,t])=>new l.GlobalStore(e,t).use,c=s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{GlobalStore as o}from"./GlobalStore.mjs";var r=(...[t,e])=>new o(t,e).use,p=r;export{r as createGlobalState,p as default};
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { ActionCollectionConfig, ActionCollectionResult, AnyActions, AnyFunction, BaseMetadata, BrandedId, CleanupFunction, ContextActionCollectionConfig, ContextActionCollectionResult, ContextHook, ContextProvider, ContextProviderExtensions, ContextPublicApi, ContextStoreTools, ContextStoreToolsExtensions, CreateContext, CreateGlobalState, GlobalStoreCallbacks as GlobalStoreCallbacksForContext, GlobalStoreCallbacks, GlobalStoreContextCallbacks, InferAPI, InferActionsType, InferContextApi, InferStateApi, MetadataGetter, MetadataSetter, ObservableFragment, ReadonlyContextHook, ReadonlyContextPublicApi, ReadonlyHook, ReadonlyStateApi, SelectHook, SelectorCallback, StateApi, StateChanges, StateHook, StoreTools, SubscribeCallback, SubscribeCallbackConfig, SubscribeToState, SubscriberParameters, SubscriptionCallback, UniqueId, UnsubscribeCallback, UseHookOptions, Any, } from './types';
|
|
2
|
+
export { GlobalStore } from './GlobalStore';
|
|
3
|
+
export { createGlobalState } from './createGlobalState';
|
|
4
|
+
export { shallowCompare } from './shallowCompare';
|
|
5
|
+
export { uniqueId } from './uniqueId';
|
|
6
|
+
export { throwWrongKeyOnActionCollectionConfig } from './throwWrongKeyOnActionCollectionConfig';
|
|
7
|
+
export { isRecord } from './isRecord';
|
|
8
|
+
export { actions } from './actions';
|
|
9
|
+
export { createContext } from './createContext';
|
package/isRecord.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var c=Object.create;var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var y=(r,e)=>{for(var n in e)f(r,n,{get:e[n],enumerable:!0})},o=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!l.call(r,t)&&t!==n&&f(r,t,{get:()=>e[t],enumerable:!(i=u(e,t))||i.enumerable});return r};var k=(r,e,n)=>(n=r!=null?c(d(r)):{},o(e||!r||!r.__esModule?f(n,"default",{value:r,enumerable:!0}):n,r)),m=r=>o(f({},"__esModule",{value:!0}),r);var x={};y(x,{default:()=>w,isRecord:()=>a});module.exports=m(x);var s=k(require("json-storage-formatter/isNil")),a=r=>!((0,s.default)(r)||typeof r!="object"||Array.isArray(r)||r instanceof Map||r instanceof Set||r instanceof Date),w=a;
|
package/isRecord.d.ts
ADDED
package/isRecord.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var c=Object.create;var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var y=(r,e)=>{for(var n in e)f(r,n,{get:e[n],enumerable:!0})},o=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!l.call(r,t)&&t!==n&&f(r,t,{get:()=>e[t],enumerable:!(i=u(e,t))||i.enumerable});return r};var k=(r,e,n)=>(n=r!=null?c(d(r)):{},o(e||!r||!r.__esModule?f(n,"default",{value:r,enumerable:!0}):n,r)),m=r=>o(f({},"__esModule",{value:!0}),r);var x={};y(x,{default:()=>w,isRecord:()=>a});module.exports=m(x);var s=k(require("json-storage-formatter/isNil")),a=r=>!((0,s.default)(r)||typeof r!="object"||Array.isArray(r)||r instanceof Map||r instanceof Set||r instanceof Date),w=a;
|
package/isRecord.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"json-storage-formatter/isNil";var n=r=>!(e(r)||typeof r!="object"||Array.isArray(r)||r instanceof Map||r instanceof Set||r instanceof Date),f=n;export{f as default,n as isRecord};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-hooks-global-states",
|
|
3
|
-
"version": "16.0.
|
|
3
|
+
"version": "16.0.3-beta.0",
|
|
4
4
|
"description": "A package to easily handle global state across your React components using hooks.",
|
|
5
5
|
"main": "./bundle.cjs",
|
|
6
6
|
"module": "./bundle.mjs",
|
|
@@ -65,27 +65,6 @@
|
|
|
65
65
|
"*.mjs",
|
|
66
66
|
"*.d.ts"
|
|
67
67
|
],
|
|
68
|
-
"scripts": {
|
|
69
|
-
"format": "prettier --write . --log-level silent && yarn lint:fix",
|
|
70
|
-
"test": "yarn build && yarn ts-check:tests && yarn jest",
|
|
71
|
-
"test:logs": "sh -c 'yarn build && yarn jest \"$@\" 2>&1 | grep -i \"console\" -A 2' --",
|
|
72
|
-
"test:debug:no-watch": "node --inspect-brk node_modules/.bin/jest --no-watchman --runInBand",
|
|
73
|
-
"test:debug": "node --inspect-brk node_modules/.bin/jest --watch --runInBand",
|
|
74
|
-
"test:quick": "yarn ts-check:tests && yarn test --no-coverage --maxWorkers=4 -c --no-watchman -u",
|
|
75
|
-
"test:coverage": "yarn test --maxWorkers=4 -c --colors --no-watchman --verbose --coverage",
|
|
76
|
-
"test:interop": "yarn build && tsx scripts/test-interop.ts",
|
|
77
|
-
"build": "yarn ts-check && yarn clean && tsc -p tsconfig.build.json && tsx esbuild.config.ts && tsx scripts/prepare-dist.ts",
|
|
78
|
-
"prepare": "yarn format && npm run build && yarn test:quick",
|
|
79
|
-
"version": "npm run format && yarn build && yarn jest && git add -A",
|
|
80
|
-
"postversion": "git push && git push --tags",
|
|
81
|
-
"publish:pkg": "yarn build && cd dist && npm publish --tag latest --registry https://registry.npmjs.org/",
|
|
82
|
-
"publish:beta": "yarn build && cd dist && npm publish --tag beta --registry https://registry.npmjs.org/",
|
|
83
|
-
"lint": "eslint . --max-warnings=0",
|
|
84
|
-
"lint:fix": "eslint . --fix --max-warnings=0",
|
|
85
|
-
"clean": "rm -rf dist coverage",
|
|
86
|
-
"ts-check": "tsc -p tsconfig.json --noEmit",
|
|
87
|
-
"ts-check:tests": "tsc -p __test__/tsconfig.json --noEmit"
|
|
88
|
-
},
|
|
89
68
|
"repository": {
|
|
90
69
|
"type": "git",
|
|
91
70
|
"url": "git+https://github.com/johnny-quesada-developer/react-hooks-global-states.git"
|
|
@@ -108,35 +87,6 @@
|
|
|
108
87
|
"url": "https://github.com/johnny-quesada-developer/react-hooks-global-states/issues"
|
|
109
88
|
},
|
|
110
89
|
"homepage": "https://github.com/johnny-quesada-developer/react-hooks-global-states#readme",
|
|
111
|
-
"devDependencies": {
|
|
112
|
-
"@eslint/js": "^9.39.1",
|
|
113
|
-
"@testing-library/dom": "^10.4.0",
|
|
114
|
-
"@testing-library/react": "^16.3.0",
|
|
115
|
-
"@types/jest": "^29.5.11",
|
|
116
|
-
"@types/react": "^18.2.45",
|
|
117
|
-
"@types/react-dom": "^18.2.18",
|
|
118
|
-
"@typescript-eslint/eslint-plugin": "^4.9.1",
|
|
119
|
-
"@typescript-eslint/parser": "^4.9.1",
|
|
120
|
-
"easy-cancelable-promise": "^1.0.1",
|
|
121
|
-
"esbuild": "^0.24.0",
|
|
122
|
-
"eslint": "^9.39.1",
|
|
123
|
-
"eslint-config-airbnb": "^18.2.1",
|
|
124
|
-
"eslint-plugin-import": "^2.22.1",
|
|
125
|
-
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
126
|
-
"eslint-plugin-react": "^7.37.5",
|
|
127
|
-
"eslint-plugin-react-hooks": "^4.2.0",
|
|
128
|
-
"jest": "^29.7.0",
|
|
129
|
-
"jest-environment-jsdom": "^30.0.4",
|
|
130
|
-
"jiti": "^2.6.1",
|
|
131
|
-
"prettier": "^3.6.2",
|
|
132
|
-
"react": "^18.2.0",
|
|
133
|
-
"react-dom": "^18.2.0",
|
|
134
|
-
"ts-jest": "^29.1.1",
|
|
135
|
-
"tslib": "^2.6.2",
|
|
136
|
-
"tsx": "^4.19.0",
|
|
137
|
-
"typescript": "^5.8.2",
|
|
138
|
-
"typescript-eslint": "^8.46.3"
|
|
139
|
-
},
|
|
140
90
|
"dependencies": {
|
|
141
91
|
"json-storage-formatter": "^4.0.0"
|
|
142
92
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var q=Object.create;var s=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var O=(t,n)=>{for(var r in n)s(t,r,{get:n[r],enumerable:!0})},a=(t,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of M(n))!j.call(t,o)&&o!==r&&s(t,o,{get:()=>n[o],enumerable:!(e=E(n,o))||e.enumerable});return t};var i=(t,n,r)=>(r=t!=null?q(V(t)):{},a(n||!t||!t.__esModule?s(r,"default",{value:t,enumerable:!0}):r,t)),d=t=>a(s({},"__esModule",{value:!0}),t);var A={};O(A,{canCheckSimpleEquality:()=>x,default:()=>z,isArray:()=>k,isEqualArray:()=>m,isEqualMap:()=>h,isEqualObject:()=>S,isEqualSet:()=>l,isMap:()=>T,isSet:()=>y,shallowCompare:()=>w});module.exports=d(A);var f=i(require("json-storage-formatter/isPrimitive")),c=i(require("json-storage-formatter/isDate")),p=i(require("json-storage-formatter/isNil")),u=i(require("./isRecord.cjs")),w=(t,n)=>t===n?!0:x(t,n)?t===n:k(t)&&k(n)?m(t,n):T(t)&&T(n)?h(t,n):y(t)&&y(n)?l(t,n):!(0,u.default)(t)||!(0,u.default)(n)?t===n:S(t,n),k=t=>Array.isArray(t),T=t=>t instanceof Map,y=t=>t instanceof Set,x=(t,n)=>{let r=typeof t,e=typeof n;return r!==e?!0:(0,p.default)(t)||(0,p.default)(n)||(0,f.default)(t)&&(0,f.default)(n)||(0,c.default)(t)&&(0,c.default)(n)||r==="function"&&e==="function"},m=(t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r+=1){let e=t[r],o=n[r];if(e!==o)return!1}return!0},h=(t,n)=>{if(t.size!==n.size)return!1;for(let[r,e]of t){let o=n.get(r);if(e!==o)return!1}return!0},l=(t,n)=>{if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;return!0},S=(t,n)=>{let r=Object.keys(t),e=Object.keys(n);if(r.length!==e.length)return!1;for(let o of r){let b=t[o],g=n[o];if(b!==g)return!1}return!0},z=w;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description It performs a shallow comparison of the values.
|
|
3
|
+
* @param value1 - The first value to compare.
|
|
4
|
+
* @param value2 - The second value to compare.
|
|
5
|
+
* @returns True if the values are equal, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare const shallowCompare: <T>(value1: T, value2: T) => boolean;
|
|
8
|
+
export declare const isArray: (value: unknown) => value is unknown[];
|
|
9
|
+
export declare const isMap: (value: unknown) => value is Map<unknown, unknown>;
|
|
10
|
+
export declare const isSet: (value: unknown) => value is Set<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* @description Determines whether a simple equality check (using `===`) is sufficient
|
|
13
|
+
* to compare the provided values. This helps decide when a deep equality check
|
|
14
|
+
* is unnecessary or inefficient.
|
|
15
|
+
*
|
|
16
|
+
* Simple equality checks are considered valid when:
|
|
17
|
+
* - The values have different types (comparison will trivially return false)
|
|
18
|
+
* - Either value is null or undefined
|
|
19
|
+
* - Both values are primitive types (string, number, boolean, symbol, bigint)
|
|
20
|
+
* - Both values are Date objects
|
|
21
|
+
* - Both values are functions
|
|
22
|
+
*
|
|
23
|
+
* @param value1 - The first value to compare.
|
|
24
|
+
* @param value2 - The second value to compare.
|
|
25
|
+
* @returns `true` if a simple `===` check is sufficient, `false` if a deep comparison may be required.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* canCheckSimpleEquality(42, 42); // true (primitive numbers)
|
|
30
|
+
* canCheckSimpleEquality({ a: 1 }, { a: 1 }); // false (objects)
|
|
31
|
+
* canCheckSimpleEquality([1, 2], [1, 2]); // false (arrays)
|
|
32
|
+
* canCheckSimpleEquality('a', 1); // true (different types, shallow check enough)
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const canCheckSimpleEquality: (value1: unknown, value2: unknown) => boolean;
|
|
36
|
+
/**
|
|
37
|
+
* @description Performs a shallow comparison between two arrays.
|
|
38
|
+
*/
|
|
39
|
+
export declare const isEqualArray: <T>(array1: T[], array2: T[]) => array1 is T[];
|
|
40
|
+
/**
|
|
41
|
+
* @description Performs a shallow comparison between two maps.
|
|
42
|
+
*/
|
|
43
|
+
export declare const isEqualMap: <K, V>(map1: Map<K, V>, map2: Map<K, V>) => map1 is Map<K, V>;
|
|
44
|
+
/**
|
|
45
|
+
* @description Performs a shallow comparison between two sets.
|
|
46
|
+
*/
|
|
47
|
+
export declare const isEqualSet: <T>(set1: Set<T>, set2: Set<T>) => set1 is Set<T>;
|
|
48
|
+
/**
|
|
49
|
+
* @description Performs a shallow comparison between two objects.
|
|
50
|
+
*/
|
|
51
|
+
export declare const isEqualObject: <T extends Record<string, unknown>>(value1: T, value2: T) => boolean;
|
|
52
|
+
export default shallowCompare;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var q=Object.create;var s=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var O=(t,n)=>{for(var r in n)s(t,r,{get:n[r],enumerable:!0})},a=(t,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of M(n))!j.call(t,o)&&o!==r&&s(t,o,{get:()=>n[o],enumerable:!(e=E(n,o))||e.enumerable});return t};var i=(t,n,r)=>(r=t!=null?q(V(t)):{},a(n||!t||!t.__esModule?s(r,"default",{value:t,enumerable:!0}):r,t)),d=t=>a(s({},"__esModule",{value:!0}),t);var A={};O(A,{canCheckSimpleEquality:()=>x,default:()=>z,isArray:()=>k,isEqualArray:()=>m,isEqualMap:()=>h,isEqualObject:()=>S,isEqualSet:()=>l,isMap:()=>T,isSet:()=>y,shallowCompare:()=>w});module.exports=d(A);var f=i(require("json-storage-formatter/isPrimitive")),c=i(require("json-storage-formatter/isDate")),p=i(require("json-storage-formatter/isNil")),u=i(require("./isRecord.js")),w=(t,n)=>t===n?!0:x(t,n)?t===n:k(t)&&k(n)?m(t,n):T(t)&&T(n)?h(t,n):y(t)&&y(n)?l(t,n):!(0,u.default)(t)||!(0,u.default)(n)?t===n:S(t,n),k=t=>Array.isArray(t),T=t=>t instanceof Map,y=t=>t instanceof Set,x=(t,n)=>{let r=typeof t,e=typeof n;return r!==e?!0:(0,p.default)(t)||(0,p.default)(n)||(0,f.default)(t)&&(0,f.default)(n)||(0,c.default)(t)&&(0,c.default)(n)||r==="function"&&e==="function"},m=(t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r+=1){let e=t[r],o=n[r];if(e!==o)return!1}return!0},h=(t,n)=>{if(t.size!==n.size)return!1;for(let[r,e]of t){let o=n.get(r);if(e!==o)return!1}return!0},l=(t,n)=>{if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;return!0},S=(t,n)=>{let r=Object.keys(t),e=Object.keys(n);if(r.length!==e.length)return!1;for(let o of r){let b=t[o],g=n[o];if(b!==g)return!1}return!0},z=w;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import s from"json-storage-formatter/isPrimitive";import i from"json-storage-formatter/isDate";import f from"json-storage-formatter/isNil";import c from"./isRecord.mjs";var a=(t,n)=>t===n?!0:w(t,n)?t===n:p(t)&&p(n)?x(t,n):u(t)&&u(n)?m(t,n):k(t)&&k(n)?h(t,n):!c(t)||!c(n)?t===n:l(t,n),p=t=>Array.isArray(t),u=t=>t instanceof Map,k=t=>t instanceof Set,w=(t,n)=>{let r=typeof t,o=typeof n;return r!==o?!0:f(t)||f(n)||s(t)&&s(n)||i(t)&&i(n)||r==="function"&&o==="function"},x=(t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r<t.length;r+=1){let o=t[r],e=n[r];if(o!==e)return!1}return!0},m=(t,n)=>{if(t.size!==n.size)return!1;for(let[r,o]of t){let e=n.get(r);if(o!==e)return!1}return!0},h=(t,n)=>{if(t.size!==n.size)return!1;for(let r of t)if(!n.has(r))return!1;return!0},l=(t,n)=>{let r=Object.keys(t),o=Object.keys(n);if(r.length!==o.length)return!1;for(let e of r){let T=t[e],y=n[e];if(T!==y)return!1}return!0},E=a;export{w as canCheckSimpleEquality,E as default,p as isArray,x as isEqualArray,m as isEqualMap,l as isEqualObject,h as isEqualSet,u as isMap,k as isSet,a as shallowCompare};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var a in e)o(t,a,{get:e[a],enumerable:!0})},d=(t,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of g(e))!h.call(t,n)&&n!==a&&o(t,n,{get:()=>e[n],enumerable:!(r=s(e,n))||r.enumerable});return t};var f=t=>d(o({},"__esModule",{value:!0}),t);var l={};c(l,{default:()=>u,throwWrongKeyOnActionCollectionConfig:()=>i});module.exports=f(l);var i=t=>{throw new Error(`[WRONG CONFIGURATION!]: Every key inside the storeActionsConfig must be a higher order function that returns a function
|
|
2
|
+
[${t}]: key is not a valid function, try something like this:
|
|
3
|
+
{
|
|
4
|
+
|
|
5
|
+
${t}: (param) => ({ setState, getState, setMetadata, getMetadata, actions }) => {
|
|
6
|
+
|
|
7
|
+
setState((state) => ({ ...state, ...param }))
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
`)},u=i;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var a in e)o(t,a,{get:e[a],enumerable:!0})},d=(t,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of g(e))!h.call(t,n)&&n!==a&&o(t,n,{get:()=>e[n],enumerable:!(r=s(e,n))||r.enumerable});return t};var f=t=>d(o({},"__esModule",{value:!0}),t);var l={};c(l,{default:()=>u,throwWrongKeyOnActionCollectionConfig:()=>i});module.exports=f(l);var i=t=>{throw new Error(`[WRONG CONFIGURATION!]: Every key inside the storeActionsConfig must be a higher order function that returns a function
|
|
2
|
+
[${t}]: key is not a valid function, try something like this:
|
|
3
|
+
{
|
|
4
|
+
|
|
5
|
+
${t}: (param) => ({ setState, getState, setMetadata, getMetadata, actions }) => {
|
|
6
|
+
|
|
7
|
+
setState((state) => ({ ...state, ...param }))
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
`)},u=i;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var e=t=>{throw new Error(`[WRONG CONFIGURATION!]: Every key inside the storeActionsConfig must be a higher order function that returns a function
|
|
2
|
+
[${t}]: key is not a valid function, try something like this:
|
|
3
|
+
{
|
|
4
|
+
|
|
5
|
+
${t}: (param) => ({ setState, getState, setMetadata, getMetadata, actions }) => {
|
|
6
|
+
|
|
7
|
+
setState((state) => ({ ...state, ...param }))
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
`)},n=e;export{n as default,e as throwWrongKeyOnActionCollectionConfig};
|
package/types.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var d=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of i(t))!S.call(e,a)&&a!==r&&n(e,a,{get:()=>t[a],enumerable:!(o=s(t,a))||o.enumerable});return e};var l=e=>d(n({},"__esModule",{value:!0}),e);var c={};module.exports=l(c);
|