{"_id":"eva","_rev":"26-18794f12dd90ab12f0ff44ac64e9d551","name":"eva","description":"Functions to create and call functions and evaluate expressions","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"eva","description":"Functions to create functions and evaluate expressions","version":"0.0.1","homepage":"https://github.com/gamtiq/eva","author":{"name":"Denis Sikuler"},"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"},"licenses":[{"type":"MIT","url":"https://github.com/gamtiq/eva/blob/master/LICENSE-MIT"}],"main":"src/eva","engines":{"node":">= 0.10.0"},"scripts":{"test":"grunt test"},"devDependencies":{"grunt":">=0.4.2","grunt-contrib-jshint":">=0.7.2","grunt-mocha-cli":">=1.3.0","grunt-contrib-clean":">=0.5.0","grunt-contrib-uglify":">=0.2.7","grunt-umd":">=1.7.3","grunt-jsdoc":">=0.4.2","grunt-push-release":">=0.1.8"},"keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method"],"jam":{"main":"dist/eva.js","include":["dist","doc","README.md"]},"categories":["Utilities"],"_id":"eva@0.0.1","dist":{"shasum":"6357f987af803b2a326c2720c87e1123cfc52b78","tarball":"https://registry.npmjs.org/eva/-/eva-0.0.1.tgz","integrity":"sha512-oV/bhq90hmQysLFM9l4FZHV66cq9XK1l5H11prRr378//bSFFHeAXegMehYaXPRE6vMjB5LtoCoMyAGK398e0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0Dzg7xe5ez4kG1MaJa3PNaoSWm9QNUqV3avcV5ps8FgIgUzZxkKxG7tCHBwpwYo1ezQ9lJHq30STkHOvzxpKFgF0="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"gamtiq","email":"mforeg@yandex.ru"},"maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"directories":{}},"0.1.0":{"name":"eva","description":"Functions to create and call functions and evaluate expressions","version":"0.1.0","homepage":"https://github.com/gamtiq/eva","author":{"name":"Denis Sikuler"},"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"},"licenses":[{"type":"MIT","url":"https://github.com/gamtiq/eva/blob/master/LICENSE-MIT"}],"main":"src/eva","engines":{"node":">= 0.10.0"},"scripts":{"test":"grunt test"},"devDependencies":{"grunt":">=0.4.2","grunt-contrib-jshint":">=0.7.2","grunt-mocha-cli":">=1.3.0","grunt-contrib-clean":">=0.5.0","grunt-contrib-uglify":">=0.2.7","grunt-umd":">=1.7.3","grunt-jsdoc":">=0.4.2","grunt-push-release":">=0.1.8"},"keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method","closure","map"],"jam":{"main":"dist/eva.js","include":["dist","doc","README.md"]},"categories":["Utilities"],"spm":{"main":"src/eva.js","engines":{"seajs":"2.2.1"}},"_id":"eva@0.1.0","dist":{"shasum":"b0d0cd992a49635f4a019ef2c317bcfbfd6c8b8e","tarball":"https://registry.npmjs.org/eva/-/eva-0.1.0.tgz","integrity":"sha512-H+uqhFY4ILS3adi6W65abM8H/UYhIYUwwlvsxoOmpog6Y0dLbLCNP/29NTSWpn4CX0tizJxL+z166WnUPdRRQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7OjumcAPrYOSa3qgx9L5fhe42CxEX9Hn7G2hNoocCYQIhAN9XnC6fM0FrSViUEexVbvm1p5dobIm8sxToio33uWFs"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"gamtiq","email":"mforeg@yandex.ru"},"maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"directories":{}},"0.1.1":{"name":"eva","description":"Functions to create and call functions and evaluate expressions","version":"0.1.1","homepage":"https://github.com/gamtiq/eva","author":{"name":"Denis Sikuler"},"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"},"licenses":[{"type":"MIT","url":"https://github.com/gamtiq/eva/blob/master/LICENSE-MIT"}],"main":"src/eva","engines":{"node":">= 0.10.0"},"scripts":{"test":"grunt test"},"devDependencies":{"grunt":">=0.4.2","grunt-contrib-jshint":">=0.7.2","grunt-mocha-cli":">=1.3.0","grunt-contrib-clean":">=0.5.0","grunt-contrib-uglify":">=0.2.7","grunt-umd":">=1.7.3","grunt-jsdoc":">=0.4.2","grunt-push-release":">=0.1.8"},"keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method","closure","map"],"jam":{"main":"dist/eva.js","include":["dist","doc","README.md"]},"categories":["Utilities"],"spm":{"main":"src/eva.js","engines":{"seajs":"2.2.1"}},"_id":"eva@0.1.1","dist":{"shasum":"dac2d522fb94265ffa71b47123eb7ed32013c185","tarball":"https://registry.npmjs.org/eva/-/eva-0.1.1.tgz","integrity":"sha512-eT39+peph7+QrDgsx/8ApqNrEsEP5P3oCqnTe++mYL46xn8/m2l7RtjCB37ZtYx59o2STqToW6Pa9TMkOd7HKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqFk4htIFZJ6CQ7CkCTft4A3QL7Xi5YOxnr2IAESRw9QIhAPTZBITrZKCW8Kwl3XhjkGbx+9ZzzQ+h7U6tu9Zg1fbh"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"gamtiq","email":"mforeg@yandex.ru"},"maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"directories":{}},"0.1.2":{"name":"eva","description":"Functions to create and call functions and evaluate expressions","version":"0.1.2","homepage":"https://github.com/gamtiq/eva","author":{"name":"Denis Sikuler"},"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"},"licenses":[{"type":"MIT","url":"https://github.com/gamtiq/eva/blob/master/LICENSE-MIT"}],"main":"src/eva","engines":{"node":">= 0.10.0"},"scripts":{"test":"grunt test"},"devDependencies":{"grunt":">=0.4.2","grunt-contrib-jshint":">=0.7.2","grunt-mocha-cli":">=1.3.0","grunt-contrib-clean":">=0.5.0","grunt-contrib-uglify":">=0.2.7","grunt-umd":">=1.7.3","grunt-jsdoc":">=0.4.2","grunt-push-release":">=0.1.8"},"keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method","closure","map"],"jam":{"main":"dist/eva.js","include":["dist","doc","README.md"]},"categories":["Utilities"],"spm":{"main":"src/eva.js","engines":{"seajs":"2.2.1"}},"_id":"eva@0.1.2","dist":{"shasum":"731f8b1d5383413d9e939195e7c30274bddad9eb","tarball":"https://registry.npmjs.org/eva/-/eva-0.1.2.tgz","integrity":"sha512-qFqhVK2Kpz5NWiOm9WFsokW1lRZ1qk4Uivjaxn3o+HB0SPKRSLmcD71ES/Wyw/4DPFNRNyYe202lXDQuJbF/cw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt5fSujEpNNhEpwsFhcgtwwrDk5HKItarprHmTEO1sVQIhANNOGcr2p4dBd1U770ROP7Jjzo4QpuZZDZldd+Cb3tbo"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"gamtiq","email":"mforeg@yandex.ru"},"maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"directories":{}},"0.1.3":{"name":"eva","description":"Functions to create and call functions and evaluate expressions","version":"0.1.3","homepage":"https://github.com/gamtiq/eva","author":{"name":"Denis Sikuler"},"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"},"licenses":[{"type":"MIT","url":"https://github.com/gamtiq/eva/blob/master/LICENSE-MIT"}],"main":"src/eva","engines":{"node":">= 0.10.0"},"scripts":{"test":"grunt test"},"devDependencies":{"grunt":">=0.4.2","grunt-contrib-jshint":">=0.7.2","grunt-mocha-cli":">=1.3.0","grunt-contrib-clean":">=0.5.0","grunt-contrib-uglify":">=0.2.7","grunt-umd":">=1.7.3","grunt-jsdoc":">=0.4.2","grunt-push-release":">=0.1.8"},"keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method","closure","map"],"jam":{"main":"dist/eva.js","include":["dist","doc","README.md"]},"categories":["Utilities"],"spm":{"main":"src/eva.js","engines":{"seajs":"2.2.1"}},"_id":"eva@0.1.3","dist":{"shasum":"201e4e461fd77f2159569a555b0b96a8498ff18e","tarball":"https://registry.npmjs.org/eva/-/eva-0.1.3.tgz","integrity":"sha512-GaHxeK75/UgWFcqn03wEZWlbD4P7lgNlT/4/Hgb7kIZE+T3WNa9+6seob9V54sMnx3Tlf0wKbYmNDjWwnaUSAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBFTzjk97DQGzyvM7gdvODRzlX9oepZw744GRRqw98doAiEAih4K++PPdLYIOxa2PeFat7m4l1AcX0jitM9bJE/OBjs="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"gamtiq","email":"mforeg@yandex.ru"},"maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"directories":{}},"1.0.0":{"name":"eva","description":"Functions to create and call functions and evaluate expressions","version":"1.0.0","homepage":"https://github.com/gamtiq/eva","author":{"name":"Denis Sikuler"},"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"},"licenses":[{"type":"MIT","url":"https://github.com/gamtiq/eva/blob/master/LICENSE-MIT"}],"main":"src/eva","types":"./index.d.ts","engines":{"node":">= 0.10.0"},"scripts":{"test":"grunt test"},"devDependencies":{"grunt":"1.0.3","grunt-contrib-clean":"2.0.0","grunt-contrib-jshint":"2.0.0","grunt-contrib-uglify":"4.0.0","grunt-jsdoc":"2.3.0","grunt-mocha-cli":"4.0.0","grunt-push-release":"0.1.9","grunt-umd":"3.0.0","ink-docstrap":"1.3.2"},"keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method","closure","map"],"gitHead":"ae2987da163d7f0a59e4e551cbcc8d4f4dae4cd5","_id":"eva@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"gamtiq","email":"mforeg@yandex.ru"},"maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"dist":{"integrity":"sha512-eYvilQGVs+8oGz6Y07ei1JMCHKVr0CMm1UI1Xy/KB6TqyNMPcSG5BffHPd5QvQZ9Z++UjLSEsU2yMwJb+5vbKg==","shasum":"272eee4880a4dbcf9099d2142170093b5f0846bd","tarball":"https://registry.npmjs.org/eva/-/eva-1.0.0.tgz","fileCount":78,"unpackedSize":4480623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGr1VCRA9TVsSAnZWagAArHQP/2sDuZBpJXYjKrIiKKOi\nUD6+dzgncocmvMgjlp/JnT91dm7FLMNrsQHrBE40LBA/y+7xhvMke8R1fL03\n59y/LlzH5KGOWM+1ztyD//tDc8aNWR/GeFuXbz4bD56wE6ztQgCYx53AjbhD\neOCBk7UHP3sj71zuH84F/GlTZGLqUT2eZh8Nq6VZHlEUs+gQWYQrbOxwrOAP\nC3OPCjd8gkSwgZHEQ6Bkuq4rWS9E1eKufgcnZ9JpWBRjYK0b+zQ/qRSKTcc4\nxb0mA3ljxkZgxET37i6G2b7wMDxbuw2fFHKpWLmXX8dxEtARo/a4UgwNoAhf\nwoT66+RfNZAJkSglfdozGjXJ/A6JiS+zRWX6RMMWp3PBCVLQ0Y3dHV7PdpNe\na/JnBHMnmnrOhxmzhWYytTS4GczwYkGHmQUC5ocEnfQd33OAoDZ5R5GS3/jD\nu+gZZ33cXyGAKRvTka0fy6XdEkh4mBJ9tkJZgS3JNxg0bNNWf1RgGANg3XsA\npabQjO8p/hlJJyAPULR3YQrtOEQhQ/1B1rXN/O8C+FYKqL6OFxM4m76lN16l\nBh82yIp1FriXy23Q/aDYc3CnI3L7U1IcQymy7cxbeOUSP0Qj6iTQX6B9jdhK\nuxKBMEiHPtvZJUgb3ae27ubmE8pyEW4+iOO5Lwpa2NWHlZmUoiM0agzHx5i/\n4UHo\r\n=Da0N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnx/pTxqgWlPmmF9dfJVctb5ercco/Hq8ENshEqphhGAIgdZw/PtPKKJ287AI6CkPEGrJE8bPtWw5BCQUhETXmjiI="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eva_1.0.0_1545256277080_0.5725403108251144"},"_hasShrinkwrap":false}},"readme":"# eva\r\n\r\nFunctions to create and call functions and evaluate expressions.\r\n\r\n[![NPM version](https://badge.fury.io/js/eva.png)](http://badge.fury.io/js/eva)\r\n[![Build Status](https://travis-ci.org/gamtiq/eva.png)](https://travis-ci.org/gamtiq/eva)\r\n[![Built with Grunt](https://gruntjs.com/cdn/builtwith.png)](http://gruntjs.com/)\r\n\r\n## Installation\r\n\r\n### Node\r\n\r\n    npm install eva\r\n\r\n### [Bower](http://bower.io)\r\n\r\n    bower install eva\r\n\r\n### AMD, &lt;script&gt;\r\n\r\nUse `dist/eva.js` or `dist/eva.min.js` (minified version).\r\n\r\n## Usage\r\n\r\n### Node\r\n\r\n```js\r\nvar eva = require(\"eva\");\r\n```\r\n\r\n### AMD\r\n\r\n```js\r\ndefine([\"path/to/dist/eva.js\"], function(eva) {\r\n    ...\r\n});\r\n```\r\n\r\n### Bower, &lt;script&gt;\r\n\r\n```html\r\n\r\n<!-- Use bower_components/eva/dist/eva.js if the library was installed by Bower -->\r\n\r\n<script type=\"text/javascript\" src=\"path/to/dist/eva.js\"></script>\r\n<script type=\"text/javascript\">\r\n    // eva is available via eva field of window object\r\n    ...\r\n</script>\r\n```\r\n\r\n### Examples\r\n\r\n```js\r\nvar func = eva.createFunction(\"(a || 0) + (b || 0) + (c || 0)\", {paramNames: \"a, b, c\", expression: true});\r\nconsole.log(func(\"abc\"));   // abc00\r\nconsole.log(func(10, 1, 5, 8));   // 16\r\n\r\nfunc = eva.createFunction(\"if (obj.b) {return a + b;} else {return 'a=' + a;}\", {scope: true, paramNames: \"obj\"});\r\nconsole.log( func({a: \"a\", b: \"bc\"}) );   // abc\r\n\r\nconsole.log( eva.evalWith(\"this.a + this.b\", {a: 1, b: 9}) );   // 10\r\nconsole.log( eva.evalWith(\"fn(this.expr)\", {expr: \"Math.sin(0)\"}, {fn: eva.evalWith}) );   // 0\r\n\r\nvar obj = {};\r\neva.createDelegateMethod(eva, \"evalWith\", {destination: obj, destinationMethod: \"expr\"});\r\nconsole.log( obj.expr(\"Math.cos(0)\") );   // 1\r\n\r\nfunc = eva.closure(eva.evalWith, [\"this.a * this.b\"]);\r\nconsole.log( func({a: 4, b: 7}) );   // 28\r\nconsole.log( func({a: -3, b: 5}) );   // -15\r\n\r\nfunc = eva.closure(eva.evalWith, [{a: 3, b: -9}], null, {prependArgs: true});\r\nconsole.log( func(\"this.a + this.b\") );   // -6\r\nconsole.log( func(\"this.a - this.b\") );   // 12\r\n\r\nvar funcList = [\r\n    eva.closure(eva.evalWith, [\"this.a + this.b\"]),\r\n    eva.closure(eva.evalWith, [\"this.a * this.b\"]),\r\n    eva.closure(eva.evalWith, [\"Math.max(this.a, this.b)\"])\r\n];\r\nconsole.log( eva.map(funcList, [{a: 2, b: -7}]) );   // [-5, -14, 2]\r\n```\r\n\r\n## API\r\n\r\n### createFunction(code: String, [settings: Object]): Function\r\n\r\nCreate function to further use.\r\n\r\n### evalWith(expression: String, [context: Object], [scope: Object])\r\n\r\nCalculate/evaluate value of specified expression using given context and scope.\r\n\r\n### createDelegateMethod(delegate: Object, method: String, [settings: Object]): Function\r\n\r\nCreate function that executes specified method of the given object.\r\n\r\n### closure(action: Function, [paramList: Array], [context: Object], [settings: Object]): Function\r\n\r\nCreate function that executes specified function with given parameters and context and returns result of call.\r\n\r\n### map(funcList: Array, [paramList: Array | Function], [context: Object | Function], [settings: Object]): Array\r\n\r\nCall each function from specified list and return array containing results of calls.\r\n\r\nSee `doc` folder for details.\r\n\r\n## Related projects\r\n\r\n* [adam](https://github.com/gamtiq/adam)\r\n* [teo](https://github.com/gamtiq/teo)\r\n\r\n## Contributing\r\nIn lieu of a formal styleguide, take care to maintain the existing coding style.\r\nAdd unit tests for any new or changed functionality.\r\nLint and test your code using [Grunt](http://gruntjs.com/).\r\n\r\n## License\r\nCopyright (c) 2014-2018 Denis Sikuler  \r\nLicensed under the MIT license.\r\n","maintainers":[{"name":"gamtiq","email":"mforeg@yandex.ru"}],"time":{"modified":"2022-06-17T21:20:27.078Z","created":"2014-04-13T17:39:06.707Z","0.0.1":"2014-04-13T17:51:16.770Z","0.1.0":"2014-07-27T16:22:16.207Z","0.1.1":"2014-08-02T11:48:05.593Z","0.1.2":"2014-10-02T19:51:57.886Z","0.1.3":"2015-01-06T20:20:19.813Z","1.0.0":"2018-12-19T21:51:17.309Z"},"readmeFilename":"README.md","homepage":"https://github.com/gamtiq/eva","keywords":["create","function","dynamic","eval","evaluate","expression","execute","delegate","method","closure","map"],"repository":{"type":"git","url":"git://github.com/gamtiq/eva.git"},"author":{"name":"Denis Sikuler"},"bugs":{"url":"https://github.com/gamtiq/eva/issues"}}