{"_id":"fast-iterator","_rev":"1926939","name":"fast-iterator","description":"Fast execution of an array of functions with the same value as input that can be altered.","dist-tags":{"latest":"0.3.0"},"maintainers":[{"name":"delvedor","email":""}],"time":{"modified":"2021-12-09T13:50:29.000Z","created":"2017-11-15T20:03:37.131Z","0.3.0":"2018-01-20T16:08:10.536Z","0.2.2":"2018-01-18T21:06:08.561Z","0.2.1":"2017-11-16T10:25:06.265Z","0.2.0":"2017-11-16T09:53:21.426Z","0.1.0":"2017-11-15T20:03:37.131Z"},"users":{},"author":{"name":"Tomas Della Vedova - @delvedor","url":"http://delved.org"},"repository":{"type":"git","url":"git+https://github.com/delvedor/fast-iterator.git"},"versions":{"0.3.0":{"name":"fast-iterator","version":"0.3.0","description":"Fast execution of an array of functions with the same value as input that can be altered.","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/delvedor/fast-iterator.git"},"keywords":["speed","value","update","series","each","iterator"],"author":{"name":"Tomas Della Vedova - @delvedor","url":"http://delved.org"},"license":"MIT","bugs":{"url":"https://github.com/delvedor/fast-iterator/issues"},"homepage":"https://github.com/delvedor/fast-iterator#readme","devDependencies":{"standard":"^10.0.3","tap":"^10.7.3"},"dependencies":{"reusify":"^1.0.3"},"gitHead":"6d065624f3867cbd32e0fe0add26f2f20e9cd580","_id":"fast-iterator@0.3.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"dist":{"shasum":"8601a33fcd6e87155f68e085a5be05d42780f09f","size":3141,"noattachment":false,"key":"/fast-iterator/-/fast-iterator-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/fast-iterator/download/fast-iterator-0.3.0.tgz"},"maintainers":[{"name":"delvedor","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fast-iterator-0.3.0.tgz_1516464489559_0.5209432889241725"},"directories":{},"publish_time":1516464490536,"_hasShrinkwrap":false,"_cnpm_publish_time":1516464490536},"0.2.2":{"name":"fast-iterator","version":"0.2.2","description":"Fast execution of an array of functions with the same value as input that can be altered.","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/delvedor/fast-iterator.git"},"keywords":["speed","value","update","series","each","iterator"],"author":{"name":"Tomas Della Vedova - @delvedor","url":"http://delved.org"},"license":"MIT","bugs":{"url":"https://github.com/delvedor/fast-iterator/issues"},"homepage":"https://github.com/delvedor/fast-iterator#readme","devDependencies":{"standard":"^10.0.3","tap":"^10.7.3"},"dependencies":{"reusify":"^1.0.3"},"gitHead":"8b12a71dd038ff39df65df4d7101aa11386909a6","_id":"fast-iterator@0.2.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"dist":{"shasum":"321df4cbbc6f4bb4d4de0631e08f8e5d9c386ad5","size":2965,"noattachment":false,"key":"/fast-iterator/-/fast-iterator-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/fast-iterator/download/fast-iterator-0.2.2.tgz"},"maintainers":[{"name":"delvedor","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fast-iterator-0.2.2.tgz_1516309567662_0.7627387153916061"},"directories":{},"publish_time":1516309568561,"_hasShrinkwrap":false,"_cnpm_publish_time":1516309568561},"0.2.1":{"name":"fast-iterator","version":"0.2.1","description":"Fast execution of an array of functions with the same value as input that can be altered.","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/delvedor/fast-iterator.git"},"keywords":["speed","value","update","series","each","iterator"],"author":{"name":"Tomas Della Vedova - @delvedor","url":"http://delved.org"},"license":"MIT","bugs":{"url":"https://github.com/delvedor/fast-iterator/issues"},"homepage":"https://github.com/delvedor/fast-iterator#readme","devDependencies":{"standard":"^10.0.3","tap":"^10.7.3"},"dependencies":{"reusify":"^1.0.3"},"gitHead":"cb1e1cbd8d184571d57dcc5a5a7f232716d968a9","_id":"fast-iterator@0.2.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"dist":{"shasum":"f56f2de5a91fd5fc9a469a77ccfa35924e913f0a","size":2812,"noattachment":false,"key":"/fast-iterator/-/fast-iterator-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/fast-iterator/download/fast-iterator-0.2.1.tgz"},"maintainers":[{"name":"delvedor","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fast-iterator-0.2.1.tgz_1510827905332_0.4627152751199901"},"directories":{},"publish_time":1510827906265,"_hasShrinkwrap":false,"_cnpm_publish_time":1510827906265},"0.2.0":{"name":"fast-iterator","version":"0.2.0","description":"Fast execution of an array of functions with the same value as input that can be altered.","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/delvedor/fast-iterator.git"},"keywords":["speed","value","update","series","each","iterator"],"author":{"name":"Tomas Della Vedova - @delvedor","url":"http://delved.org"},"license":"MIT","bugs":{"url":"https://github.com/delvedor/fast-iterator/issues"},"homepage":"https://github.com/delvedor/fast-iterator#readme","devDependencies":{"standard":"^10.0.3","tap":"^10.7.3"},"dependencies":{"reusify":"^1.0.3"},"gitHead":"fc9b1f8964b4f5a203ba748c7c0eb6f14f33d0b7","_id":"fast-iterator@0.2.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"dist":{"shasum":"f506c5163c91bbcc3cce97c823f3f9577eb43036","size":2939,"noattachment":false,"key":"/fast-iterator/-/fast-iterator-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/fast-iterator/download/fast-iterator-0.2.0.tgz"},"maintainers":[{"name":"delvedor","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fast-iterator-0.2.0.tgz_1510826000533_0.900033360812813"},"directories":{},"publish_time":1510826001426,"_cnpm_publish_time":1510826001426,"_hasShrinkwrap":false},"0.1.0":{"name":"fast-iterator","version":"0.1.0","description":"Fast execution of an array of functions with the same value as input that can be altered.","main":"index.js","scripts":{"test":"standard && tap test.js"},"repository":{"type":"git","url":"git+https://github.com/delvedor/fast-iterator.git"},"keywords":["speed","value","update","series","each","iterator"],"author":{"name":"Tomas Della Vedova - @delvedor","url":"http://delved.org"},"license":"MIT","bugs":{"url":"https://github.com/delvedor/fast-iterator/issues"},"homepage":"https://github.com/delvedor/fast-iterator#readme","devDependencies":{"standard":"^10.0.3","tap":"^10.7.3"},"dependencies":{"reusify":"^1.0.3"},"gitHead":"2bc6a6ebe73fe092571ea704f45d3bee1dee97cb","_id":"fast-iterator@0.1.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"delvedor","email":"tommydelved@gmail.com"},"dist":{"shasum":"1ce48c2b11dff81f8afd526cdd23c6ed57d25dbf","size":2884,"noattachment":false,"key":"/fast-iterator/-/fast-iterator-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/fast-iterator/download/fast-iterator-0.1.0.tgz"},"maintainers":[{"name":"delvedor","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fast-iterator-0.1.0.tgz_1510776216222_0.864478710340336"},"directories":{},"publish_time":1510776217131,"_cnpm_publish_time":1510776217131,"_hasShrinkwrap":false}},"readme":"# fast-iterator\n\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](http://standardjs.com/) [![Build Status](https://travis-ci.org/delvedor/fast-iterator.svg?branch=init)](https://travis-ci.org/delvedor/fast-iterator)\n\nFast execution of an array of functions with the same value as input that can be altered.\n\n<a name=\"install\"></a>\n## Install\n```\nnpm i fast-iterator --save\n```\n\n<a name=\"usage\"></a>\n## Usage\n```js\nconst fast = require('fast-iterator')\n\nfast(\n  [fn1, fn2, fn3], // the array of functions to execute\n  { context: true } // a custom context for every function\n)(\n  iterator.bind({ a: 'a', b: 'b' }), // an iterator function to pass custom parameters\n  { hello: 'world' }, // the value to update\n  done // the function to call once the work has been done\n)\n\nfunction fn1 (a, b, result, done) {\n  console.log(a, b, result, this)\n  done(null, { ciao: 'mondo' })\n}\n\nfunction fn2 (a, b, result, done) {\n  console.log(a, b, result, this)\n  done(null, { winter: 'is coming' })\n}\n\nasync function fn3 (a, b, result) {\n  console.log(a, b, result, this)\n  return { winter: 'has come' }\n}\n\nfunction iterator (fn, result, done) {\n  return fn(this.a, this.b, result, done)\n}\n\nfunction done (err, result) {\n  console.log(err || result, this)\n}\n```\n\nOutput:\n```\na b { hello: 'world' } { context: true }\na b { ciao: 'mondo' } { context: true }\na b { winter: 'is coming' } { context: true }\n{ winter: 'has come' } { context: true }\n```\n\nIf you need to release the internal Object holder for performances reasons, you can call the fourth parameter of the iterator: `release.`\n```js\nfunction iterator (fn, result, done, release) {\n  if (someCondition) return release()\n  return fn(this.a, this.b, result, done)\n}\n```\n\n<a name=\"acknowledgements\"></a>\n## Acknowledgements\n\nThis project is kindly sponsored by [LetzDoIt](http://www.letzdoitapp.com/).  \n\n<a name=\"license\"></a>\n## License\n\nLicensed under [MIT](./LICENSE).\n","_attachments":{},"homepage":"https://github.com/delvedor/fast-iterator#readme","bugs":{"url":"https://github.com/delvedor/fast-iterator/issues"},"license":"MIT"}