{"_id":"node-channel","_rev":"10-fa5062d793d7ea9f93ae72013ed77845","time":{"0.0.1":"2015-01-11T09:10:26.926Z","created":"2019-03-12T02:29:57.386Z","1.0.0":"2019-03-12T02:29:57.554Z","modified":"2022-05-10T23:49:41.677Z","1.1.0":"2020-04-01T02:51:40.399Z","1.1.1":"2020-04-01T02:57:48.597Z","1.1.2":"2020-10-29T07:46:49.981Z","1.1.3":"2020-10-29T07:56:38.025Z"},"name":"node-channel","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"node-channel","version":"1.0.0","description":"A channel util for javascript like go-channel.","main":"dist/index.js","repository":{"type":"git","url":"git+ssh://git@github.com/hxsf/node-channel.git"},"author":{"name":"npm@hxsf.me"},"license":"MIT","devDependencies":{"@types/node":"^11.11.1","typescript":"^3.3.3333"},"gitHead":"6e96ae15f8f882d273f31013ae1ee3b924b4ddfb","bugs":{"url":"https://github.com/hxsf/node-channel/issues"},"homepage":"https://github.com/hxsf/node-channel#readme","_id":"node-channel@1.0.0","_nodeVersion":"11.11.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-VaSTbaU8T7wMOd1UN13SQBZpEY5L4100euvjG5xieeGTAAQIYC1xYnRqvJtY5ltnDaA7GunyLnZRFecEansMag==","shasum":"ffb794ef4c3da194c518b3653f01a4c5ff5a6466","tarball":"https://registry.npmjs.org/node-channel/-/node-channel-1.0.0.tgz","fileCount":8,"unpackedSize":8235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchxmmCRA9TVsSAnZWagAAM0sP/iE7etpsg98OL2e4fUbu\nwgUORODpRJFynyYWME8O2URVwglKAbtpRFhex3b1OKs7aDcJFWzCHo1YQZJ+\naHKoaU9r6Z4FuqJahxRwtrLOPIke+0CtgiGFePaa2BIO80MudEJeqP2yaTmK\nnbpS7HWi6hOF5nshjN1UXdUAMwfUmsiJhQhAcBWvqN5syasPmEpxrFYt0LE6\nAhBdpvoF5NF1SfYjj2C4OgiL39aQEOqTn5nuClCLjOtKI/5SHJttvWxNbi2e\nPT4/5vAn9CJWTRwbRhWFMc7audq3tUnRKTaKtdzK0vUq5Y236R1mp8w6uQc+\nbAGZ1QlFMnoRva/B+0vjtgw1KZuTd27r+od4NAmW4wl8Ira3luo7BpzpyZEU\nQqpMdeHJfM3VaLovOZCVO+FiiEtoZQE+xhjCxySbZWRwnEEJ9xuzpw20V2Up\nIdISfVMQheNJdXjnm2uaVb/t7LA10gGFlGk/fdDXaEFJODDLluot48EKZVyx\nvslr/QvHp2C67JrBdP4TvLt6w+RBp6bZHMPrkclCRbZ5FM2VUz2IQZHZugGL\nG6KV+EzPSJaJXZVjsaRmv6B8hYjEk107G3E3rb2Y7C2QLdN6uq5t4vuWWwt9\nWpHiGmKDXjpck0sbET4Sn+rznI6gjyrYzrohBC3rc3MiT6alpcMYu+j7fqBr\ng8ry\r\n=sMrv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqr4l9l7VzrkQXQ3TJ+0XhM+Ew2Jx99wAVbVgtvuDkewIgQHOChFlmrVln1jZAoFpygw2ZZGH4CyxohsoevXZJeUk="}]},"maintainers":[{"name":"hxsf","email":"npm@hxsf.me"}],"_npmUser":{"name":"hxsf","email":"npm@hxsf.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-channel_1.0.0_1552357797386_0.1314309510777194"},"_hasShrinkwrap":false},"1.1.0":{"name":"node-channel","version":"1.1.0","description":"A channel util for javascript like go-channel.","main":"dist/index.js","repository":{"type":"git","url":"git+ssh://git@github.com/hxsf/node-channel.git"},"author":{"name":"npm@hxsf.me"},"license":"MIT","devDependencies":{"@types/node":"^11.11.1","typescript":"^3.3.3333"},"gitHead":"84dff03e337e9c2bcf117d1855ad89fe1ddb84dd","bugs":{"url":"https://github.com/hxsf/node-channel/issues"},"homepage":"https://github.com/hxsf/node-channel#readme","_id":"node-channel@1.1.0","_nodeVersion":"13.11.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-eBJKaWtSCcNUrT30Q+RNxb2U61znSJ7SHkgykYJZDNOJ7CLq6EX5Q0SI1kpCBD7lTH+dHe1djH/vn5XNsDH2eA==","shasum":"e246d3aeb1f71a29fbff94dac16596dd42ce1db6","tarball":"https://registry.npmjs.org/node-channel/-/node-channel-1.1.0.tgz","fileCount":7,"unpackedSize":10675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehAG8CRA9TVsSAnZWagAAydwP/0nm1O012YEAwW5kMDg5\nYhXdlZbYFr/MsCN69xxIshQJ/mKgKG6WWJhZPONAwD4Sl2QpzFPBnSHvDGmD\nyVZCau66irJzlvgcMi0s7MAUMPC6DB751pN8K7JNg9uQKrRoWN6wPoRUeRk6\nHKWgw29eQ48WYYMYz3UP1nAvTB0yD6GDZ//CKls/VpBKHedTn2iXcOVCkuQM\nQEG6FPp7zzhu2Lpd8GYa8JyP0n48UBtgeI5WQPESWaxSyH8tu4IBnwgtHYi9\np8evRueEHh0UxrV4WiCsCRcx6eZKpqt2x+22zz3H9etM8rytbKCC77HDrCY/\nLwQdnUmQqm1KotaUL5I5m/Hias0wOA99+/qoqBV6SnevkE8IM4E8kiwUw3pt\nDXQiGY6JBUY2iyYxtSA5WCe3d/5PsHWMMcK3ncr2nZns4ohLh1NSOzoSlWVN\nDh7p1S4oKNzce3tfn937l++IcFRGtQg7IiRwjuy8NnOLpl++hRfUQf+3A+30\n7mSm1fjIfxw8G6BSvOGBmW5rdxfSRK+/4SY/zrnC9/JyoBFaZTw+oBD9h2vo\nVTJFszRuj74Hexf685yuHa0h3JkxNRuiUsZvq6nCaZMdjJfNLPxDhs4tmqxI\n5JSQnm10Md+9FRleS3oiJ0oXnsqX3GZyOntq9IyYwwQtFXmG+ZQuAvkZbTVh\nW9PO\r\n=SnQW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDulvZlFamDzdEEzP5HueT8DRCG6UiNhfFofAD7swdngwIhANzts0oy/BAoxEohMawCZWe0Uf0Bq7X/U4NB86pe/YmA"}]},"maintainers":[{"name":"hxsf","email":"npm@hxsf.me"}],"_npmUser":{"name":"hxsf","email":"npm@hxsf.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-channel_1.1.0_1585709500259_0.9844363564368215"},"_hasShrinkwrap":false},"1.1.1":{"name":"node-channel","version":"1.1.1","description":"A channel util for javascript like go-channel.","main":"dist/index.js","repository":{"type":"git","url":"git+ssh://git@github.com/hxsf/node-channel.git"},"author":{"name":"npm@hxsf.me"},"license":"MIT","devDependencies":{"@types/node":"^11.11.1","typescript":"^3.3.3333"},"gitHead":"d9fd4a9d4c43c414ee4334ff1319ac05529efb13","bugs":{"url":"https://github.com/hxsf/node-channel/issues"},"homepage":"https://github.com/hxsf/node-channel#readme","_id":"node-channel@1.1.1","_nodeVersion":"13.11.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-oCycoIe+vBUDclBPLdMOw7DhkEL/K2e6Oagtqr6+KE9sixR8NUwJy5sueli494qv6T9DLkdcNZbilMKbYhCUbQ==","shasum":"dce706924972a7173ef5df889d7c12c4c1772592","tarball":"https://registry.npmjs.org/node-channel/-/node-channel-1.1.1.tgz","fileCount":7,"unpackedSize":10746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehAMsCRA9TVsSAnZWagAAmnkP/13wfDv9DIopn7mOx2mf\npjxMcoxup3OD6N2iD4aWLqwrlkiOHmNSXLmQIQSE6g+AcwhXY0TlN3y2oTxo\n5dkro4fMAEaCYe8IHHBONJxinn9pWijkwrqCPWTR8/f7A+HVxHjo+DXGc2jk\nXLXFQwn2KUbz8Bg8egdc3Xg3LwawOUAYnX6kcID34PJlytFbp6wlW7oDeMue\n3LSnCX04IlaTVPnUNtsabQh2Z9QvFACtG+8fdt2rLb4vN7SujZ2tT9Yd8AAb\nOycYFZV7Cvg7HSJSuLuRbIpgCDINakG0vvHpsH4lWIsFe8h2Av8EzdhcWeVV\n5WbIfhuc00G6+JZRGxYVXJhnavPyOU1sDsLmEWSZoeTCJE7el9+G202AigL2\nPnFVZ8HsFW0fO4jLqrCIbMnoA8KmmyOKFswCCGJwTELqavbrnNE/ZhFqEcS2\nXItYftC/hGMQM6jM4FX6IaZ+HrZZxtEK65UjPu7V6R0Cf7RK/oZ/dn7CD2lG\n5Y+tEgj7KPn9YCb6a8ixmF0ZJV/5rQDhpyUumljhTcAfmSS1FTtrZa8X8eNy\nu7i+bOMa0lUDlrjcTvpmDGpX9b+Td0/58kIOGRsoctXSsa6fRPQJVekaDdO1\nvzAOoaN3zEL13pJ992Bv2Q/5BcRpmkj4YUlGRauooZGcvixLwvx+UyUFj12k\n5eND\r\n=1CQn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFJVQ+Ir0s9jyZxWsI9ryW0az0B++xZzuRyjBo8PuL/DAiEA00vawBJy9YrMARMxzQpab6G8IeyhQwiYeSS0uPnuP5Y="}]},"maintainers":[{"name":"hxsf","email":"npm@hxsf.me"}],"_npmUser":{"name":"hxsf","email":"npm@hxsf.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-channel_1.1.1_1585709868456_0.6987454742042589"},"_hasShrinkwrap":false},"1.1.3":{"name":"node-channel","version":"1.1.3","description":"A channel util for javascript like go-channel.","main":"dist/index.js","repository":{"type":"git","url":"git+ssh://git@github.com/hxsf/node-channel.git"},"author":{"name":"npm@hxsf.me"},"license":"MIT","devDependencies":{"@types/node":"^11.11.1","typescript":"^3.3.3333"},"gitHead":"624fe13f0a77b63944cfad3077d696e8aca2a076","bugs":{"url":"https://github.com/hxsf/node-channel/issues"},"homepage":"https://github.com/hxsf/node-channel#readme","_id":"node-channel@1.1.3","_nodeVersion":"14.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-13FAVMMKDLbp3CyL65V6pIJFsI9CT+OXp6XyI9l024QfBoC1p7+p41s2IzqsOGBw4GS5wTUpgcIXjQZ/rZaxWA==","shasum":"97fd9e96db2ebdae3b3448a585e2a2ca952b2b93","tarball":"https://registry.npmjs.org/node-channel/-/node-channel-1.1.3.tgz","fileCount":7,"unpackedSize":10981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmnW2CRA9TVsSAnZWagAA/oAP/A+HgZYA4Zj+SbttuKUM\nHyQDrcfoE3FAzCmhaXPil5XImxn4dta/Qrd4DCvjafiyvBSfDKCh0w9uPJRO\nIqJHsMEOoDNOgYXQ6PY03VIT47tX+uIdR44lTiAjUBpW922nBCfJiHd2dves\nPykdz137PPkxkU9loTtPjgibMZXiF4bZjG6oCJNWKXcaRYy+YbC5cxHh0s3r\n8ideHSGWD2zOzGTbM5mAQRXW5ugPU7Gne33p2SW2GIu4BczHUJF3LbW39UEP\nbR+7yYOYvlc/E9HkH0N9kxRPzD9iVyx3uG0QaUhSc7WggnAkwHELfDRiu9i6\nKnnWjzJQuyX05hZRYj08K8SxlhQdludBgIEaxRPnznNT20peeT/6sokUxFgY\ncLCZ0y9Dgndh52Vi6uLOi3PlgADs+8wXKQPz4X5oUJl7X8DnM21jcrAWVQle\n7wfJ6RcRztV9pd1RiTk1VPh8evTl9sQ6NWQav44s8ONnbnp7hi4oKc9lZiHB\nEKdIxbk5jzxKLLb+0rj6HeFlcoZHpZ81i5jrcUnZffiFdm+UKz4bq9vSlnmF\nSK8pa5vgk3QsENpBlsCSU4ZlOqWDzOTBsFVEkTB6Wwiv2jhiw5XG/hOWt+8K\n90UOBgGkqpiNlSzVbSvNEij1X/KIXab6jG9gX991TA9XxUG3kzQU6VLIkeT1\nHAmh\r\n=/ZZC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFEpYtRNxfB1J+63a0iKWmelPy1/3D26z6tJ10GvoaWAIgbNNiISa9Lgc4icnyZ4Cmn4fvM1DemT+qRKLzJlu3EHo="}]},"maintainers":[{"name":"hxsf","email":"npm@hxsf.me"}],"_npmUser":{"name":"hxsf","email":"npm@hxsf.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-channel_1.1.3_1603958197857_0.8092788406648701"},"_hasShrinkwrap":false}},"maintainers":[{"name":"hxsf","email":"npm@hxsf.me"}],"description":"A channel util for javascript like go-channel.","homepage":"https://github.com/hxsf/node-channel#readme","repository":{"type":"git","url":"git+ssh://git@github.com/hxsf/node-channel.git"},"author":{"name":"npm@hxsf.me"},"bugs":{"url":"https://github.com/hxsf/node-channel/issues"},"license":"MIT","readme":"# node-channel\nA channel util for javascript like go-channel\n\n## Example\n\n``` js\nimport { Channel } from 'node-channel'\n\nfunction do_something_async(ms: number): Promise<void> {\n    return new Promise<void>((resolve, reject) => {\n        setTimeout(() => {\n            resolve()\n        }, ms)\n    })\n}\n\nconst chan = new Channel<string>(5)\nconst uptime = Date.now()\nconst num = 20\nasync function pub() {\n    for (let i = 0; i< num; i++) {\n        const label = i.toString().padStart(3, '0')\n        await chan.add(label)\n        await do_something_async(50)\n        console.log(`[${Date.now() - uptime}] [add] [${label}] to chan.`)\n        console.log(`[${Date.now() - uptime}] [total] ${chan.size()}/${chan.max_size}.`)\n    }\n}\nasync function sub() {\n    for (let i = 0; i< num; i++) {\n        const label = await chan.get()\n        await do_something_async(500)\n        console.log(`[${Date.now() - uptime}] [get] [${label}] to chan.`)\n        console.log(`[${Date.now() - uptime}] [total] ${chan.size()}/${chan.max_size}.`)\n    }\n}\n\npub()\nsetTimeout(sub, 2000)\n```\nyou will get this log\n\n```\n[54] [add] [000] to chan.\n[65] [total] 1/5.\n[121] [add] [001] to chan.\n[121] [total] 2/5.\n[173] [add] [002] to chan.\n[173] [total] 3/5.\n[227] [add] [003] to chan.\n[227] [total] 4/5.\n[282] [add] [004] to chan.\n[282] [total] 5/5.\n[2057] [add] [005] to chan.\n[2057] [total] 5/5.\n[2507] [get] [000] to chan.\n[2507] [total] 5/5.\n[2558] [add] [006] to chan.\n[2558] [total] 5/5.\n[3009] [get] [001] to chan.\n[3009] [total] 5/5.\n[3063] [add] [007] to chan.\n[3063] [total] 5/5.\n[3513] [get] [002] to chan.\n[3513] [total] 5/5.\n[3566] [add] [008] to chan.\n[3567] [total] 5/5.\n[4017] [get] [003] to chan.\n[4017] [total] 5/5.\n[4072] [add] [009] to chan.\n[4072] [total] 5/5.\n[4522] [get] [004] to chan.\n[4522] [total] 5/5.\n[4575] [add] [010] to chan.\n[4575] [total] 5/5.\n[5024] [get] [005] to chan.\n[5024] [total] 5/5.\n[5075] [add] [011] to chan.\n[5075] [total] 5/5.\n[5525] [get] [006] to chan.\n[5525] [total] 5/5.\n[5576] [add] [012] to chan.\n[5576] [total] 5/5.\n[6030] [get] [007] to chan.\n[6030] [total] 5/5.\n[6084] [add] [013] to chan.\n[6084] [total] 5/5.\n[6532] [get] [008] to chan.\n[6532] [total] 5/5.\n[6583] [add] [014] to chan.\n[6583] [total] 5/5.\n[7035] [get] [009] to chan.\n[7035] [total] 5/5.\n[7086] [add] [015] to chan.\n[7086] [total] 5/5.\n[7538] [get] [010] to chan.\n[7539] [total] 5/5.\n[7592] [add] [016] to chan.\n[7592] [total] 5/5.\n[8039] [get] [011] to chan.\n[8040] [total] 5/5.\n[8095] [add] [017] to chan.\n[8095] [total] 5/5.\n[8543] [get] [012] to chan.\n[8543] [total] 5/5.\n[8594] [add] [018] to chan.\n[8594] [total] 5/5.\n[9043] [get] [013] to chan.\n[9043] [total] 5/5.\n[9095] [add] [019] to chan.\n[9095] [total] 5/5.\n[9546] [get] [014] to chan.\n[9546] [total] 5/5.\n[10047] [get] [015] to chan.\n[10047] [total] 4/5.\n[10549] [get] [016] to chan.\n[10549] [total] 3/5.\n[11052] [get] [017] to chan.\n[11053] [total] 2/5.\n[11557] [get] [018] to chan.\n[11557] [total] 1/5.\n[12060] [get] [019] to chan.\n[12060] [total] 0/5.\n```\n","readmeFilename":"README.md"}