eventstop

A minimal event library for Node.js and browser.

Usage no npm install needed!

<script type="module">
  import eventstop from 'https://cdn.skypack.dev/eventstop';
</script>

README

eventstop

NPM version NPM downloads Build Status donate

Features

  • Modern
  • For Node.js and browsers
  • Support wildcard listener: on('*', (type, ...payload) => {})
  • Support all major browsers including IE8
  • 300 bytes minified and gzipped

Install

yarn add eventstop

You can also use the UMD version via https://unpkg.com/eventstop

Usage

const eventstop = require('eventstop')

const {on, emit} = eventstop()

// subscribe an event
const off = on('ready', msg => {
  console.log('message:', msg)
})

emit('ready', 'hola')
//=> hola

// unsubscribe
off()

API

const event = eventstop()
// or
const {on, off, emit, once} = eventstop()

.on(event, handler)

Return a function which would execute off(event, handler) when you call it.

You can use * as event type to listen all types:

on('*', (type, foo, bar) => {
  console.log(type, foo, 'and', bar)
  //=> hello you and me
})
emit('hello', 'you', 'me')

In wildcard listener, the first argument of handler function is its type.

.once(event, handler)

Like .on but only trigger handler once.

event

Type: string

handler

Type: function

.emit(event, ...args)

event

Type: string

.off(event, handler)

Same args to .on

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

eventstop © egoist, Released under the MIT License.
Authored and maintained by egoist with help from contributors (list).

egoistian.com · GitHub @egoist · Twitter @rem_rin_rin