pnpm
Version:
Fast, disk space efficient package manager
89 lines (88 loc) • 4.14 kB
JSON
{
"_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[](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"
}