StateManager is a simple JavaScript class that provides state management capabilities using a Proxy object. This class allows you to manage state in a clear and concise manner, offering methods to get and set state properties, check if all keys have values, and more.
- Proxy-based state management: Allows for dynamic state handling.
- Get and set state properties: Easily access and update state properties.
- Check if all keys have values: Verify if all keys in the state have non-empty values, with the option to ignore certain keys.
To include StateManager
in your project, you can simply import it from your JavaScript file:
const StateManager = require('state-manager-jeph');
Create an instance of StateManager
by passing an initial state object to the constructor.
const initialState = { key1: 'value1', key2: 'value2' };
const stateManager = new StateManager(initialState);
Use the getState
method to retrieve the current state.
console.log(stateManager.getState());
Use the setState
method to update the state with new values.
const newState = { key1: 'newValue1', key3: 'value3' };
stateManager.setState(newState);
console.log(stateManager.getState());
Use the getProperty
method to retrieve the value of a specific state property.
console.log(stateManager.getProperty('key1'));
Use the setProperty
method to update the value of a specific state property.
stateManager.setProperty('key2', 'newValue2');
console.log(stateManager.getState());
Use the allKeysHaveValues
method to check if all keys in the state have non-empty values. You can pass an array of keys to ignore during this check.
console.log(stateManager.allKeysHaveValues()); // true or false
const ignoreKeys = ['key3'];
console.log(stateManager.allKeysHaveValues(ignoreKeys)); // true or false
- Description: Returns the current state.
-
Returns:
Object
- Description: Updates the state with new values.
-
Parameters:
-
newState
(Object
): An object containing the new state values.
-
- Description: Retrieves the value of a specific state property.
-
Parameters:
-
prop
(String
): The property name to retrieve.
-
-
Returns:
any
- Description: Updates the value of a specific state property.
-
Parameters:
-
prop
(String
): The property name to update. -
value
(any
): The new value to set.
-
- Description: Checks if all keys in the state have non-empty values.
-
Parameters:
-
ignoreKeys
(Array
): An optional array of keys to ignore during the check.
-
-
Returns:
Boolean
- Description: Helper method to recursively check if all keys in an object have non-empty values, considering nested objects.
-
Parameters:
-
obj
(Object
): The object to check. -
ignoreKeys
(Array
): An array of keys to ignore during the check.
-
-
Returns:
Boolean
This project is licensed under the MIT License.
Feel free to customize this README file further according to your specific needs or preferences.