{
  "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": "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": "~0.4.6"
  },
  "dependencies": {
    "shimmer": "1.0.0"
  },
  "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",
  "readmeFilename": "README.md",
  "_id": "emitter-listener@1.0.1",
  "_shasum": "b2499ea6e58230a52c268d5df261eecd9f10fe97",
  "_from": "emitter-listener@^1.0.1",
  "_resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz"
}
