@okiba/store

0.0.5 • Public • Published

Okiba / Store

A store module to implement state management. It allows registering to prop updates, as well as any update trough the catch-all callback.

__

import Store from '@okiba/store'

const store = new Store({ level: 1, lives: 3 })

const onLevelChange = level => {
 console.log(level)
}

store.subscribe('*', state => console.log(`Store: ${state}`))
store.subscribe('level', onLevelChange)

store.set('level', 2)
// Logs: 2
// Logs: the whole state ({level: 1, lives: 3})

Installation

npm i --save @okiba/store

Or import it directly in the browser

<script type="module" src="https://unpkg.com/@okiba/store/index.js"></script>

Usage

import Store from '@okiba/store'

Untranspiled code 🛑

Okiba Core packages are not transpiled, so don't forget to transpile them with your favourite bundler. For example, using Babel with Webpack, you should prevent imports from okiba to be excluded from transpilation, like follows:

{
  test: /\.js$/,
  exclude: /node_modules\/(?!(@okiba)\/).*/,
  use: {
    loader: 'babel-loader',
    options: {
      presets: ['@babel/preset-env']
    }
  }
}

constructor(initialState)

Arguments

+ initialState: Object

The initial store's state

set(key, value)

Single state property setter

Arguments

+ key: String

The property key

+ value: any

The property value

get(key)

Single state property getter

Arguments

+ key: String

The property key

getState()

State getter

Returns

Object The current state

setState(state)

State setter

Arguments

+ state: Object

The new state object

reset()

State resetter

clear()

Clears the current state, that is, the store is going to be empty. No callbacks are fired.

subscribe(key, callback)

State update subscription handler

Arguments

+ key: String

The property to be observed

+ callback: function

The function to be called on property update

unsubscribe(key, callback)

State update unsubscription handler

Arguments

+ key: String

The property to be unobserved

+ callback: function

The handler to be dismissed

Dependents (0)

Package Sidebar

Install

npm i @okiba/store

Weekly Downloads

0

Version

0.0.5

License

MIT

Unpacked Size

8.98 kB

Total Files

5

Last publish

Collaborators

  • fiad
  • ghzmdr
  • lavolpecheprogramma