{"name":"event-emitter","version":"0.3.4","description":"Environment agnostic event emitter","author":{"name":"Mariusz Nowak","email":"medyk@medikoo.com","url":"http://www.medikoo.com/"},"keywords":["event","events","trigger","observer","listener","emitter","pubsub"],"repository":{"type":"git","url":"git://github.com/medikoo/event-emitter.git"},"dependencies":{"es5-ext":"~0.10.7","d":"~0.1.1"},"devDependencies":{"tad":"~0.2.3","xlint":"~0.2.2","xlint-jslint-medikoo":"~0.1.4"},"scripts":{"lint":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream","lint-console":"node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch","test":"node ./node_modules/tad/bin/tad"},"license":"MIT","readme":"# event-emitter\n## Environment agnostic event emitter\n\n### Installation\n\n\t$ npm install event-emitter\n\t\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n```javascript\nvar ee = require('event-emitter');\n\nvar emitter = ee({}), listener;\n\nemitter.on('test', listener = function (args) {\n  // …emitter logic\n});\n\nemitter.once('test', function (args) {\n  // …invoked only once(!)\n});\n\nemitter.emit('test', arg1, arg2/*…args*/); // Two above listeners invoked\nemitter.emit('test', arg1, arg2/*…args*/); // Only first listener invoked\n\nemitter.off('test', listener);              // Removed first listener\nemitter.emit('test', arg1, arg2/*…args*/); // No listeners invoked\n```\n### Additional utilities\n\n#### allOff(obj) _(event-emitter/all-off)_\n\nRemoves all listeners from given event emitter object\n\n#### hasListeners(obj[, name]) _(event-emitter/has-listeners)_\n\nWhether object has some listeners attached to the object.\nWhen `name` is provided, it checks listeners for specific event name\n\n```javascript\nvar emitter = ee();\nvar hasListeners = require('event-emitter/has-listeners');\nvar listener = function () {};\n\nhasListeners(emitter); // false\n\nemitter.on('foo', listener);\nhasListeners(emitter); // true\nhasListeners(emitter, 'foo'); // true\nhasListeners(emitter, 'bar'); // false\n\nemitter.off('foo', listener);\nhasListeners(emitter, 'foo'); // false\n```\n\n#### pipe(source, target[, emitMethodName]) _(event-emitter/pipe)_\n\nPipes all events from _source_ emitter onto _target_ emitter (all events from _source_ emitter will be emitted also on _target_ emitter, but not other way).  \nReturns _pipe_ object which exposes `pipe.close` function. Invoke it to close configured _pipe_.  \nIt works internally by redefinition of `emit` method, if in your interface this method is referenced differently, provide its name (or symbol) with third argument.\n\n#### unify(emitter1, emitter2) _(event-emitter/unify)_\n\nUnifies event handling for two objects. Events emitted on _emitter1_ would be also emitter on _emitter2_, and other way back.  \nNon reversible.\n\n```javascript\nvar eeUnify = require('event-emitter/unify');\n\nvar emitter1 = ee(), listener1, listener3;\nvar emitter2 = ee(), listener2, listener4;\n\nemitter1.on('test', listener1 = function () { });\nemitter2.on('test', listener2 = function () { });\n\nemitter1.emit('test'); // Invoked listener1\nemitter2.emit('test'); // Invoked listener2\n\nvar unify = eeUnify(emitter1, emitter2);\n\nemitter1.emit('test'); // Invoked listener1 and listener2\nemitter2.emit('test'); // Invoked listener1 and listener2\n\nemitter1.on('test', listener3 = function () { });\nemitter2.on('test', listener4 = function () { });\n\nemitter1.emit('test'); // Invoked listener1, listener2, listener3 and listener4\nemitter2.emit('test'); // Invoked listener1, listener2, listener3 and listener4\n```\n\n### Tests [![Build Status](https://travis-ci.org/medikoo/event-emitter.png)](https://travis-ci.org/medikoo/event-emitter)\n\n\t$ npm test\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/medikoo/event-emitter/issues"},"homepage":"https://github.com/medikoo/event-emitter","_id":"event-emitter@0.3.4","_shasum":"8d63ddfb4cfe1fae3b32ca265c4c720222080bb5","_from":"https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz","_resolved":"https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz"}