{
  "_args": [
    [
      {
        "raw": "generate-function@^1.0.1",
        "scope": null,
        "escapedName": "generate-function",
        "name": "generate-function",
        "rawSpec": "^1.0.1",
        "spec": ">=1.0.1 <2.0.0",
        "type": "range"
      },
      "/home/zoltan/src/pnpm/pnpm/packages/pnpm/node_modules/csv-parser"
    ]
  ],
  "_from": "generate-function@>=1.0.1 <2.0.0",
  "_id": "generate-function@1.1.0",
  "_inCache": true,
  "_location": "/generate-function",
  "_npmUser": {
    "name": "mafintosh",
    "email": "mathiasbuus@gmail.com"
  },
  "_npmVersion": "1.4.21",
  "_phantomChildren": {},
  "_requested": {
    "raw": "generate-function@^1.0.1",
    "scope": null,
    "escapedName": "generate-function",
    "name": "generate-function",
    "rawSpec": "^1.0.1",
    "spec": ">=1.0.1 <2.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/csv-parser"
  ],
  "_resolved": "https://registry.npmjs.org/generate-function/-/generate-function-1.1.0.tgz",
  "_shasum": "54c21b080192b16d9877779c5bb81666e772365f",
  "_shrinkwrap": null,
  "_spec": "generate-function@^1.0.1",
  "_where": "/home/zoltan/src/pnpm/pnpm/packages/pnpm/node_modules/csv-parser",
  "author": {
    "name": "Mathias Buus"
  },
  "bugs": {
    "url": "https://github.com/mafintosh/generate-function/issues"
  },
  "dependencies": {},
  "description": "Module that helps you write generated functions in Node",
  "devDependencies": {
    "tape": "^2.13.4"
  },
  "directories": {},
  "dist": {
    "shasum": "54c21b080192b16d9877779c5bb81666e772365f",
    "tarball": "https://registry.npmjs.org/generate-function/-/generate-function-1.1.0.tgz"
  },
  "gitHead": "99be057fb14f2e7f87afa116e5ca4d40a379c080",
  "homepage": "https://github.com/mafintosh/generate-function",
  "keywords": [
    "generate",
    "code",
    "generation",
    "function",
    "performance"
  ],
  "license": "MIT",
  "main": "index.js",
  "maintainers": [
    {
      "name": "mafintosh",
      "email": "mathiasbuus@gmail.com"
    }
  ],
  "name": "generate-function",
  "optionalDependencies": {},
  "readme": "# generate-function\n\nModule that helps you write generated functions in Node\n\n```\nnpm install generate-function\n```\n\n[![build status](http://img.shields.io/travis/mafintosh/generate-function.svg?style=flat)](http://travis-ci.org/mafintosh/generate-function)\n\n## Disclamer\n\nWriting code that generates code is hard.\nYou should only use this if you really, really, really need this for performance reasons (like schema validators / parsers etc).\n\n## Usage\n\n``` js\nvar genfun = require('generate-function')\n\nvar addNumber = function(val) {\n  var fn = genfun()\n    ('function add(n) {')\n      ('return n + %d', val) // supports format strings to insert values\n    ('}')\n\n  return fn.toFunction() // will compile the function\n}\n\nvar add2 = addNumber(2)\n\nconsole.log('1+2=', add2(1))\nconsole.log(add2.toString()) // prints the generated function\n```\n\nIf you need to close over variables in your generated function pass them to `toFunction(scope)`\n\n``` js\nvar multiply = function(a, b) {\n  return a * b\n}\n\nvar addAndMultiplyNumber = function(val) {\n  var fn = genfun()\n    ('function(n) {')\n      ('if (typeof n !== \"number\") {') // ending a line with { will indent the source\n        ('throw new Error(\"argument should be a number\")')\n      ('}')\n      ('var result = multiply(%d, n+%d)', val, val)\n      ('return result')\n    ('}')\n\n  // use fn.toString() if you want to see the generated source\n\n  return fn.toFunction({\n    multiply: multiply\n  })\n}\n\nvar addAndMultiply2 = addAndMultiplyNumber(2)\n\nconsole.log('(3 + 2) * 2 =', addAndMultiply2(3))\n```\n\n## Related\n\nSee [generate-object-property](https://github.com/mafintosh/generate-object-property) if you need to safely generate code that\ncan be used to reference an object property\n\n## License\n\nMIT",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/mafintosh/generate-function.git"
  },
  "scripts": {
    "test": "tape test.js"
  },
  "version": "1.1.0"
}
