Skip to content

code-for-coffee/simple-state

Repository files navigation

@codeforcoffee/simple-state

Simple State for SPAs

https://www.npmjs.com/package/@codeforcoffee/simple-state

Build Status codecov

Install

npm install @codeforcoffee/simple-state or yarn add @codeforcoffee/simple-state

ES Module

import SimpleState from '@codeforcoffee/simple-state';

Getting Started

After importing the library, you can create as many instances as you'd like (but likely should not).

If you use create-react-app or anything else that uses babel, you will need to update your config files for your project to enable @babel/plugin-proposal-class-properties.

Generic Babel Config

Install the following packages:

npm i --save-dev @babel/preset-env @babel/preset-react @babel/plugin-proposal-class-properties
"babel": {
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    [
      "@babel/plugin-proposal-class-properties"
    ]
  ]
}
create-react-app

If using CRA, follow the above steps (the config block will be added to your package.json), npm i @codeforcoffee/simple-state.

You will need to npm run eject. From there, in your scripts/webpack.*.config files, update your Babel config block:

presets: [
  [
    require.resolve("babel-preset-react-app/dependencies"),
    { helpers: true }
  ]
],
plugins: ["@babel/plugin-proposal-class-properties"],

Examples

An example application is located in this repository under the example folder.

store = new SimpleState({ amiibo: [] });

Then you can update the State:

store.updateStore({ myValue: "isNotEmpty" });

You can get state:

store.getState();

Previous state:

store.getPreviousState();

and initial state:

store.getInitialState();

and to JSON for API calls:

store.toJSON();

Documentation

Classes

SimpleState

Created by codeforcoffee on 11/2/18.

Objects

SimpleState : object

SimpleState

Created by codeforcoffee on 11/2/18.

Kind: global class

new SimpleState(initialState)

constructor

Param Type
initialState *

simpleState.getInitialState()

Returns initial state

Kind: instance method of SimpleState

simpleState.updateStore(newAttributes, mergeArrays)

Update the store. MergeArrays is true by default.

Kind: instance method of SimpleState

Param Type Default
newAttributes *
mergeArrays Boolean true

simpleState.getState()

Get current state

Kind: instance method of SimpleState

simpleState.getPreviousState()

Get prior state

Kind: instance method of SimpleState

simpleState.toJSON()

converts state to JSON

Kind: instance method of SimpleState

SimpleState : object

Kind: global namespace

new SimpleState(initialState)

constructor

Param Type
initialState *

simpleState.getInitialState()

Returns initial state

Kind: instance method of SimpleState

simpleState.updateStore(newAttributes, mergeArrays)

Update the store. MergeArrays is true by default.

Kind: instance method of SimpleState

Param Type Default
newAttributes *
mergeArrays Boolean true

simpleState.getState()

Get current state

Kind: instance method of SimpleState

simpleState.getPreviousState()

Get prior state

Kind: instance method of SimpleState

simpleState.toJSON()

converts state to JSON

Kind: instance method of SimpleState

Changelog

  • 1.0.0-beta.0 - Initial release