{
  "_args": [
    [
      "emitter-listener@^1.0.1",
      "/Users/johnc/src/fw-host-discovery/node_modules/continuation-local-storage"
    ]
  ],
  "_from": "emitter-listener@>=1.0.1 <2.0.0",
  "_id": "emitter-listener@1.0.1",
  "_inCache": true,
  "_installable": true,
  "_location": "/emitter-listener",
  "_npmUser": {
    "email": "ogd@aoaioxxysz.net",
    "name": "othiym23"
  },
  "_npmVersion": "1.3.14",
  "_phantomChildren": {},
  "_requested": {
    "name": "emitter-listener",
    "raw": "emitter-listener@^1.0.1",
    "rawSpec": "^1.0.1",
    "scope": null,
    "spec": ">=1.0.1 <2.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/continuation-local-storage"
  ],
  "_resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz",
  "_shasum": "b2499ea6e58230a52c268d5df261eecd9f10fe97",
  "_shrinkwrap": null,
  "_spec": "emitter-listener@^1.0.1",
  "_where": "/Users/johnc/src/fw-host-discovery/node_modules/continuation-local-storage",
  "author": {
    "email": "ogd@aoaioxxysz.net",
    "name": "Forrest L Norvell"
  },
  "bugs": {
    "url": "https://github.com/othiym23/emitter-listener/issues"
  },
  "dependencies": {
    "shimmer": "1.0.0"
  },
  "description": "(Meta)observability for EventEmitters.",
  "devDependencies": {
    "tap": "~0.4.6"
  },
  "directories": {
    "test": "test"
  },
  "dist": {
    "shasum": "b2499ea6e58230a52c268d5df261eecd9f10fe97",
    "tarball": "http://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz"
  },
  "homepage": "https://github.com/othiym23/emitter-listener",
  "keywords": [
    "amaze",
    "introspection",
    "listener",
    "observe",
    "so",
    "such",
    "wow"
  ],
  "license": "BSD-2-Clause",
  "main": "listener.js",
  "maintainers": [
    {
      "name": "othiym23",
      "email": "ogd@aoaioxxysz.net"
    }
  ],
  "name": "emitter-listener",
  "optionalDependencies": {},
  "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",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/othiym23/emitter-listener.git"
  },
  "scripts": {
    "test": "tap test/*.tap.js"
  },
  "version": "1.0.1"
}
