aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nanobus/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nanobus/README.md')
-rw-r--r--node_modules/nanobus/README.md105
1 files changed, 105 insertions, 0 deletions
diff --git a/node_modules/nanobus/README.md b/node_modules/nanobus/README.md
new file mode 100644
index 00000000..d57f697a
--- /dev/null
+++ b/node_modules/nanobus/README.md
@@ -0,0 +1,105 @@
+# nanobus [![stability][0]][1]
+[![npm version][2]][3] [![build status][4]][5] [![test coverage][6]][7]
+[![downloads][8]][9] [![js-standard-style][10]][11]
+
+Tiny message bus.
+
+## Usage
+```js
+var nanobus = require('nanobus')
+var bus = nanobus()
+
+bus.on('foo', function (color) {
+ console.log('color is', color)
+})
+
+bus.emit('foo', 'blue')
+```
+
+## FAQ
+### Why not use the Node API?
+We had the requirement for a `*` event to catch all calls, and figured we could
+improve the file size at the same time. This library is about 1/3rd the size of
+Node's version. And it was easy to build, so yeah good enough of an excuse hah.
+
+### How do I listen for replies?
+You can do this by using the `.once()` listener and establishing a convention
+around naming schemas.
+
+```js
+bus.on('foo', function (color) {
+ console.log('foo called')
+ bus.emit('foo:res')
+})
+
+bus.once('foo:res', function () {
+ console.log('response received')
+})
+bus.emit('foo')
+```
+
+### When shouldn't I use this package?
+If you're only writing code that runs inside Node and don't need a `'*'`
+listener, consider using the built-in event emitter API instead.
+
+### Are the emitters asynchronous?
+No. If you're interested in doing that, use something like
+[nanotick](https://github.com/yoshuawuyts/nanotick) to batch events and ensure
+they run asynchronously.
+
+## API
+### `bus = nanobus([name])`
+Create a new `nanobus` instance. Optionally takes a name that will be used for
+tracing in the browser using the `performance.mark` / `performance.measure`
+API.
+
+### `bus.emit(eventName, [data])`
+Emit an event. Arbitrary data can optionally be passed as an argument. `'*'`
+listeners run after named listeners.
+
+### `bus.on(eventName, listener([data]))`
+### `bus.addListener(eventName, listener([data]))`
+Listen to an event. If the event name is `'*'` the listener signature is
+`listener(eventName, [data], [performanceTimingId])`.
+
+### `bus.prependListener(eventName, listener([data]))`
+Listen to an event, but make sure it's pushed to the start of the listener
+queue. If the event name is `'*'` the listener signature is
+`listener(eventName, [data])`.
+
+### `bus.once(eventName, listener([data]))`
+Listen to an event, and clear it after it's been called once. If the event
+name is `'*'` the listener signature is
+`listener(eventName, [data], [performanceTimingId])`.
+
+### `bus.prependOnceListener(eventName, listener([data]))`
+Listen to an event, and clear it after it's been called once. If the event
+name is `'*'` the listener signature is `listener(eventName, [data])`.
+
+### `bus.removeListener(eventName, listener)`
+Remove a specific listener to an event.
+
+### `listeners = bus.listeners(eventName)`
+Return all listeners for a given event. `'*'` listeners are not included in
+this list. Use `bus.listeners('*')` to get a list of `'*'` listeners.
+
+### `bus.removeAllListeners([eventName])`
+Remove all listeners to an event. If no event name is passed, removes all
+listeners on the message bus. `'*'` listeners are not removed unless
+`eventName` is `*` or no event name is passed.
+
+## License
+[MIT](https://tldrlegal.com/license/mit-license)
+
+[0]: https://img.shields.io/badge/stability-experimental-orange.svg?style=flat-square
+[1]: https://nodejs.org/api/documentation.html#documentation_stability_index
+[2]: https://img.shields.io/npm/v/nanobus.svg?style=flat-square
+[3]: https://npmjs.org/package/nanobus
+[4]: https://img.shields.io/travis/choojs/nanobus/master.svg?style=flat-square
+[5]: https://travis-ci.org/choojs/nanobus
+[6]: https://img.shields.io/codecov/c/github/choojs/nanobus/master.svg?style=flat-square
+[7]: https://codecov.io/github/choojs/nanobus
+[8]: http://img.shields.io/npm/dm/nanobus.svg?style=flat-square
+[9]: https://npmjs.org/package/nanobus
+[10]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
+[11]: https://github.com/feross/standard