react-native-global-state-hooks 2.0.7 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,53 +1,165 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
- import * as IGlobalStore from './GlobalStoreTypes';
3
- export type IValueWithMedaData = {
4
- _type_?: 'map' | 'set' | 'date';
5
- value?: unknown;
6
- };
7
- export declare const debounce: <T extends Function>(callback: T, wait?: number) => T;
8
- export declare class GlobalStore<IState, IPersist extends string | null, IActions extends IGlobalStore.IActionCollectionConfig<IState> | null = null> implements IGlobalStore.IGlobalState<IState, IPersist, IActions> {
9
- protected state: IState;
10
- protected actions: IActions;
11
- persistStoreAs: IPersist;
12
- /**
13
- * This function can be used to format the data after it is loaded from the asyncStorage
14
- */
15
- onPersistStorageLoad: (obj: unknown) => (IState | null);
16
- subscribers: IGlobalStore.StateSetter<IState>[];
17
- get isPersistStore(): boolean;
18
- constructor(state: IState, actions?: IActions, persistStoreAs?: IPersist,
19
- /**
20
- * This function can be used to format the data after it is loaded from the asyncStorage
21
- */
22
- onPersistStorageLoad?: (obj: unknown) => (IState | null));
23
- private get isStoredStateItemUpdated();
24
- private storedStateItem;
25
- protected getAsyncStoreItemPromise: Promise<IState> | null;
26
- protected asyncStorageGetItem(): Promise<string | null>;
27
- protected getAsyncStoreItem({ invokerSetState }: {
28
- invokerSetState?: React.Dispatch<React.SetStateAction<IState>>;
29
- }): Promise<IState>;
30
- protected asyncStorageSetItem(valueToStore: string): Promise<void>;
31
- protected setAsyncStoreItem(): Promise<void>;
32
- protected getStateCopy: () => IState;
33
- getHook: <IApi extends IGlobalStore.IActionCollectionResult<IState, IActions> | null = IActions extends null ? null : IGlobalStore.IActionCollectionResult<IState, IActions>>() => () => [IState, IGlobalStore.IHookResult<IState, IActions, IApi>, IPersist extends null ? false : boolean];
34
- getHookDecoupled: <IApi extends IGlobalStore.IActionCollectionResult<IState, IActions> | null = IActions extends null ? null : IGlobalStore.IActionCollectionResult<IState, IActions>>() => [() => IPersist extends string ? Promise<IState> : IState, IGlobalStore.IHookResult<IState, IActions, IApi>];
35
- protected getInternalSetter: ({ invokerSetState }?: {
36
- invokerSetState?: Dispatch<SetStateAction<IState>> | undefined;
37
- }) => IGlobalStore.StateSetter<IState>;
38
- protected getStateOrchestrator(invokerSetState?: React.Dispatch<React.SetStateAction<IState>>): IGlobalStore.StateSetter<IState> | IGlobalStore.IActionCollectionResult<IState, IActions>;
39
- protected globalSetter: ({ setter, invokerSetState }: {
40
- setter: IState | ((state: IState) => IState);
41
- invokerSetState?: Dispatch<SetStateAction<IState>> | undefined;
2
+ import { ActionCollectionConfig, StateSetter, GlobalStoreConfig, ActionCollectionResult, StateConfigCallbackParam } from './GlobalStore.types';
3
+ /**
4
+ * The GlobalStore class is the main class of the library and it is used to create a GlobalStore instances
5
+ * @template {TState} TState - The type of the state object
6
+ * @template {TMetadata} TMetadata - The type of the metadata object (optional) (default: null) no reactive information set to share with the subscribers
7
+ * @template {TStateSetter} TStateSetter - The type of the setterConfig object (optional) (default: null) if a configuration is passed, the hook will return an object with the actions then all the store manipulation will be done through the actions
8
+ * */
9
+ export declare class GlobalStore<TState, TMetadata = null, TStateSetter extends ActionCollectionConfig<TState, TMetadata> | StateSetter<TState> | null = StateSetter<TState>> {
10
+ protected state: TState;
11
+ protected metadata: TMetadata;
12
+ protected setterConfig: TStateSetter | null;
13
+ protected config: GlobalStoreConfig<TState, TMetadata, TStateSetter>;
14
+ /**
15
+ * list of all the subscribers setState functions
16
+ * @template {TState} TState - The type of the state object
17
+ * */
18
+ subscribers: Set<StateSetter<TState>>;
19
+ /**
20
+ * execute once the store is created
21
+ * @template {TState} TState - The type of the state object
22
+ * @template {TMetadata} TMetadata - The type of the metadata object (optional) (default: null) no reactive information set to share with the subscribers
23
+ * @template {TStateSetter} TStateSetter - The type of the setterConfig object (optional) (default: null) if a configuration is passed, the hook will return an object with the actions then all the store manipulation will be done through the actions
24
+ * @param {StateConfigCallbackParam<TState, TMetadata, TStateSetter>} parameters - The parameters object brings the following properties: setState, getState, setMetadata, getMetadata
25
+ * @param {Dispatch<SetStateAction<TState>>} parameters.setState - The setState function to update the state
26
+ * @param {() => TState} parameters.getState - The getState function to get the state
27
+ * @param {Dispatch<SetStateAction<TMetadata>>} parameters.setMetadata - The setMetadata function to update the metadata
28
+ * @param {() => TMetadata} parameters.getMetadata - The getMetadata function to get the metadata
29
+ * */
30
+ protected onInit?: GlobalStoreConfig<TState, TMetadata, TStateSetter>['onInit'];
31
+ /**
32
+ * execute every time the state is changed
33
+ * @template {TState} TState - The type of the state object
34
+ * @template {TMetadata} TMetadata - The type of the metadata object (optional) (default: null) no reactive information set to share with the subscribers
35
+ * @template {TStateSetter} TStateSetter - The type of the setterConfig object (optional) (default: null) if a configuration is passed, the hook will return an object with the actions then all the store manipulation will be done through the actions
36
+ * @param {StateConfigCallbackParam<TState, TMetadata, TStateSetter>} parameters - The parameters object brings the following properties: setState, getState, setMetadata, getMetadata
37
+ * @param {Dispatch<SetStateAction<TState>>} parameters.setState - The setState function to update the state
38
+ * @param {() => TState} parameters.getState - The getState function to get the state
39
+ * @param {Dispatch<SetStateAction<TMetadata>>} parameters.setMetadata - The setMetadata function to update the metadata
40
+ * @param {() => TMetadata} parameters.getMetadata - The getMetadata function to get the metadata
41
+ * */
42
+ protected onStateChanged?: GlobalStoreConfig<TState, TMetadata, TStateSetter>['onStateChanged'];
43
+ /**
44
+ * Execute each time a new component gets subscribed to the store
45
+ * @template {TState} TState - The type of the state object
46
+ * @template {TMetadata} TMetadata - The type of the metadata object (optional) (default: null) no reactive information set to share with the subscribers
47
+ * @template {TStateSetter} TStateSetter - The type of the setterConfig object (optional) (default: null) if a configuration is passed, the hook will return an object with the actions then all the store manipulation will be done through the actions
48
+ * @param {StateConfigCallbackParam<TState, TMetadata, TStateSetter>} parameters - The parameters object brings the following properties: setState, getState, setMetadata, getMetadata
49
+ * @param {Dispatch<SetStateAction<TState>>} parameters.setState - The setState function to update the state
50
+ * @param {() => TState} parameters.getState - The getState function to get the state
51
+ * @param {Dispatch<SetStateAction<TMetadata>>} parameters.setMetadata - The setMetadata function to update the metadata
52
+ * @param {() => TMetadata} parameters.getMetadata - The getMetadata function to get the metadata
53
+ * */
54
+ protected onSubscribed?: GlobalStoreConfig<TState, TMetadata, TStateSetter>['onSubscribed'];
55
+ /**
56
+ * Execute everytime a state change is triggered and before the state is updated, it allows to prevent the state change by returning true
57
+ * @template {TState} TState - The type of the state object
58
+ * @template {TMetadata} TMetadata - The type of the metadata object (optional) (default: null) no reactive information set to share with the subscribers
59
+ * @template {TStateSetter} TStateSetter - The type of the setterConfig object (optional) (default: null) if a configuration is passed, the hook will return an object with the actions then all the store manipulation will be done through the actions
60
+ * @param {StateConfigCallbackParam<TState, TMetadata, TStateSetter>} parameters - The parameters object brings the following properties: setState, getState, setMetadata, getMetadata
61
+ * @param {Dispatch<SetStateAction<TState>>} parameters.setState - The setState function to update the state
62
+ * @param {() => TState} parameters.getState - The getState function to get the state
63
+ * @param {Dispatch<SetStateAction<TMetadata>>} parameters.setMetadata - The setMetadata function to update the metadata
64
+ * @param {() => TMetadata} parameters.getMetadata - The getMetadata function to get the metadata
65
+ * @returns {boolean} - true to prevent the state change, false to allow the state change
66
+ * */
67
+ protected computePreventStateChange?: GlobalStoreConfig<TState, TMetadata, TStateSetter>['computePreventStateChange'];
68
+ /**
69
+ * Create a new instance of the GlobalStore
70
+ * @param {TState} state - The initial state
71
+ * @param {TMetadata} metadata - The metadata object (optional) (default: null) no reactive information set to share with the subscribers
72
+ * @param {TStateSetter} setterConfig - The actions configuration object (optional) (default: null) if not null the store manipulation will be done through the actions
73
+ * @param {GlobalStoreConfig<TState, TMetadata>} config - The configuration object (optional) (default: { metadata: null })
74
+ * @param {StateConfigCallbackParam<TState, TMetadata>} config.onInit - The callback to execute when the store is initialized (optional) (default: null)
75
+ * @param {StateConfigCallbackParam<TState, TMetadata>} config.onStateChanged - The callback to execute when the state is changed (optional) (default: null)
76
+ * @param {StateConfigCallbackParam<TState, TMetadata>} config.onSubscribed - The callback to execute when a subscriber is added (optional) (default: null)
77
+ * @param {StateConfigCallbackParam<TState, TMetadata>} config.computePreventStateChange - The callback to execute when the state is changed to compute if the state change should be prevented (optional) (default: null)
78
+ * */
79
+ constructor(state: TState, metadata?: TMetadata, setterConfig?: TStateSetter | null, config?: GlobalStoreConfig<TState, TMetadata, TStateSetter>);
80
+ protected onInitializeStore: () => void;
81
+ /**
82
+ * gets a clone of the state
83
+ * @returns {TState} - The state clone
84
+ * */
85
+ protected getStateClone: () => TState;
86
+ /**
87
+ * gets a clone of the metadata
88
+ * @returns {TMetadata} - The metadata clone
89
+ * */
90
+ protected getMetadataClone: () => TMetadata;
91
+ /**
92
+ * set the state and update all the subscribers
93
+ * @param {StateSetter<TState>} setter - The setter function or the value to set
94
+ * @param {React.Dispatch<React.SetStateAction<TState>>} invokerSetState - The setState function of the component that invoked the state change (optional) (default: null) this is used to updated first the component that invoked the state change
95
+ * */
96
+ protected setState: ({ invokerSetState, state, }: {
97
+ state: TState;
98
+ invokerSetState?: React.Dispatch<React.SetStateAction<TState>>;
42
99
  }) => void;
43
- protected globalSetterToPersistStoreAsync: ({ setter, invokerSetState }: {
44
- setter: IState | ((state: IState) => IState);
45
- invokerSetState?: Dispatch<SetStateAction<IState>> | undefined;
46
- }) => Promise<IState>;
47
- protected getApiActions: <IApi extends IGlobalStore.IActionCollectionResult<IState, IGlobalStore.IActionCollectionConfig<IState>>>({ invokerSetState }: {
48
- invokerSetState?: Dispatch<SetStateAction<IState>> | undefined;
49
- }) => IApi;
50
- deleteAsyncStoreItem: () => Promise<void>;
100
+ /**
101
+ * Set the value of the metadata property, this is no reactive and will not trigger a re-render
102
+ * @param {StateSetter<TMetadata>} setter - The setter function or the value to set
103
+ * */
104
+ protected setMetadata: StateSetter<TMetadata>;
105
+ /**
106
+ * get the parameters object to pass to the callback functions (onInit, onStateChanged, onSubscribed, computePreventStateChange)
107
+ * this parameters object brings the following properties: setState, getState, setMetadata, getMetadata
108
+ * this parameter object allows to update the state, get the state, update the metadata, get the metadata
109
+ * @param {{ invokerSetState?: React.Dispatch<React.SetStateAction<TState>> }} parameters - The setState function of the component that invoked the state change (optional) (default: null) this is used to updated first the component that invoked the state change
110
+ * @returns {StateConfigCallbackParam<TState, TMetadata>} - The parameters object
111
+ * */
112
+ protected getConfigCallbackParam: ({ invokerSetState, }: {
113
+ invokerSetState?: React.Dispatch<React.SetStateAction<TState>>;
114
+ }) => StateConfigCallbackParam<TState, TMetadata, TStateSetter>;
115
+ /**
116
+ * Returns a custom hook that allows to handle a global state
117
+ * @returns {[TState, TStateSetter, TMetadata]} - The state, the state setter or the actions map, the metadata
118
+ * */
119
+ getHook: () => () => [TState, TStateSetter extends StateSetter<TState> ? StateSetter<TState> : ActionCollectionResult<TState, TMetadata, TStateSetter>, TMetadata];
120
+ /**
121
+ * Returns an array with the a function to get the state, the state setter or the actions map, and a function to get the metadata
122
+ * @returns {[() => TState, TStateSetter, () => TMetadata]} - The state getter, the state setter or the actions map, the metadata getter
123
+ * */
124
+ getHookDecoupled: () => [() => TState, TStateSetter extends StateSetter<TState> ? StateSetter<TState> : ActionCollectionResult<TState, TMetadata, TStateSetter>, () => TMetadata];
125
+ /**
126
+ * returns a wrapper for the setState function that will update the state and all the subscribers
127
+ * @param {{ invokerSetState?: React.Dispatch<React.SetStateAction<TState>> }} parameters - The setState function of the component that invoked the state change (optional) (default: null) this is used to updated first the component that invoked the state change
128
+ * @returns {StateSetter<TState>} - The state setter
129
+ * */
130
+ protected getSetStateWrapper: ({ invokerSetState, }?: {
131
+ invokerSetState?: React.Dispatch<React.SetStateAction<TState>>;
132
+ }) => StateSetter<TState>;
133
+ /**
134
+ * Returns the state setter or the actions map
135
+ * @param {{ invokerSetState?: React.Dispatch<React.SetStateAction<TState>> }} parameters - The setState function of the component that invoked the state change (optional) (default: null) this is used to updated first the component that invoked the state change
136
+ * @returns {TStateSetter} - The state setter or the actions map
137
+ * */
138
+ protected getStateOrchestrator(invokerSetState?: React.Dispatch<React.SetStateAction<TState>>): StateSetter<TState> | ActionCollectionResult<TState, TMetadata, TStateSetter>;
139
+ /**
140
+ * Calculate whenever or not we should compute the callback parameters on the state change
141
+ * @returns {boolean} - True if we should compute the callback parameters on the state change
142
+ * */
143
+ protected hasStateCallbacks: () => boolean;
144
+ /**
145
+ * This is responsible for defining whenever or not the state change should be allowed or prevented
146
+ * the function also execute the functions:
147
+ * - onStateChanged (if defined) - this function is executed after the state change
148
+ * - 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
149
+ * @param {{ setter: StateSetter<TState>; invokerSetState?: React.Dispatch<React.SetStateAction<TState>> }} parameters - The state setter and the setState function of the component that invoked the state change (optional) (default: null) this is used to updated first the component that invoked the state change
150
+ */
151
+ protected computeSetState: ({ setter, invokerSetState, }: {
152
+ setter: StateSetter<TState>;
153
+ invokerSetState?: React.Dispatch<React.SetStateAction<TState>>;
154
+ }) => void;
155
+ /**
156
+ * This creates a map of actions that can be used to modify or interact with the state
157
+ * @param {{ invokerSetState?: React.Dispatch<React.SetStateAction<TState>> }} parameters - The setState function of the component that invoked the state change (optional) (default: null) this is used to updated first the component that invoked the state change
158
+ * @returns {ActionCollectionResult<TState, TMetadata, TStateSetter>} - The actions map result of the configuration object passed to the constructor
159
+ * */
160
+ protected getStoreActionsMap: ({ invokerSetState, }: {
161
+ invokerSetState?: React.Dispatch<React.SetStateAction<TState>>;
162
+ }) => ActionCollectionResult<TState, TMetadata, TStateSetter>;
51
163
  }
52
164
  export default GlobalStore;
53
165
  //# sourceMappingURL=GlobalStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalStore.d.ts","sourceRoot":"","sources":["../src/GlobalStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAAE,cAAc,EACzB,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAA;AAED,eAAO,MAAM,QAAQ,uDAUpB,CAAC;AAEF,qBAAa,WAAW,CACtB,MAAM,EACN,QAAQ,SAAS,MAAM,GAAG,IAAI,EAC9B,QAAQ,SAAS,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAC3E,YAAW,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAS9D,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,OAAO,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IAE/B;;MAEE;IACK,oBAAoB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAdzD,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAM;IAE5D,IAAW,cAAc,IAAI,OAAO,CAEnC;gBAGW,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,QAA2B,EACvC,cAAc,GAAE,QAA2B;IAElD;;MAEE;IACK,oBAAoB,GAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAc;IAG7E,OAAO,KAAK,wBAAwB,GAEnC;IAED,OAAO,CAAC,eAAe,CAAiC;IAExD,SAAS,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAQ;IAElE,SAAS,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;cAIvC,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAAE;QACrD,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;KAC/D,GAAG,OAAO,CAAC,MAAM,CAAC;cA8BH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIxD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlD,SAAS,CAAC,YAAY,QAAO,MAAM,CAAqC;IAEjE,OAAO,sRA2BZ;IAEK,gBAAgB,mLAGV,QAAQ,SAAS,MAAM,GAAG,QAAQ,MAAM,CAAC,GAAG,MAAM,oDAa7D;IAEF,SAAS,CAAC,iBAAiB;;UAElB,aAAa,WAAW,CAAC,MAAM,CAAC,CAYxC;IAED,SAAS,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,GAC/H,YAAY,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAWvD,SAAS,CAAC,YAAY;kCACM,MAAM,KAAK,MAAM;;eAgB3C;IAEF,SAAS,CAAC,+BAA+B;kCACb,MAAM,KAAK,MAAM;;UAEzC,QAAQ,MAAM,CAAC,CAMjB;IAEF,SAAS,CAAC,aAAa;;eAyBrB;IAEK,oBAAoB,QAAa,QAAQ,IAAI,CAAC,CAIpD;CAEF;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"GlobalStore.d.ts","sourceRoot":"","sources":["../src/GlobalStore.ts"],"names":[],"mappings":"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"}