{"_id":"@agen/filter","_rev":"1-8e050a91473423789190e4dd4a482dc2","name":"@agen/filter","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@agen/filter","version":"0.1.0","description":"Filters generator elements","author":{"name":"Mikhail Kotelnikov","email":"mikhail.kotelnikov@gmail.com"},"main":"index.js","scripts":{"test":"mocha -R spec ./test/index.js"},"license":"MIT","devDependencies":{"expect.js":"^0.3.1","mocha":"^6.2.2"},"gitHead":"f66dec91bb3ed05fcdbde13e390116c93f96eb3a","_id":"@agen/filter@0.1.0","_nodeVersion":"10.15.3","_npmVersion":"6.10.2","dist":{"integrity":"sha512-M6O6SEKPgae725NKrdRYyU9iafoFAribuHa4v8L9L7qtn/W0OxkhlmkenIj7McuZvySkQ/PrgojM56LCTxLZxg==","shasum":"a59243eaf368697bb3b33bb6910fb2684263f8a5","tarball":"https://registry.npmjs.org/@agen/filter/-/filter-0.1.0.tgz","fileCount":5,"unpackedSize":2748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrmJGCRA9TVsSAnZWagAAVBIP/3C79hPdq3MfOTKuyLWs\n719lSV7s5idG/2Waaym3vmyQiL3BOu07plcC4y7LP9XRSFm9g4hG9Lh/FOOU\nzzuQ7uZyJFZNUAXwyAeQ4lfaZ8mzgXL8wTl3cHAH2u/HgkOT2HzSESiLwgDC\nwtEzgwZwxAeFzxKlJqwe6KLjkutY9QSxpXpY1CxgtDsmSeBduNpiiv1nAHGw\nQY0u2C65bkusV2KYft3IGh3oX+RmonmGY8ID2/GOy7mfoZyrC2iPZ7OTy/Ov\ntgCzFZ/1rgQhVJ+iWVIsYgnzjwPkmV+3VMLGTMIQ9DOIwsVAK02F4UZgT5LP\n62RjDs3RqTzsofzJRNbOSvI9W9FHeoNTL8R0phuzGslA6FU6tG2rUtZtN0/q\nhE7DVJgusf0pYJ5dvS5fTiFt/HurT0x1A419gStxO14ZlQQ7/x3l9dlKOYhB\n3VUPRgYeGjRbOudMGUzLVlcU86FT3YClZw6lCI698SG9RZkV5i61lKEwKojs\nV4CV5T3rYji1vnoGu7Hgh2PrZaRP2QnNOgkdD7BihHvawIsef0+E0kUMke49\nIyBaxifKWYV1h/r6xjVtk8280HpfF3qMPBjx4MTv5Rezr1g77168ZEyd8QVm\nUT8TlsruK+aaTSAz7SX4SGaAkn5996b1W3/tNSD86VPveWUMASdB4PI+7HU+\nbDFR\r\n=E3YN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQ7OzftHup/hnL2/YWFWdYU0yYZbyz0ijrVaB7KB7LYAiAG8deRRQMszpk4Qr6290EkPE23gFRuPBYzN//DE7aYMw=="}]},"maintainers":[{"name":"mkotelnikov","email":"mikhail.kotelnikov@gmail.com"}],"_npmUser":{"name":"mkotelnikov","email":"mikhail.kotelnikov@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/filter_0.1.0_1571709509536_0.425640697558046"},"_hasShrinkwrap":false}},"time":{"created":"2019-10-22T01:58:29.315Z","0.1.0":"2019-10-22T01:58:29.678Z","modified":"2022-04-04T11:55:17.307Z"},"maintainers":[{"name":"mkotelnikov","email":"mikhail.kotelnikov@gmail.com"}],"description":"Filters generator elements","author":{"name":"Mikhail Kotelnikov","email":"mikhail.kotelnikov@gmail.com"},"license":"MIT","readme":"@agen/filter\n-----------\n\nFilters (removes) individual items from parent async generator.\n\nThis method accepts the following parameters:\n* generator - asynchronous generator providing inidvidual elements\n* filter - method checking individual elements; if this method returns true then\n  this element appears in the resulting sequence; Filters gets two parameters:\n  - item to check\n  - current item index\n\nIt returns an asynchronous generator providing accepted elements.\n\n\nExample 1: filtering by the element value\n```javascript\n\nconst batch = require('@agen/batch');\n\n...\nconst list = [\n  'First Message',\n  'Hello world',\n  'Second Message',\n  'Hello John Smith'\n]\nfor await (let item of filter(list, (v, i) => v.indexOf('Hello') >= 0)) {\n  console.log('-', item);\n}\n// Will print\n// - Hello world\n// - Hello John Smith\n```\n\nExample 2: filtering by the element index\n```javascript\n\nconst batch = require('@agen/batch');\n\n...\nconst list = [\n  'item-0',\n  'item-1',\n  'item-2',\n  'item-3',\n  'item-4',\n  'item-5',\n  'item-6',\n  'item-7'\n]\nfor await (let item of filter(list, (v, i) => i % 2 === 0)) {\n  console.log('-', item);\n}\n// Will print\n// - item-0\n// - item-2\n// - item-4\n// - item-6\n\n```\n","readmeFilename":"README.md"}