{"_id":"exit","_rev":"44968","name":"exit","description":"A replacement for process.exit that ensures stdio are fully drained before exiting.","dist-tags":{"latest":"0.1.2"},"maintainers":[{"name":"cowboy","email":""}],"time":{"modified":"2021-06-03T10:13:51.000Z","created":"2013-09-20T19:01:21.371Z","0.1.2":"2013-11-26T19:24:48.883Z","0.1.1":"2013-09-26T17:01:42.779Z","0.1.0":"2013-09-20T19:01:21.371Z"},"users":{"tomi77":true,"j3kz":true,"rouabhi":true,"itonyyo":true,"mccoyjordan":true,"bapinney":true,"mojaray2k":true,"faraoman":true,"cwagner":true},"author":{"name":"\"Cowboy\" Ben Alman","url":"http://benalman.com/"},"repository":{"type":"git","url":"git://github.com/cowboy/node-exit.git"},"versions":{"0.1.2":{"name":"exit","description":"A replacement for process.exit that ensures stdio are fully drained before exiting.","version":"0.1.2","homepage":"https://github.com/cowboy/node-exit","author":{"name":"\"Cowboy\" Ben Alman","url":"http://benalman.com/"},"repository":{"type":"git","url":"git://github.com/cowboy/node-exit.git"},"bugs":{"url":"https://github.com/cowboy/node-exit/issues"},"licenses":[{"type":"MIT","url":"https://github.com/cowboy/node-exit/blob/master/LICENSE-MIT"}],"main":"lib/exit","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt nodeunit"},"devDependencies":{"grunt-contrib-jshint":"~0.6.4","grunt-contrib-nodeunit":"~0.2.0","grunt-contrib-watch":"~0.5.3","grunt":"~0.4.1","which":"~1.0.5"},"keywords":["exit","process","stdio","stdout","stderr","drain","flush","3584"],"readmeFilename":"README.md","_id":"exit@0.1.2","dist":{"shasum":"0632638f8d877cc82107d30a0fff1a17cba1cd0c","size":15295,"noattachment":false,"key":"/exit/-/exit-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/exit/download/exit-0.1.2.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"cowboy","email":"cowboy@rj3.net"},"maintainers":[{"name":"cowboy","email":""}],"directories":{},"publish_time":1385493888883,"_cnpm_publish_time":1385493888883,"_hasShrinkwrap":false},"0.1.1":{"name":"exit","description":"A replacement for process.exit that ensures stdio are fully drained before exiting.","version":"0.1.1","homepage":"https://github.com/cowboy/node-exit","author":{"name":"\"Cowboy\" Ben Alman","url":"http://benalman.com/"},"repository":{"type":"git","url":"git://github.com/cowboy/node-exit.git"},"bugs":{"url":"https://github.com/cowboy/node-exit/issues"},"licenses":[{"type":"MIT","url":"https://github.com/cowboy/node-exit/blob/master/LICENSE-MIT"}],"main":"lib/exit","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt nodeunit"},"devDependencies":{"grunt-contrib-jshint":"~0.6.4","grunt-contrib-nodeunit":"~0.2.0","grunt-contrib-watch":"~0.5.3","grunt":"~0.4.1","which":"~1.0.5"},"keywords":["exit","process","stdio","stdout","stderr","drain","flush","3584"],"readmeFilename":"README.md","_id":"exit@0.1.1","dist":{"shasum":"8bf4af1e41fdb092476006764db9f750dfcddc4e","size":15295,"noattachment":false,"key":"/exit/-/exit-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/exit/download/exit-0.1.1.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"cowboy","email":"cowboy@rj3.net"},"maintainers":[{"name":"cowboy","email":""}],"directories":{},"publish_time":1380214902779,"_cnpm_publish_time":1380214902779,"_hasShrinkwrap":false},"0.1.0":{"name":"exit","description":"A replacement for process.exit that ensures stdio are fully drained before exiting.","version":"0.1.0","homepage":"https://github.com/cowboy/node-exit","author":{"name":"\"Cowboy\" Ben Alman","url":"http://benalman.com/"},"repository":{"type":"git","url":"git://github.com/cowboy/node-exit.git"},"bugs":{"url":"https://github.com/cowboy/node-exit/issues"},"licenses":[{"type":"MIT","url":"https://github.com/cowboy/node-exit/blob/master/LICENSE-MIT"}],"main":"lib/exit","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt nodeunit"},"devDependencies":{"grunt-contrib-jshint":"~0.6.4","grunt-contrib-nodeunit":"~0.2.0","grunt-contrib-watch":"~0.5.3","grunt":"~0.4.1","async":"~0.2.9","diff":"~1.0.7"},"keywords":["exit","process","stdio","stdout","stderr","drain","flush","3584"],"readmeFilename":"README.md","_id":"exit@0.1.0","dist":{"shasum":"19c3ad63bacc715b3eda7accedebf42a73424fd8","size":16267,"noattachment":false,"key":"/exit/-/exit-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/exit/download/exit-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"cowboy","email":"cowboy@rj3.net"},"maintainers":[{"name":"cowboy","email":""}],"directories":{},"publish_time":1379703681371,"_cnpm_publish_time":1379703681371,"_hasShrinkwrap":false}},"readme":"# exit [![Build Status](https://secure.travis-ci.org/cowboy/node-exit.png?branch=master)](http://travis-ci.org/cowboy/node-exit)\n\nA replacement for process.exit that ensures stdio are fully drained before exiting.\n\nTo make a long story short, if `process.exit` is called on Windows, script output is often truncated when pipe-redirecting `stdout` or `stderr`. This module attempts to work around this issue by waiting until those streams have been completely drained before actually calling `process.exit`.\n\nSee [Node.js issue #3584](https://github.com/joyent/node/issues/3584) for further reference.\n\nTested in OS X 10.8, Windows 7 on Node.js 0.8.25 and 0.10.18.\n\nBased on some code by [@vladikoff](https://github.com/vladikoff).\n\n## Getting Started\nInstall the module with: `npm install exit`\n\n```javascript\nvar exit = require('exit');\n\n// These lines should appear in the output, EVEN ON WINDOWS.\nconsole.log(\"foo\");\nconsole.error(\"bar\");\n\n// process.exit(5);\nexit(5);\n\n// These lines shouldn't appear in the output.\nconsole.log(\"foo\");\nconsole.error(\"bar\");\n```\n\n## Don't believe me? Try it for yourself.\n\nIn Windows, clone the repo and cd to the `test\\fixtures` directory. The only difference between [log.js](test/fixtures/log.js) and [log-broken.js](test/fixtures/log-broken.js) is that the former uses `exit` while the latter calls `process.exit` directly.\n\n```\nC:\\node-exit\\test\\fixtures>node log.js 0 10 stdout stderr 2>&1 | find \"std\"\n[stdout] testing 0\n[stderr] testing 0\n[stdout] testing 1\n[stderr] testing 1\n[stdout] testing 2\n[stderr] testing 2\n[stdout] testing 3\n[stderr] testing 3\n[stdout] testing 4\n[stderr] testing 4\n[stdout] testing 5\n[stderr] testing 5\n[stdout] testing 6\n[stderr] testing 6\n[stdout] testing 7\n[stderr] testing 7\n[stdout] testing 8\n[stderr] testing 8\n[stdout] testing 9\n[stderr] testing 9\n\nC:\\node-exit\\test\\fixtures>node log-broken.js 0 10 stdout stderr 2>&1 | find \"std\"\n\nC:\\node-exit\\test\\fixtures>\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n2013-09-20 - v0.1.0 - Initial release.\n\n## License\nCopyright (c) 2013 \"Cowboy\" Ben Alman  \nLicensed under the MIT license.\n","_attachments":{},"readmeFilename":"README.md","homepage":"https://github.com/cowboy/node-exit","bugs":{"url":"https://github.com/cowboy/node-exit/issues"}}