{"_id":"sequent","_rev":"9-a9eedf2ad31d1097cc3fbbe0056cb2b9","name":"sequent","description":"JavaScript async flow control","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"sequent","description":"JavaScript async flow control","version":"0.1.0","keywords":["sequent","sequence","flow","control","queue","join","wait"],"author":{"name":"Nao Iizuka","email":"iizuka@kyu-mu.net"},"main":"./lib/sequent","homepage":"https://github.com/iizukanao/sequent","repository":{"type":"git","url":"git://github.com/iizukanao/sequent.git"},"devDependencies":{"vows":">= 0.5.9"},"_npmJsonOpts":{"file":"/Users/nao/.npm/sequent/0.1.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"sequent@0.1.0","dependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.10","_defaultsLoaded":true,"dist":{"shasum":"35156827f5d73b9730f71bb1346e8d408d6ea80b","tarball":"https://registry.npmjs.org/sequent/-/sequent-0.1.0.tgz","integrity":"sha512-EqZFPIci3AEoArL/Btthg4tjgwEe1UhV/Xx+iNYigIUUXE4BDcXC2EE4rqDMdbIEmH03HPLj3e1+mjgGCHPs9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBwMgzuyV5o/SW2nX6Sd7svnX/5B0exp+v6ivNCK4gTfAiAWuA7LWQDvfihk2LVIqUp6+o0oruF7npoSBq7548ukVA=="}]},"scripts":{},"maintainers":[{"name":"iizukanao","email":"iizuka@kyu-mu.net"}]},"0.1.1":{"name":"sequent","description":"JavaScript async flow control","version":"0.1.1","keywords":["sequent","sequence","flow","control","queue","join","wait"],"author":{"name":"Nao Iizuka","email":"iizuka@kyu-mu.net"},"main":"./lib/sequent","homepage":"https://github.com/iizukanao/sequent","repository":{"type":"git","url":"git://github.com/iizukanao/sequent.git"},"devDependencies":{"vows":">= 0.5.9"},"_npmUser":{"name":"iizukanao","email":"iizuka@kyu-mu.net"},"_id":"sequent@0.1.1","dependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"c1f858f085734331f47e52f2306bb3d20f131522","tarball":"https://registry.npmjs.org/sequent/-/sequent-0.1.1.tgz","integrity":"sha512-z0kwMpM58wYY59hrdPsBcAFd6/p5Y/yY2nc06IPIVx53ihI+nOKhXolbn8/H1VEyYVE2/uBzSjJbFJvnT3fmaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT+kYrS7oMjXq04YeAWn6qqfgFDSeDMqATnDpdTI2JhQIgDwWacdZj/YUsbStuCGE/zx23ZFcZJlVuSZ+M6yvz3GU="}]},"readme":"sequent\n=======\n\nJavaScript async flow control\n\nHow to use\n----------\n\n### Wait (Join) ###\n\nExecute after expected number of seq.done() are executed.\n\n    var Sequent = require('sequent');\n    var seq = new Sequent;\n\n    setTimeout(function(){\n        seq.done(\"done 1\"); // Arguments are optional\n    }, 500);\n\n    setTimeout(function(){\n        seq.done(\"done 2\", \"end\");\n    }, 1000);\n\n    // Wait for two seq.done()\n    seq.wait(2, function(arg1, arg2){\n        // arg1 == \"done 2\", arg2 == \"end\"\n        console.log(\"all done\");\n    });\n\n### Break (as in `for` loops) ###\n\nExit waiting earlier than planned.\n\n    var Sequent = require('sequent');\n    var seq = new Sequent;\n\n    seq.wait(100, function(arg){\n        // arg == \"matured\"\n    });\n\n    for (var i=0; i<100; i++) {\n        if (i == 5) {\n            // Break here and go to callback of wait()\n            seq.mature(\"matured\");\n        }\n\n        // seq.done() after seq.mature() are ignored\n        seq.done(\"done \" + i);\n    }\n\n### Queue (execute in order) ###\n\nExecute functions in queued order when it becomes available.\n\n    var Sequent = require('sequent');\n    var seq = new Sequent;\n\n    var funcs = [];\n    var results = [];\n    for (var i=1; i<=10; i++) {\n        // Functions will be executed in seq.queue()'d order.\n        // seq.queue() returns a wrapped function.\n        funcs.push(seq.queue(\n            (function(_i){\n                return function(){\n                    results.push(_i);\n                }\n            })(i)\n        ));\n    }\n\n    funcs.reverse();\n\n    // Mark queued functions as available\n    for (var i=0, l=funcs.length; i<l; i++) {\n        funcs[i]();\n    }\n\n    // Wait for all queued functions to be executed\n    seq.flush(function(){\n        // results is [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n    });\n\nInstallation\n------------\n\n    npm install sequent\n","maintainers":[{"name":"iizukanao","email":"iizuka@kyu-mu.net"}]},"0.1.2":{"name":"sequent","description":"JavaScript async flow control","version":"0.1.2","keywords":["sequent","sequence","flow","control","queue","join","wait"],"author":{"name":"Nao Iizuka","email":"iizuka@kyu-mu.net"},"main":"./lib/sequent","homepage":"https://github.com/iizukanao/sequent","repository":{"type":"git","url":"git://github.com/iizukanao/sequent.git"},"devDependencies":{"vows":">= 0.5.9"},"readme":"sequent\n=======\n\nJavaScript async flow control\n\nHow to use\n----------\n\n### Wait (Join) ###\n\nExecute after expected number of seq.done() are executed.\n\n    var Sequent = require('sequent');\n    var seq = new Sequent;\n\n    setTimeout(function(){\n        seq.done(\"done 1\"); // Arguments are optional\n    }, 500);\n\n    setTimeout(function(){\n        seq.done(\"done 2\", \"end\");\n    }, 1000);\n\n    // Wait for two seq.done()\n    seq.wait(2, function(arg1, arg2){\n        // arg1 == \"done 2\", arg2 == \"end\"\n        console.log(\"all done\");\n    });\n\n### Break (as in `for` loops) ###\n\nExit waiting earlier than planned.\n\n    var Sequent = require('sequent');\n    var seq = new Sequent;\n\n    seq.wait(100, function(arg){\n        // arg == \"matured\"\n    });\n\n    for (var i=0; i<100; i++) {\n        if (i == 5) {\n            // Break here and go to callback of wait()\n            seq.mature(\"matured\");\n        }\n\n        // seq.done() after seq.mature() are ignored\n        seq.done(\"done \" + i);\n    }\n\n### Queue (execute in order) ###\n\nExecute functions in queued order when it becomes available.\n\n    var Sequent = require('sequent');\n    var seq = new Sequent;\n\n    var funcs = [];\n    var results = [];\n    for (var i=1; i<=10; i++) {\n        // Functions will be executed in seq.queue()'d order.\n        // seq.queue() returns a wrapped function.\n        funcs.push(seq.queue(\n            (function(_i){\n                return function(){\n                    results.push(_i);\n                }\n            })(i)\n        ));\n    }\n\n    funcs.reverse();\n\n    // Mark queued functions as available\n    for (var i=0, l=funcs.length; i<l; i++) {\n        funcs[i]();\n    }\n\n    // Wait for all queued functions to be executed\n    seq.flush(function(){\n        // results is [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n    });\n\nInstallation\n------------\n\n    npm install sequent\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/iizukanao/sequent/issues"},"_id":"sequent@0.1.2","dist":{"shasum":"f2f61b19c93cbb5735e3821c98c15fb7f1ceb6be","tarball":"https://registry.npmjs.org/sequent/-/sequent-0.1.2.tgz","integrity":"sha512-n5GeMYBfhcKzictJWBp0+7nwgdI+t9OByp9PE9/4vp/VhbJh2GS6hIqAKkcdr1d9RGBusn1EK9tZPnGEfz1Hbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9WpXIG9x/V6rWS+EYWi9FgmmHA9S3Rzq0jqeGx/q8eAIhAOAAcCmEVEAmTg6Ch6Fv9FoYM8jtgz/AoARUm2+JBcmY"}]},"_from":"./","_npmVersion":"1.2.23","_npmUser":{"name":"iizukanao","email":"iizuka@kyu-mu.net"},"maintainers":[{"name":"iizukanao","email":"iizuka@kyu-mu.net"}]}},"maintainers":[{"name":"iizukanao","email":"iizuka@kyu-mu.net"}],"time":{"modified":"2022-06-26T17:52:05.940Z","created":"2011-08-24T01:41:41.007Z","0.1.0":"2011-08-24T01:41:43.308Z","0.1.1":"2012-04-30T21:38:44.990Z","0.1.2":"2013-05-26T09:13:51.605Z"},"author":{"name":"Nao Iizuka","email":"iizuka@kyu-mu.net"},"repository":{"type":"git","url":"git://github.com/iizukanao/sequent.git"}}