{"_id":"emitter-listener","_rev":"106184","name":"emitter-listener","description":"(Meta)observability for EventEmitters.","dist-tags":{"latest":"1.1.2"},"maintainers":[{"name":"npm:othiym23","email":""},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"time":{"modified":"2021-06-03T10:38:24.000Z","created":"2013-11-30T02:36:27.588Z","1.1.2":"2018-10-06T20:55:15.390Z","1.1.1":"2017-11-20T20:59:38.838Z","1.1.0":"2017-11-20T20:33:49.611Z","1.0.1":"2013-12-07T09:03:10.415Z","1.0.0":"2013-11-30T02:36:27.588Z"},"users":{},"author":{"name":"Forrest L Norvell","email":"ogd@aoaioxxysz.net"},"repository":{"type":"git","url":"git+https://github.com/othiym23/emitter-listener.git"},"versions":{"1.1.2":{"name":"emitter-listener","version":"1.1.2","description":"(Meta)observability for EventEmitters.","main":"listener.js","directories":{"test":"test"},"scripts":{"test":"tap test/*.tap.js"},"repository":{"type":"git","url":"git+https://github.com/othiym23/emitter-listener.git"},"keywords":["wow","such","introspection","amaze","listener","so","observe"],"author":{"name":"Forrest L Norvell","email":"ogd@aoaioxxysz.net"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/othiym23/emitter-listener/issues"},"homepage":"https://github.com/othiym23/emitter-listener","devDependencies":{"tap":"^10.7.3"},"dependencies":{"shimmer":"^1.2.0"},"gitHead":"7586fba839cf87774d5df224ce479c3b7e2b9964","_id":"emitter-listener@1.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"dist":{"shasum":"56b140e8f6992375b3d7cb2cab1cc7432d9632e8","size":3975,"noattachment":false,"key":"/emitter-listener/-/emitter-listener-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/emitter-listener/download/emitter-listener-1.1.2.tgz"},"maintainers":[{"name":"npm:othiym23","email":""},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/emitter-listener_1.1.2_1538859315239_0.10846004964367006"},"_hasShrinkwrap":false,"publish_time":1538859315390,"_cnpm_publish_time":1538859315390},"1.1.1":{"name":"emitter-listener","version":"1.1.1","description":"(Meta)observability for EventEmitters.","main":"listener.js","directories":{"test":"test"},"scripts":{"test":"tap test/*.tap.js"},"repository":{"type":"git","url":"git+https://github.com/othiym23/emitter-listener.git"},"keywords":["wow","such","introspection","amaze","listener","so","observe"],"author":{"name":"Forrest L Norvell","email":"ogd@aoaioxxysz.net"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/othiym23/emitter-listener/issues"},"homepage":"https://github.com/othiym23/emitter-listener","devDependencies":{"tap":"^10.7.3"},"dependencies":{"shimmer":"^1.2.0"},"gitHead":"04f454bb894d5e1ea795ae22541f8fc6b57fbeb3","_id":"emitter-listener@1.1.1","_shasum":"e8bbbe8244bc8e0d0b4ef71cd14294c7f241c7ec","_from":".","_npmVersion":"2.15.1","_nodeVersion":"0.10.48","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"dist":{"shasum":"e8bbbe8244bc8e0d0b4ef71cd14294c7f241c7ec","size":16920,"noattachment":false,"key":"/emitter-listener/-/emitter-listener-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/emitter-listener/download/emitter-listener-1.1.1.tgz"},"maintainers":[{"name":"npm:othiym23","email":""},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/emitter-listener-1.1.1.tgz_1511211578771_0.30010690353810787"},"publish_time":1511211578838,"_hasShrinkwrap":false,"_cnpm_publish_time":1511211578838},"1.1.0":{"name":"emitter-listener","version":"1.1.0","description":"(Meta)observability for EventEmitters.","main":"listener.js","directories":{"test":"test"},"scripts":{"test":"tap test/*.tap.js"},"repository":{"type":"git","url":"git+https://github.com/othiym23/emitter-listener.git"},"keywords":["wow","such","introspection","amaze","listener","so","observe"],"author":{"name":"Forrest L Norvell","email":"ogd@aoaioxxysz.net"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/othiym23/emitter-listener/issues"},"homepage":"https://github.com/othiym23/emitter-listener","devDependencies":{"tap":"^10.7.3"},"dependencies":{"shimmer":"^1.2.0"},"gitHead":"1cf4cae37a033771bf035c4a5d335e70f9a3e514","_id":"emitter-listener@1.1.0","_npmVersion":"5.5.1","_nodeVersion":"9.2.0","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"dist":{"shasum":"b8e754052c8a9346f16163cdca7fd7ec648f6bc7","size":3882,"noattachment":false,"key":"/emitter-listener/-/emitter-listener-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/emitter-listener/download/emitter-listener-1.1.0.tgz"},"maintainers":[{"name":"npm:othiym23","email":""},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/emitter-listener-1.1.0.tgz_1511210029545_0.20757240685634315"},"publish_time":1511210029611,"_hasShrinkwrap":false,"_cnpm_publish_time":1511210029611},"1.0.1":{"name":"emitter-listener","version":"1.0.1","description":"(Meta)observability for EventEmitters.","main":"listener.js","directories":{"test":"test"},"scripts":{"test":"tap test/*.tap.js"},"repository":{"type":"git","url":"https://github.com/othiym23/emitter-listener"},"keywords":["wow","such","introspection","amaze","listener","so","observe"],"author":{"name":"Forrest L Norvell","email":"ogd@aoaioxxysz.net"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/othiym23/emitter-listener/issues"},"homepage":"https://github.com/othiym23/emitter-listener","devDependencies":{"tap":"~0.4.6"},"dependencies":{"shimmer":"1.0.0"},"readmeFilename":"README.md","_id":"emitter-listener@1.0.1","dist":{"shasum":"b2499ea6e58230a52c268d5df261eecd9f10fe97","size":3634,"noattachment":false,"key":"/emitter-listener/-/emitter-listener-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/emitter-listener/download/emitter-listener-1.0.1.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"npm:othiym23","email":""},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"publish_time":1386406990415,"_cnpm_publish_time":1386406990415,"_hasShrinkwrap":false},"1.0.0":{"name":"emitter-listener","version":"1.0.0","description":"(Meta)observability for EventEmitters.","main":"listener.js","directories":{"test":"test"},"scripts":{"test":"tap test/*.tap.js"},"repository":{"type":"git","url":"https://github.com/othiym23/emitter-listener"},"keywords":["wow","such","introspection","amaze","listener","so","observe"],"author":{"name":"Forrest L Norvell","email":"ogd@aoaioxxysz.net"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/othiym23/emitter-listener/issues"},"homepage":"https://github.com/othiym23/emitter-listener","devDependencies":{"tap":"~0.4.6"},"dependencies":{"shimmer":"~1"},"readmeFilename":"README.md","_id":"emitter-listener@1.0.0","dist":{"shasum":"d404954cb7e3a1297445b2973972dfdc50106754","size":3630,"noattachment":false,"key":"/emitter-listener/-/emitter-listener-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/emitter-listener/download/emitter-listener-1.0.0.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"othiym23","email":"ogd@aoaioxxysz.net"},"maintainers":[{"name":"npm:othiym23","email":""},{"name":"othiym23","email":"ogd@aoaioxxysz.net"}],"publish_time":1385778987588,"_cnpm_publish_time":1385778987588,"_hasShrinkwrap":false}},"readme":"## Add dynamic instrumentation to emitters\n\n`shimmer` does a bunch of the work necessary to wrap other methods in\na wrapper you provide:\n\n```javascript\nvar EventEmitter = require('events').EventEmitter;\nvar wrapEmitter = require('emitter-listener');\n\nvar ee = new EventEmitter();\n\nvar id = 0;\n\nwrapEmitter(\n  ee,\n  function mark(listener) {\n    listener.id = id++;\n  },\n  function prepare(listener) {\n    console.log('listener id is %d', listener.id);\n  }\n);\n```\n\n### Mandatory disclaimer\n\nThere are times when it's necessary to monkeypatch default behavior in\nJavaScript and Node. However, changing the behavior of the runtime on the fly\nis rarely a good idea, and you should be using this module because you need to,\nnot because it seems like fun.\n\n#### wrapEmitter(emitter, mark, prepare)\n\nWrap an EventEmitter's event listeners. Each listener will be passed to\n`mark` when it is registered with `.addListener()` or `.on()`, and then\neach listener is passed to `prepare` to be wrapped before it's called\nby the `.emit()` call. `wrapListener` deals with the single listener\nvs array of listeners logic, and also ensures that edge cases like\n`.removeListener()` being called from within an `.emit()` for the same\nevent type is handled properly.\n\nThe wrapped EE can be restored to its pristine state by using\nemitter.__unwrap(), but this should only be used if you *really* know\nwhat you're doing.\n","_attachments":{},"homepage":"https://github.com/othiym23/emitter-listener","bugs":{"url":"https://github.com/othiym23/emitter-listener/issues"},"license":"BSD-2-Clause"}