Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

state-manager-jeph

jeff21069ISC1.0.4

StateManager is a Javascript class for reactive management of the state of an application. It allows to initialize, access, and modify the state centrally, while checking that all keys have defined values one can even remove keys during verification. Uses

state-management, reactive-state, state-proxy, state-handler, state-validation, javascript, es6, frontend, backend, web-development, state-check, object-proxy, state-update, state-access

readme

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.