{"_id":"@debonet/es6condition","_rev":"2-26123b77c6605de7c3d5122230b1e593","name":"@debonet/es6condition","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.1":{"name":"@debonet/es6condition","version":"1.0.1","description":"Simple, clean, Promise-based event synchronization Condition Variable library","main":"src/es6condition.js","scripts":{"test":"jest"},"repository":{"type":"git","url":"git+https://github.com/debonet/es6condition.git"},"keywords":["Condition Variable","Promises","simple","clean","dependency-free"],"author":{"name":"Jeremy De Bonet"},"license":"MIT","bugs":{"url":"https://github.com/debonet/es6condition/issues"},"homepage":"https://github.com/debonet/es6condition#readme","devDependencies":{"jest":"^26.6.3"},"gitHead":"e4a2f200113f676d8362b6261ca144f9f0333d54","_id":"@debonet/es6condition@1.0.1","_nodeVersion":"17.9.0","_npmVersion":"8.9.0","dist":{"integrity":"sha512-WHKcqN9qQNyDcpM4W4x16wHK8GvkBcJN1eIaHv2Xy1ZEsAtm6ZRGU5KJTwv/cq1vFW5gTsgBoQPEZZvdbuMUiA==","shasum":"a584b5dbeee9a6626a07817416e6df40a334d6ed","tarball":"https://registry.npmjs.org/@debonet/es6condition/-/es6condition-1.0.1.tgz","fileCount":4,"unpackedSize":4697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCve18pvCyhMf3+K1nBlvEAvuSTi0GXdhJR7KleXcUI1QIgbcTQgPGkdYbE/hqX8BSvtcb/4pfe0MqZbqZe6DYFBn8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinCj3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCAg/8DpSxdz6JEPaQOSDjTG1dc6Og+Fa1l16EsDoXBf3o0sHYiDMD\r\nz5IfmH5/+AhmorHkTnXQucrb5Ilve2TkC57vhMGesElupdNF8benhZpUzyfw\r\nGFkesJsOG8It8IL0h087H9ONoN0yhEJvw9VT2RwZ5Hv8X/ZWMEzB/iT3Ie2x\r\nLDkrT7sueBpEr1bT9phG1mS00jgkUK/+2KgRrXHk9aLa5RmqlXawh/nImtyk\r\nrkit3v2XgZ2wZJw5GDFsafYr1ic/uAsIrczHapXhJqHKDaf7EE8BVMGl6Poo\r\nhQG4Asf1wI4sqUAzL1OUEVcrP4gz/M8fLPe4licAJZTktt6p4aOWHLfmJIf7\r\n+8bmVB2WiWKCDjSr7JjPlcmr2Q0hNq/h+ipCp1hbQySi0j8clNjmQqQjhI3a\r\nXNxQKlFrry0qHv21UsOfS4qoFAsMSAA6/z02uanyeUwEKzEQorvnJnrSaezg\r\n9+x1SJeZl762ori9fMD+RpL7D8KIqSAbwsNMO+S/qrqP2jCdmNnpoIr+yhLv\r\nTTI+pgpsMTLOPux2qkE57DggMn/qBh0dmniZzIw1VWZQxdqVcdDWEqq0YT4q\r\nEXh6OprUQYFWbp6QbUSLXBUrZGVv6i5NFQN5JunU367ax8Dn40/KUM4chtWk\r\ndB6crKB/6+0f7dMYLEikLNfgziD+6KAUhFU=\r\n=eHWB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"debonet","email":"jeremy@debonet.com"},"directories":{},"maintainers":[{"name":"debonet","email":"jeremy@debonet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/es6condition_1.0.1_1654401271600_0.6751917550106523"},"_hasShrinkwrap":false},"1.0.2":{"name":"@debonet/es6condition","version":"1.0.2","description":"Simple, clean, Promise-based event synchronization Condition Variable library","main":"src/es6condition.js","scripts":{"test":"jest"},"repository":{"type":"git","url":"git+https://github.com/debonet/es6condition.git"},"keywords":["Condition Variable","Promises","simple","clean","dependency-free"],"author":{"name":"Jeremy De Bonet"},"license":"MIT","bugs":{"url":"https://github.com/debonet/es6condition/issues"},"homepage":"https://github.com/debonet/es6condition#readme","devDependencies":{"jest":"^26.6.3"},"gitHead":"e396bf85d4a31ea060a3f6f35b0d878f5f038452","_id":"@debonet/es6condition@1.0.2","_nodeVersion":"17.9.0","_npmVersion":"8.9.0","dist":{"integrity":"sha512-aZlYgoB58rFLea0K6BbuVndCsjNjtrTqptsuriVcXrt2+bHRy0QtKPw/jLam/KROifQ5tvHjr9H25bYU2BRoMw==","shasum":"89bb57fd7bd68fe17e910919910f7147afcb6f46","tarball":"https://registry.npmjs.org/@debonet/es6condition/-/es6condition-1.0.2.tgz","fileCount":4,"unpackedSize":4714,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID637SJ/U9IeigcCiOZrrirPXBfuo5Z4GRcljkaeKs31AiEA+1A7a/jYPwd2dDOeFNsy37ZdI6geSsNa9f8bvPR5PtY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinCwqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEChAAhGESEQCDD796ciz63JPVhQVdHpef0QFTbukjqQTOWRu573Qz\r\nLv3MBTZ0SELjJhkeZxvJwT4sqXrOsFU15kTbWK+h5wpt49rXVCEeX9YP4otr\r\nUhs2mx8r7t0n+HbmrONHZMCeAHAPySgw5pwZjZi96hdYr55gdUn4ZROuyqlu\r\nT/GlSrJy1/DZOt+Iq5dDt/aDOlrM7j2/cr0FhO0NDQIAfA2h1rlOAZq6p9BY\r\nhiGiR6rYK5IGj+y3gVJ+V0pClCNNY3JKPR18Rm1tzlptcFMZNROQaTKVmz2Z\r\n8WbTMcQlLawtQybE0VLfvwtWYaKg16eQTkOUy09LP/TPqYDu6TMKZLa83XAD\r\nkVAntFgWIJwUIV3Jh1Lo/yvfGl69wPqM0GtydjPsGzycGcKW+V7LcOzkGjgP\r\nXVQUfs6VJbNejlEvNkOWxXWcJpZS9BLbsHsE5DvGyW2Mh8/Wya43klbNaCR6\r\nBHEoDOtRiIaTQ5D7f2VLtV78VIr5KvVW6wxQvLZEF5Lhv2JpDXgwuQrfSqrD\r\n51Pi/AepdqNPWgoBsZIiSo0DzRnKBuz6sZYrrZbAv1u1j8rx4A8i0WnTFcIW\r\nl55wtfcGzFRnALaJGa75VGXbwo2ge8fe+7B4zu1OQlk9k5C5uQeXxZjIq0rK\r\nXTZb6VKM+1MSuLfi7/y7ba9X8x5B2LhbH94=\r\n=oO2g\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"debonet","email":"jeremy@debonet.com"},"directories":{},"maintainers":[{"name":"debonet","email":"jeremy@debonet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/es6condition_1.0.2_1654402089923_0.8959486422853542"},"_hasShrinkwrap":false},"1.0.3":{"name":"@debonet/es6condition","version":"1.0.3","description":"Simple, clean, Promise-based event synchronization Condition Variable library","main":"src/es6condition.js","scripts":{"test":"jest"},"repository":{"type":"git","url":"git+https://github.com/debonet/es6condition.git"},"keywords":["Condition Variable","Promises","simple","clean","dependency-free"],"author":{"name":"Jeremy De Bonet"},"license":"MIT","bugs":{"url":"https://github.com/debonet/es6condition/issues"},"homepage":"https://github.com/debonet/es6condition#readme","devDependencies":{"jest":"^26.6.3"},"gitHead":"401c739d14441f009152ed2a2f90e6edb391614c","_id":"@debonet/es6condition@1.0.3","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-rmLF9NBIps0cVsCB7lSTwL33Gk7v87pm2hfbFNcMxUEGroGpTPv+mvXgYwcJ4xV1qZtTPD/vXRGLQM3DtCfeKw==","shasum":"4e7a0f5d71fa866ef6856337d64c8edc3040580a","tarball":"https://registry.npmjs.org/@debonet/es6condition/-/es6condition-1.0.3.tgz","fileCount":4,"unpackedSize":5080,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpP3yE0E0fXoVUpfZ3H0tP0gMF6OlOJxdXLwNDoyMZAAiAn2ybpqbdVDav0ZCrXuDCc0moWeitahOSSaksw1IuqfA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9wk2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTPhAAhuZkecIloGdQTnOud01zWJKU6up8vPrefykPmBm1PVS6HrAl\r\nZzp6dy/GK2YFVdZ+UtpcyntHFDqOe6cZaAPIKXu9lY22LdlFWWoL5HylfJ3g\r\n8t00PD52O7JkTYhMnjtzHt0EPJnL7eqI/e556TSH0i3lAMu50aD9UdzQOQy+\r\nVBcJJyVXfGQy7RfiC43OfUCO2xKqV0xXLtDJuhF3s//L6XMOAzl5z/XAgmD1\r\nMq7QYAQpIhxNLlP7dUJcxv94ex8FdQR6kdUvUeG+BIWroeGNo+hBJ7Sm3iOa\r\nsZGCbG+0zveWCDRkEE05RW3ANx3TH0MtT8MGdt6WRqMfnuLPIYAwZHLnZe9j\r\nKZppxKkm+110akks6uwvRPdU3zKVDGML3I8ZM/s33HPRncGNMzaL/5fM50G/\r\nVcDw9t5JV/mA0nEY1LR4pJi09dXhk/olBSY6fYnsADbX1DB1G2yqMvw2spo+\r\nXL8LiJ8tdLczWquSr7mxFv2d76KJoEWHH/5rPqQtO1cRJ81zsGN/RTjQ7Uel\r\nTSOU0ym28+f+MKwweI6k1ckrrJ8OGz4ZjjSBgjIcLAINOUaZKvURDuinWan4\r\nc7MDRSpgrEpMP7c2vr8XErQ88UZ+G2OUsdP/e8UyzpxcT0T64h2h1fLSOMNZ\r\n0ZPVZqgKKk9fmmSf+kcKd3wpjoRTq4nkokw=\r\n=nvSj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"debonet","email":"jeremy@debonet.com"},"directories":{},"maintainers":[{"name":"debonet","email":"jeremy@debonet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/es6condition_1.0.3_1660356917924_0.8575416721494027"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-05T03:54:31.528Z","1.0.1":"2022-06-05T03:54:31.774Z","modified":"2022-08-13T02:15:18.158Z","1.0.2":"2022-06-05T04:08:10.067Z","1.0.3":"2022-08-13T02:15:18.093Z"},"maintainers":[{"name":"debonet","email":"jeremy@debonet.com"}],"description":"Simple, clean, Promise-based event synchronization Condition Variable library","homepage":"https://github.com/debonet/es6condition#readme","keywords":["Condition Variable","Promises","simple","clean","dependency-free"],"repository":{"type":"git","url":"git+https://github.com/debonet/es6condition.git"},"author":{"name":"Jeremy De Bonet"},"bugs":{"url":"https://github.com/debonet/es6condition/issues"},"license":"MIT","readme":"# es6condition.js\n\nSimple, dependency-free Condition Variables for ES6 event synchronization.\n\n## INSTALLATION\n\n```\nnpm install @debonet/es6condition\n```\n\n### OVERVIEW\n\nes6condition provides a Promises-based condition object for\nsynchronizing events by allowing an event to wait on a signal before proceeding\n\n## TYPICAL USAGE \n\n`wait()`, `signal()`, and `broadcast()` have the typical Condition Variable semantics\nand can be used as `Promises` or with `async/await` syntax, e.g.:\n\n### signal \n\n`signal()` releases the first event that is waiting on the Condition. Here's an example:\n\n```javascript\n\tconst cond = new Condition();\n\n\tsetTimeout(\t() => {\n\t\tconsole.log(\"Hello,\");\n\t\tcond.signal();\n\t}, 100);\n\n\t// wait until a signal is sent\n\tawait cond.wait();\n\t\n\tconsole.log(\"World\");\n\n```\n\nand generate an output:\n> Hello, <br/>\n> World\n\n\n### broadcast\n\n`broadcast()` releases the all events that are waiting on the Condition. Here's an example:\n\n\n```javascript\nconst cond = new Condition();\n\nsetImmediate(async () => {\n\tcond.wait().then(() => { console.log(\"Myself,\" )});\n});\n\nsetImmediate(async () => {\n\tawait cond.wait();\n\tconsole.log(\"and I\");\n});\n\nsetImmediate(async () => {\n\tcond.broadcast();\n\tconsole.log(\"Me,\");\n});\n```\n\nand generate an output:\n> Me, <br/>\n> Myself, <br/>\n> and I\n\n\n# Condition member functions\n\n### `wait()`\n### `fpWait()`\n\nWaits until a signal has been received. Technically speaking it returns a promise that resolves when a `signal()` on the condition variable has been received\n \n### `signal()`\n### `release()`\n### `fSignal()`\n### `fRelease()`\n\nSends a signal to the first event waiting on the condition variable. Technically speaking, it resolves the promise generated by the call to `wait()`\n\n### `broadcast()`\n### `signalAll()`\n### `releaseAll()`\n### `fSignalAll()`\n### `fReleaseAll()`\n### `fBroadcast()`\n\nSends a signal to every event waiting on the condition variable. Technically speaking, it resolves the promise generated by the call to `wait()`\n\n\n## APPENDIX\n\ndefinition of `sleep()` used in the example above\n\n```javascript\n\tfunction sleep( dtm ){\n\t\treturn new Promise( fOk => setTimeout( fOk, dtm ));\n\t}\n```\n\n","readmeFilename":"README.md"}