{"_id":"eventreactor","_rev":"27-5ad1ad01f5c8cb20020840ee9b307599","name":"eventreactor","description":"EventEmitters on a syntax suger rush","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"0.0.1","author":{"name":"Arnout Kazemier","email":"info@3rd-Eden.com"},"homepage":"http://observer.no.de","keywords":["event","eventemitter","observer"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"","expresso":""},"_npmJsonOpts":{"file":"/Users/arnout/.npm/eventreactor/0.0.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"eventreactor@0.0.1","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.13","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"572237fb15e633d8f86034d2a95a4c4965ceae10","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-0.0.1.tgz","integrity":"sha512-9+4vQ4uxU5E4j1W1MtA4hNWEWbcgjwSbvt+z7Z7lPuYgaIbnAPW5esBsCXDpcuFfuDquVwj4SBihKjZkPDxw9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPFRfhwY5p8UHk+QV23KdiUPLuLlutk2vZzyJsiqyeFQIhAOCZz12HfABWkKy2Qb8weg5VP3eV1E2yd2OwhpBmvOon"}]},"scripts":{},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}],"directories":{}},"0.0.2":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"0.0.2","author":{"name":"Arnout Kazemier","email":"info@3rd-Eden.com"},"homepage":"http://observer.no.de","keywords":["event","eventemitter","observer"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"*","mocha":"*"},"scripts":{"test":"make test"},"_npmUser":{"name":"V1","email":"info@3rd-Eden.com"},"_id":"eventreactor@0.0.2","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.5.9","_defaultsLoaded":true,"dist":{"shasum":"bf0d00d635bda126460263047113e28e51d64708","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-0.0.2.tgz","integrity":"sha512-RuAmvzjJH76MSGcOFFmgDiZcDH34gtuK6qttkG1I9tw3VKC0qvtWW7pM1Ibe7uaBgQbVzi8+47i0VXBbd+EWfg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuaeXNwf4P7lo/6iGikfqTDey9o/EAh1JyTDgEZP/QvwIhAIFGB8uh70nbHSucdRwq1i5oloCIEHg5NR315r/XyMgk"}]},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}],"directories":{}},"0.0.3":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"0.0.3","author":{"name":"Arnout Kazemier","email":"opensource@observe.it"},"homepage":"http://observe.it","keywords":["event","eventemitter","observer"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"*","mocha":"*"},"scripts":{"test":"make test"},"_npmUser":{"name":"V1","email":"info@3rd-Eden.com"},"_id":"eventreactor@0.0.3","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"89297b2ca8f4b4a5a258fdabe1c429ea37cc7e36","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-0.0.3.tgz","integrity":"sha512-R4emqktv1RMu0P3li+uZ9bGeU6Wtoa1SfIOfWGW70kyB8YnXlVkJd0tcDu6zqanvKj2F9y0lviPkDflqIKzpkw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGfAEerHGzPWE0aBSDrKkRuzqWaq3zk8tanay4f8z81AiEAuZbZKqNfoWiagmtBBvnSWo3oEvDnoqxGItoxEa2B6js="}]},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}],"directories":{}},"0.0.4":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"0.0.4","author":{"name":"Arnout Kazemier","email":"opensource@observe.it"},"homepage":"http://observe.it","keywords":["event","eventemitter","observer"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"*","mocha":"*"},"scripts":{"test":"make test"},"_npmUser":{"name":"V1","email":"info@3rd-Eden.com"},"_id":"eventreactor@0.0.4","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"61224e8eeb23a50eabbf313923fbbf26c74e0318","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-0.0.4.tgz","integrity":"sha512-NsSPKmNvLK28BNqcf9B4nwfwl/GTIdIfecqJG2ChZeZyyjmmWfOrPzy4CSwuMywUS6MIci6Mh0E6t7CMTk4OiQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdVb9fc5ynDwUYUAsjvwsAxoeuseUeZV56FWPmXBtadAiAK44rq/dWctI0IrvJYMkWouQMq5pngs14iKO/P/QqloQ=="}]},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}]},"0.0.5":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"0.0.5","author":{"name":"Arnout Kazemier","email":"opensource@observe.it"},"homepage":"http://observe.it","keywords":["event","eventemitter","observer"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"*","mocha":"*"},"scripts":{"test":"make test"},"_npmUser":{"name":"V1","email":"info@3rd-Eden.com"},"_id":"eventreactor@0.0.5","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"40cd5abe7d938641ce28e84c3e0bc3469d7d1244","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-0.0.5.tgz","integrity":"sha512-HPpZxfX78eF3skvpm0Te+MjYbx07VSstBghytfvL5Prf89SyhmQ9atsvyqrGBPXvKMlb2BbLsuX/zgbNtAbwXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwGtnhI2+vqSXgpLSA+H/koyMHLIRUs5PSUConVu6+YAiEAlJ342aChCaDSbXrAQXRHYj5ZA8M/lHBcLW6LbihEqF8="}]},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}]},"0.0.6":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"0.0.6","author":{"name":"Arnout Kazemier","email":"opensource@observe.it"},"homepage":"http://observe.it","keywords":["event","eventemitter","observer"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"*","mocha":"*"},"scripts":{"test":"make test"},"_npmUser":{"name":"V1","email":"info@3rd-Eden.com"},"_id":"eventreactor@0.0.6","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"3b51b424e30db097c9c30e49c3038bef2cd9de22","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-0.0.6.tgz","integrity":"sha512-FPzq0EN6JinFBcS660Jo41FItRuwWjHQlBcIz2MvVxESq5nlL/eD3T1ufrUgCLfSlXUjDCR2odhNqZ13A8ialw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwg4qmv0M4wFKu3QobE0NT+2mo0CDwjt9ZGRbJM/nQUwIhAKnGQoF/5UK/keAwnj3k71L1HK/ESROCXX6Spb7+n4ll"}]},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}]},"1.0.0":{"name":"eventreactor","description":"EventEmitters on a syntax suger rush","version":"1.0.0","author":{"name":"Arnout Kazemier","email":"opensource@observe.it"},"homepage":"http://observe.it","keywords":["event","eventemitter","observer","reactor"],"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"devDependencies":{"should":"1.1.0","mocha":"1.4.2","eventemitter2":"0.4.9"},"scripts":{"test":"make test"},"_id":"eventreactor@1.0.0","dist":{"shasum":"0d942addd19cf991cf10a91a7aba03267b862db7","tarball":"https://registry.npmjs.org/eventreactor/-/eventreactor-1.0.0.tgz","integrity":"sha512-/ubtfkA2EJuUm2uYyZ+JP/7/+NOV7obEvG+E1kkQRm39WN89FG5roSXaGHtic+HkS88Gbpa4fJ1wxAJ5AIaTBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHyn4uqf4mFiM9llCBt3/AFSno+gIB0XQBXYDvUH9xHbAiAkE2roBmjQXHzQAPZ78TV/CoxD7hEGtu49MtSwBPVWxw=="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"V1","email":"info@3rd-Eden.com"},"maintainers":[{"name":"V1","email":"info@3rd-Eden.com"}]}},"maintainers":[{"email":"info@martijnswaagman.nl","name":"swaagie"},{"email":"npm@3rd-Eden.com","name":"3rdeden"},{"email":"npm@3rd-Eden.com","name":"v1"}],"time":{"modified":"2022-06-17T21:35:21.708Z","created":"2011-09-29T14:17:45.787Z","0.0.1":"2011-09-29T14:17:46.297Z","0.0.2":"2011-12-12T09:13:45.090Z","0.0.3":"2011-12-17T10:20:55.218Z","0.0.4":"2011-12-18T13:58:37.660Z","0.0.5":"2012-02-08T21:44:57.776Z","0.0.6":"2012-02-11T08:31:29.573Z","1.0.0":"2012-09-10T20:28:42.826Z"},"author":{"name":"Arnout Kazemier","email":"opensource@observe.it"},"repository":{"type":"git","url":"git://github.com/observing/eventreactor.git"},"users":{"JerrySievert":true},"homepage":"http://observe.it","keywords":["event","eventemitter","observer","reactor"],"readme":"# EventReactor, EventEmitters on a sugar rush\n\nBuild status: [![BuildStatus](https://secure.travis-ci.org/observing/eventreactor.png?branch=master)](http://travis-ci.org/observing/eventreactor)\n\nEventReactor adds additional syntax sugar on top of your existing EventEmitters.\nIt works on top of every EventEmitter inspired module, even EventEmitter2. The\nEventReactor was created to migrate repeating patterns when working\nEventEmitters.\n\n## New methods, API\n\nBefore you can use the EventReactor you have to initialize it. This can be done\nby simply calling `new EventReactor()`. This will extend the default `EventEmitter`.\nIf you don't want the EventEmitter to automatically extend the build-in\nEventEmitter or only want to use a subset of it's functionality you should\nsupply the constructor with the `manual` option.\n\n```js\nvar ER = new EventReactor({ manual: true });\n```\n\nWhen you invoke the EventReactor using the `manual` you need to manually attach\nthe EventReactor methods to the `prototype` of your choosing, for example adding\nthe EventReactor methods to the EventEmitter2 module.\n\n```js\nvar EventReactor = require('eventreactor')\n  , EventEmitter2 = require('eventemitter2').EventEmitter2;\n\nvar ER = new EventReactor({ manual: true });\n\nER.aliases(EventEmitter2.prototype);\nER.every(EventEmitter2.prototype);\nER.either(EventEmitter2.prototype);\nER.multiple(EventEmitter2.prototype);\nER.has(EventEmitter2.prototype);\nER.defer(EventEmitter2.prototype);\nER.delay(EventEmitter2.prototype);\nER.idle(EventEmitter2.prototype);\nER.emit(EventEmitter2.prototype);\n```\n\nIf you want to remove the EventReactor extensions you can call the destroy\nmethod. It should return the old and potentially overriden methods.\n\n```js\nER.destroy(EventEmitter2.prototype);\n```\n\n### EventEmitter.every(event, event, event, callback);\n\nApplies the same callback for all the given events. It expects that the callback\nis the last argument of the function and that all other arguments are the name\nof the events you want to listen on.\n\n#### Example\nYou find your self applying the same error handling for timeouts, errors and\nother error related events. This cleans up your code nicely\n\n```js\nEventEmitter.every('error', 'timeout', function (e) {\n console.error('(error) ', e.message);\n});\n```\n\n### EventEmitter.has(event, fn);\n\nCheck if the EventEmitter already has this function applied, if your code has\nmultiple parts on where events can be added to your event emitter you might want\nto check if it's not added already. This simple helper function returns true or\nfalse.\n\n#### Example\n\n```js\nfunction example () {};\n\nif (!EventEmitter.has('example', example)) {\n  EventEmitter.on('example', example);\n}\n```\n\n### EventEmitter.multiple({object});\n\nSometimes you need to add a lot of event listeners for example when you create a\nnet.Connection. You need to listener for error, close, connect, data, timeout\nand maybe even for end. That is a lot of events.\n\nOr maybe you are already used to a observer patterns that used objects for\nlistening instead of eventlistener based layout. Anyways, we got you covered.\n\n#### Example\n\n```js\nEventEmitter.multiple({\n    error: function () { .. }\n  , timeout: function () { .. }\n  , connect: function () { .. }\n  , close: function () { .. }\n});\n```\n\n### EventEmitter.idle(event, timeout, callback /*, argument1, argument2 ... */);\n\nSometimes you want to know when an event has not been fired within a specified\ntime period.  You can set an idle timer that fires off a callback for you if the\nevent has gone missing.  Once fired, the event will remove itself for you, so\ndon't forget to set it back up after your events start up again.\n\nDon't worry, like a good idle timer, it will reset itself when the event has\nbeen fired before the timeout has occurred.\n\n#### Example\n\n```js\nfunction callback (event) {\n  console.log(event + \" was never fired\");\n}\n\nEventEmitter.idle(\"timeout\", 100, callback);\n```\n\n### EventEmitter.delay(event, timeout /*, argument1, argument2 .. */);\n\nDelays the emitting of the given event. Much like setTimeout invokes the\nfunction after xxx miliseconds.\n\n#### Example\n\n```js\nEventEmitter.on('foo', function (arg, arg1) {\n  console.log('args: ', arguments);\n});\n\nEventEmitter.delay('foo', 1000, 'arg1', 'arg2');\n```\n\n### EventEmitter.defer(event /*, argument1, argument2 .. */);\n\nDefers the emitting of the event until the current call stack has been cleared.\nSimular to wrapping an emit in a `process.nextTick`.\n\n#### Example\n\n```js\nEventEmitter.on('pewpew', function () {\n  console.log('called second', arguments);\n});\n\nEventEmitter.defer('pewpew', 1, 2, 3);\n\nconsole.log('called first');\n```\n\n### Uncaught events and the any listeners\n\nThe EventReactor allows you to listen for unlistened events. These events are\nre-emitted under the `uncaughtEvent` event name. In addition to this, every\nemitted event is re-emitted under the `*.*` event name. This can be useful for\ndebugging or logging your events.\n\nBecause these features overrides the `emit` method, they are not added by\ndefault. If you want to leverage these events you need to call the\n`EventReactor#emit` method.\n\n#### Example\n\n```js\n// we assume that ER is your EventReactor instance.\nER.emit();\n\nEventEmitter.on('uncaughtEvent', function (event, data) {\n  console.log('no listeners for', event, data);\n});\n\nEventEmitter.on('*.*', function () {\n  console.log('pew pew, captured);\n});\n\nEventEmitter.emit('random name');\n```\n\n### Aliases\n\n- `EventEmitter.off` -> `EventEmitter.removeListener`\n- `EventEmitter.removeEventListener` -> `EventEmitter.removeListener`\n- `EventEmitter.addEventListener` -> `EventEmitter.addListener`\n","readmeFilename":""}