4.0.3 • Published 6 years ago

obs-store v4.0.3

Weekly downloads
8,544
License
ISC
Repository
github
Last release
6 years ago

ObservableStore

ObservableStore is a synchronous in-memory store for a single value, that you can subscribe to updates on.

const store = new ObservableStore(initState)
store.subscribe(function showValue(value) {
  console.log('saw value:', value)
})

store.putState(5) // "saw value: 5"
store.putState(true) // "saw value: true"
store.putState({ hello: 'world' }) // "saw value: { hello: 'world' }"

console.log(store.getState().hello) // "world"

streams

Each ObservableStore can be turned into an ObservableStoreStream. An ObservableStoreStream is a duplex stream that you can pipe new values into it or pipe its updated values out of it.

Special behavior: Doesnt buffer outgoing updates, writes latest state to dest on pipe.

const pipe = require('pump')
const asStream = require('obs-store/lib/asStream')

const storeOne = new ObservableStore(initState)
const storeTwo = new ObservableStore()

pipe(
  asStream(storeOne),
  transformStream,
  asStream(storeTwo)
)

Changelog

3.0.0

ObservableStore are no longer streams. You can create streams via asStream.

@thesis-co/mechamittens-extensioneth-keyring-controller-qbck@everything-registry/sub-chunk-2366taquin-providerxdcpay-wallet-inpage-providerwgr-keyring-controllersparrow-inpage-providerstandardwallet-inpage-providerutrepudiandaevault-bevm-controllervoluptatemetisteinitaqueiurejson-rpc-capabilities-middlewareipsaillumirc-keyringkeyring-controllerkafirchain-tetrislayagcstria-sdk-web-dawntx-state-managertria-sdk-react-native-jatintria-sdk-webtria-sdk-web-jatintria-sdk-extension-jatintria-sdk-react-nativetron-keyring-controller@alayanetwork/eth-keyring-controller@alayanetwork/inpage-provider@byzantine-lab/keyring-controller@brave/eth-keyring-controller@dexon-foundation/eth-keyring-controller@dexon-foundation/dekusan-inpage-provider@dexon-foundation/dexon-keyring-controller@didux-io/didux-keyring-controllerwanmask-inpage-providerviralata-keyring-controller@hulohot/eth-keyring-controller@fksyuan/eth-keyring-controller@flureejs/inpage-provider@getsafle/safle-vault@getsafle/vault-arbitrum-controller@getsafle/vault-avalanche-controller@getsafle/vault-base-controller@getsafle/vault-bevm-controller@getsafle/vault-bitcoin-controller@getsafle/vault-bsc-controller@getsafle/vault-controller@getsafle/vault-eth-controller@getsafle/vault-evm-controller@getsafle/vault-harmony-controller@getsafle/vault-mantle-controller@getsafle/vault-optimism-controller@getsafle/vault-polygon-controller@getsafle/vault-polygon-zkevm-controller@getsafle/vault-rootstock-controller@getsafle/vault-sol-controller@getsafle/vault-solana-controller@getsafle/vault-stacks-controller@getsafle/vault-tezos-controller@getsafle/vault-velas-controller@getsafle/bsc-wallet-controller@mechamittens/extension@rathishubham017/eth-keyring-controller@oneblocklabs/obl-keyring-controller@openworklabs/lotus-block-explorermodiipsummetamascarametamascara-es5-for-wizardmetamask-inpage-providermm-vaultofficiistemporanuko-keyring-controllersdk-test-sevensdk-test-sixqbck-eth-keyring-controllernekomask-eth-keyring-controllernewchain-keyring-controllerquaeratvelslp-inpage-provideridb-globalinundeint-keyring-controllerliberomagnamlaboriosamquikitsunet-telemetry@wanchainmask/inpage-provider@tsiry/eth-keyring-controller@tronmask/inpage-provider@tria-sdk/web@zalastax/nolb-obs@yqrashawn/conflux-portal-inpage-provideraliasexaspernaturdoloreconsequaturaliquamcfx-keyring-controllerbch-keyring-controllerberrywalletatquevoluptatemauramascara
4.0.3

6 years ago

4.0.2

6 years ago

4.0.1

6 years ago

4.0.0

6 years ago

3.0.2

7 years ago

3.0.1

7 years ago

3.0.0

8 years ago

2.4.1

8 years ago

2.4.0

8 years ago

2.3.2

8 years ago

2.3.1

8 years ago

2.3.0

8 years ago

2.2.3

8 years ago

2.2.2

8 years ago

2.2.1

8 years ago

2.2.0

8 years ago

2.1.0

8 years ago

2.0.0

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago