UNPKG

pnpm

Version:

Fast, disk space efficient package manager

89 lines (88 loc) 4.14 kB
{ "_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" }