change-emitter
Listen for changes. Like an event emitter that only emits a single event type. Really tiny.
Last updated 8 years ago by istarkov .
MIT · Repository · Bugs · Original npm
$ cnpm install change-emitter 
SYNC missed versions from official npm registry.

change-emitter

build status npm version

Listen for changes. Like an event emitter that only emits a single event type. Really tiny.

I extracted this from Redux's createStore() because I found it to be useful in other contexts. Use it where you want the most minimal event subscription implementation possible.

Usage

import { createChangeEmitter } from 'change-emitter'

const emitter = createChangeEmitter()

// Called `listen` instead of `subscribe` to avoid confusion with observable spec
const unlisten = emitter.listen((...args) => {
  console.log(args)
})

emitter.emit(1, 2, 3) // logs `[1, 2, 3]`
unlisten()
emitter.emit(4, 5, 6) // doesn't log

Larger example

Here's a (partial) implementation of Redux's createStore:

const createStore = (reducer, initialState) => {
  let state = initialState
  const emitter = createChangeEmitter()

  function dispatch(action) {
    state = reducer(state, action)
    emitter.emit()
    return action
  }

  function getState() {
    return state
  }

  return {
    dispatch,
    getState,
    subscribe: emitter.listen
  }
}

Current Tags

  • 0.1.6                                ...           latest (8 years ago)

1 Versions

  • 0.1.6                                ...           8 years ago
Maintainers (2)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (8)
Dependents (0)
None

Copyright 2013 - present © cnpmjs.org