state-manager-jeph

1.0.4 • Public • Published

StateManager

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.

Features

  • 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.

Installation

To include StateManager in your project, you can simply import it from your JavaScript file:

const StateManager = require('state-manager-jeph');

Usage

Creating an instance

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);

Getting the state

Use the getState method to retrieve the current state.

console.log(stateManager.getState());

Setting the state

Use the setState method to update the state with new values.

const newState = { key1: 'newValue1', key3: 'value3' };
stateManager.setState(newState);
console.log(stateManager.getState());

Getting a specific property

Use the getProperty method to retrieve the value of a specific state property.

console.log(stateManager.getProperty('key1'));

Setting a specific property

Use the setProperty method to update the value of a specific state property.

stateManager.setProperty('key2', 'newValue2');
console.log(stateManager.getState());

Checking if all keys have values

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

Methods

getState()

  • Description: Returns the current state.
  • Returns: Object

setState(newState)

  • Description: Updates the state with new values.
  • Parameters:
    • newState (Object): An object containing the new state values.

getProperty(prop)

  • Description: Retrieves the value of a specific state property.
  • Parameters:
    • prop (String): The property name to retrieve.
  • Returns: any

setProperty(prop, value)

  • Description: Updates the value of a specific state property.
  • Parameters:
    • prop (String): The property name to update.
    • value (any): The new value to set.

allKeysHaveValues(ignoreKeys = [])

  • 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

checkValues(obj, ignoreKeys)

  • 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

License

This project is licensed under the MIT License.


Feel free to customize this README file further according to your specific needs or preferences.

Package Sidebar

Install

npm i state-manager-jeph

Weekly Downloads

1

Version

1.0.4

License

ISC

Unpacked Size

6.79 kB

Total Files

4

Last publish

Collaborators

  • jeff2106