{"_id":"node-graceful","_rev":"18-467b1360a6fbfdee34b567dd501c63de","name":"node-graceful","description":"Graceful process exit manager. allows waiting on multiple async services.","dist-tags":{"latest":"3.1.0"},"versions":{"0.1.1":{"name":"node-graceful","version":"0.1.1","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"graceful.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1","transpile":"cat graceful.js | 6to5  > es5/index.js"},"author":{"name":"mrbar42"},"license":"WTFPL","gitHead":"3e453aad19b3f88338b3d72c034d89aea7d69776","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.1.1","_shasum":"89edc4973ed39ee991b9d2bca8e0d3f8ddde58de","_from":".","_npmVersion":"3.7.3","_nodeVersion":"4.3.1","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"shasum":"89edc4973ed39ee991b9d2bca8e0d3f8ddde58de","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.1.1.tgz","integrity":"sha512-ATxJYpS2qvwaIDMeK0BQ+oLSXSJ2HWdg8Rbm2AtaeknlxAb19k4eR/FNAs9dd3YBTPLmOBoCxrAYD/p2Cj+Cxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLAxoVOwyRxeUaxtmmW1rG3IcmcAwHYUlxuO5CPGhkIQIhAMu0owES/CA4wI2uOWBRnlTM7vtykCUGEVeObHc4NGJ5"}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-graceful-0.1.1.tgz_1456952048153_0.8431439243722707"},"directories":{}},"0.2.0":{"name":"node-graceful","version":"0.2.0","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"graceful.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1","transpile":"cat graceful.js | 6to5  > es5/index.js","prepublish":"npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","gitHead":"3b53ca4c7eb1daa11956b9fc96c33d9e403b8710","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.2.0","_shasum":"7e6314e2b773c70b6132cc321ce87cffb2df46ed","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"shasum":"7e6314e2b773c70b6132cc321ce87cffb2df46ed","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.2.0.tgz","integrity":"sha512-gnZB/eXLRiF/ea9AmE1OOaBGB3K91hUpo7ZSxOAu8L0I503F1QHRX0pHz04AJ9ZwBh2t6s8kkBmFBTB3Uhvcdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICzRwbjgroV3IAM4QeUVghyon/rrGCWFMsaZrETgb0MmAiEA4l+E3T2LHTeOcz08KLe2fgaYh1MWJWIsWQynKLmGIO8="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/node-graceful-0.2.0.tgz_1460627297143_0.6985642777290195"},"directories":{}},"0.2.1":{"name":"node-graceful","version":"0.2.1","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"graceful.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test":"echo \"Error: no test specified\" && exit 1","transpile":"cat graceful.js | 6to5  > es5/index.js","prepublish":"npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","gitHead":"3b53ca4c7eb1daa11956b9fc96c33d9e403b8710","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.2.1","_shasum":"521303ab2764cf4f00e7350b914179f61718c65f","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"shasum":"521303ab2764cf4f00e7350b914179f61718c65f","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.2.1.tgz","integrity":"sha512-0gdagY0zEjeooJr7eXoKUBTzVYMFCIFh2Gw9ArhfXobOtikk+/UOyfZgjb5lqpw1Opmq1uw9K6Wgz4xwr6mWog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhAOGfKWWmHRvrqN4N9F42BTnbPOsOiL99I3czB/EEhAiEAhBzvOQecNFFRCo7GaaOqg21m7THi0hchCOPS2DkDqdU="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-graceful-0.2.1.tgz_1461242294519_0.9840415406506509"},"directories":{}},"0.2.2":{"name":"node-graceful","version":"0.2.2","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"graceful.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test":"node tests/runner","transpile":"cat graceful.js | 6to5 > es5/index.js","prepublish":"npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","gitHead":"3b4106515d2e44e4e56e992e620371d216caa704","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.2.2","_shasum":"a07b658c973d05f354d2ce26a46d4872585e7425","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.3","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"shasum":"a07b658c973d05f354d2ce26a46d4872585e7425","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.2.2.tgz","integrity":"sha512-+UmPuLbwceiFkgkkCxRMKOrm00/TPiRH3M95sfHGz78kfQanwwYQLVGqTSpLoJhEL995R9Wf1IcxVr8tdcQ7kQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZn5rZAi3c5qCVgQKSi5BOviFXtju/xjyF+vgrYogCvgIhAKqiOLlAmP+ZEjSR2Xsscihaf/tp7fM9246iNK3emPBz"}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/node-graceful-0.2.2.tgz_1462353129805_0.11721219797618687"},"directories":{}},"0.2.3":{"name":"node-graceful","version":"0.2.3","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"graceful.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test":"node tests/runner","transpile":"cat graceful.js | 6to5 > es5/index.js","prepublish":"npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","gitHead":"3b4106515d2e44e4e56e992e620371d216caa704","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.2.3","_shasum":"ab120e1eed8c0c2b5e2ac874bf2754519c3fa942","_from":".","_npmVersion":"3.10.5","_nodeVersion":"4.4.7","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"shasum":"ab120e1eed8c0c2b5e2ac874bf2754519c3fa942","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.2.3.tgz","integrity":"sha512-M+ICBPA4Oj/HC1oH9CyG6gJkZwhuT4gVhKTfG2v+fukkLzzX3FBV5dPAQqVJrIeH0BcH65DoJPdxc0Fe0KddtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyxsZdOxx4olkq8Xknlj4EdQ0XM2fgp+Yo6F8h9WNS5AiEAi9OpAisIirPSdZvwbEJ3KwLFkoQdl/inD0MSQ7H2U2s="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/node-graceful-0.2.3.tgz_1469773247930_0.3158536828123033"},"directories":{}},"0.2.4":{"name":"node-graceful","version":"0.2.4","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"graceful.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test:unit":"node tests/runner","test:lint":"tslint -c tslint.json --fix tests/*.ts","test":"npm run test:unit && npm run test:lint","transpile":"cat graceful.js | 6to5 > es5/index.js","prepublish":"npm run test && npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","devDependencies":{"6to5":"3.6.5","tslint":"5.9.1","typescript":"2.6.2"},"gitHead":"705d2970699a0fe4251343bfcc5b9cab3c897002","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.2.4","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"integrity":"sha512-GIS+P7QpeyTZp03X360oamnHg/JDQlebfHgft9G3IhI6KrUQEmLM/g+B249nNQMZuUTjB0KogYbG/4n1UYmMag==","shasum":"33efa549d3b3f1d5487141e01b109244a424e5e6","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.2.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE7N4Ordh+b4RXIgp/WhNphZJExhzqJ/mICUjPxYOzsQAiAMxkEFZfHCc5YswLQLhw+5kWkS6F15hc6aJkxxDoczBg=="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful-0.2.4.tgz_1517163255076_0.23987632244825363"},"directories":{}},"0.3.0":{"name":"node-graceful","version":"0.3.0","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test:unit":"node tests/runner","test:lint":"tslint -c tslint.json --fix tests/*.ts","test":"npm run test:unit && npm run test:lint","transpile":"tsc --allowJs --outFile es5/index.js --pretty index.js ","prepublish":"npm run test && npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","devDependencies":{"tslint":"5.9.1","typescript":"2.6.2"},"gitHead":"a4819852118a8302e7848aedfde6aff337a644b3","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.5.0","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"integrity":"sha512-UaEdpHz/7YNkj3tHa0GuwOG2zd+HMX+ITanrd80T82xxSLvzP7SbdUxJ2+z6QTlaXK7yE98eBTVdvscaMwjm4A==","shasum":"a29df7e04843b293b93ff252ff08334092c9a727","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.3.0.tgz","fileCount":23,"unpackedSize":77702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHQ6H1x7PukCRBjWBEDeWEEi8u9MNpf+JtpUwC1ZWjSAiB6LI3s/nBNMh6z6Yyi3XK26BQ1XVi4mwKetqPT4S0i1A=="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_0.3.0_1520634122599_0.0014438548424671183"},"_hasShrinkwrap":false},"0.3.1":{"name":"node-graceful","version":"0.3.1","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","transpile":"tsc --allowJs --outFile es5/index.js --pretty index.js ","prepublishOnly":"npm run test && npm run transpile"},"author":{"name":"mrbar42"},"license":"WTFPL","devDependencies":{"@types/node":"9.6.0","ts-node":"5.0.1","tslint":"5.9.1","typescript":"2.7.2"},"gitHead":"255a5410b8bfe4bdc35f54f447a1ea2e4ad79711","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@0.3.1","_npmVersion":"5.6.0","_nodeVersion":"8.5.0","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"integrity":"sha512-CSOHQ1TEL8nUXb89kwCf9JEKrWqwNH5fdW6tkT0JrfKhn09HBbolWuv4r4YeDx2UVX3ejQTNsmQMWubMVDzuBA==","shasum":"0c8c5038e379b3afef6528340408542a5ce53a3e","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-0.3.1.tgz","fileCount":24,"unpackedSize":87839,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZduI1b4bMbwSNNUjCvXLj6zUYdSM3A76Aw56Yi6eKvAiEAmwwvdPR3MI4Wt4berSj344MFCc9MZ8J/sUX3djV9ENg="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_0.3.1_1521873709262_0.525460103109292"},"_hasShrinkwrap":false},"1.0.1":{"name":"node-graceful","version":"1.0.1","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","transpile":"tsc --allowJs --outFile es5/index.js --pretty index.js ","prepublishOnly":"npm run test && npm run transpile"},"author":{"name":"mrbar42"},"license":"MIT","devDependencies":{"@types/node":"9.6.0","ts-node":"5.0.1","tslint":"5.9.1","typescript":"2.7.2"},"gitHead":"a08ec63075b4d7ed06fbd8cd4524a4fdbc47248b","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@1.0.1","_nodeVersion":"8.12.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-Bu+r0dC50B9EJKmMwUACDR1UBvutwQftDEImmXvBxNAnUX+qC5XG66yeNZmiKFsNa2Kc173XkxyyBn1ykDB1fQ==","shasum":"e9158f3c0539fff3fafb8a4b3b470a40f2b79998","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-1.0.1.tgz","fileCount":22,"unpackedSize":57618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXcZJCRA9TVsSAnZWagAAo78P/jxWyFL/v4EYpX4WAZ0V\n/sjRkd/9B2qHBEVitAJnwS171zbyTmyS/gZPQ2IoasoQywcWkBRdCihvabVZ\npPKx0F+dOJblzAhTtj2BZPIM33bBUi+L8ky0TZJl/VE2DVVajWwzV43c7Sw3\nCvAgcs/WGtGoYvrc3i5dQBFywOro+FUdioHiiwqfFqqlcJNJAZ9VZ1MRjs0p\nK8dEsA6W15QpIDdktiiOzelI1LKBCijSSywf4e2AGjzFsJypzSUXLXJoL0V/\nUOXNfAxIsLoKBVaFJf161MD780prvGw85FrJ+PPBbiEpEUbaMSH1SRCH6z3E\nm/jIzD+PkSIejgfVf9MscZOzr6jeYMSWd/37lSwDtY+okVnrPdt7A3qmgg0r\n8NUOiX+yz0OwGGEq63whMhDr3D2u9ojCjHofv+43fCQ9/OLYIKnsLkJLgSvi\noGG9ajaXp5Rft33ypdEnoX0afqjlkigspoERBGkOyT+hm9OL4KkJfHT3w0mJ\nEy/ATVLh3j1ZpE/JMZKc68eIW/RX8mbhneivBxI55WD4MZwRxYAqSN1BHOyP\n1FdEmiRFSzLlKbtk3AUUDyYz6U3fhXqgZz5cSCN0EH2fdIl1/p2c3qCqlvg7\n0eVypYeLbtlJE7S5o0xPVu4ncGYCyD+FZMnri52NTUWPVXabbgm4Huwo3s/P\nrAr1\r\n=YPgK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIATtU3T10G234O1zvmr+9P/Gpk9yf/Qm4gQqDs4fKysfAiEAjI80f0j6OznXCgftBJap2LsyuFT9yrOQ5cz+cIbIP3s="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_1.0.1_1549649481024_0.28405107437274535"},"_hasShrinkwrap":false},"2.0.0":{"name":"node-graceful","version":"2.0.0","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","transpile":"tsc --allowJs --outFile es5/index.js --pretty index.js ","prepublishOnly":"npm run test && npm run transpile"},"author":{"name":"mrbar42"},"license":"MIT","devDependencies":{"@types/node":"8.10.48","ts-node":"5.0.1","tslint":"5.9.1","typescript":"2.7.2"},"gitHead":"c70a5e3c5bc52f5a324668ab4ada5a8345a932b0","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"integrity":"sha512-EttXM4CuxbfA5EHlrNNwMNSAkaH8191gyTtfVhHzGd6Cnob2Jw+ih4N04WmrwzOXtxCd1k3WLriyLngo1x8BCw==","shasum":"8c38d2745fdc6755f67a9779c7801c1b3114aae7","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-2.0.0.tgz","fileCount":23,"unpackedSize":87888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc69RmCRA9TVsSAnZWagAA7hIP/2DSrASkvTCAJw7G7fNq\neM38DDYW90Eo86WHn2TE21R/l1iebOOb4yweC3B5q3+EHlftsPqz3mrrCD+f\nD+Ran6VOpMJPzTWyQ/nNgIhPR1R4VOc5YsveL3q3jW1NxMWRZws5rL9cf/IN\nzDFOqJYs9D1GmW+7SC/pCUU2ho47Rxt6s5VCh7dTC6NxUYnLSdVdqH6UmA2S\nkVw4zoP/jVZYmrZZtST3qfv998vW9+d9VexX2O2vQurAntXpHOLdYgW/OVC7\n2JgjnNUgnUDzcdexbQgtjISrNM+VRX6YZh50kq5jVHngpFP+TNLLgqXervZD\nw1AqD/HiI4Z60MOd6GIyue4tyWdvQIDdsbVE+4kWlnIaNhN4nD+3pN0oZVXo\nHdH95rCTjHkuowKS9mAMkzFNXj6RgtFmqqYvGDF9txsxQLHpOa+HcrisKsCd\nDNtbhNXaUv/HxqLA6VqV5HRFMmfQ9+j4B54rdg96LtiauasK5ZwH9/BtKr7r\nfYVzpuYIbrJjRvDnOVZO/KWqPmYz6DANgTlICNhDFvkD5GIqaS/JwtQij5Lf\nQlLHr/L89H0aPlSelunWHr5RBAhKPHA0zjds4HsFF9v63Y/MojqV8KpIfkfg\nTNPYLz/dMDbATPMKY81S9NnkY/3v/UTHAiMJChbCVK8DQBVR1ZUQGYmC4Qu6\ntcvg\r\n=t3za\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCa745XrCpIXpJYDVtLSemXP14PTY/HCLWphaxwnHadnAIgbk0Sn+Ik/2Ipz9dxMqMgrnrdYgVUA6naBG3J4SE3LDY="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_2.0.0_1558959206025_0.12576317618806776"},"_hasShrinkwrap":false},"2.0.1":{"name":"node-graceful","version":"2.0.1","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","transpile":"tsc --allowJs --outFile es5/index.js --pretty index.js ","prepublishOnly":"npm run test && npm run transpile"},"author":{"name":"mrbar42"},"license":"MIT","devDependencies":{"@types/node":"8.10.48","ts-node":"5.0.1","tslint":"5.9.1","typescript":"2.7.2"},"gitHead":"27f0fa2223bb3dbdd7f03b064a8d61a833a01641","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@2.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"dist":{"integrity":"sha512-5KBFTSSxRV9Qj/3VnJn7JGJBowjd8RfncVfmEjQrh70Jgjp0qxRZlV82TLCt8zLXHtwaY9/FCM4z+XzdvJRw+A==","shasum":"d93e17359e9978ea826939a8434aa6623f123644","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-2.0.1.tgz","fileCount":23,"unpackedSize":85560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEcopCRA9TVsSAnZWagAASdcP/2TzqS8z2m0IMaXW/+tI\nHjdJx7KPSsjW6s2ha8QU/AdN1SqJ6CyCB13RUVNVxz2PIbt5e1Erqp2HZcEX\n7VbAb5pDOl9UnxCaCdHEZSC8/Iw3+g1EQnUVB/vg878YibS9U18+O6BF4MWM\n6YvR3F0u6USDlBV9Ek5FDk0jDBagMDnlzT7WyIrphX2LYSPK6Vt5oEeFBhcW\n3ktvqqKpt4YMqbEbvRLxHTDi2qwah5ZdTpuKsmS0Esk0TervzQ47BB6AM6m8\nQGJKTUamLUglsFQ2UTPN66lYUAE/bzRzcFz+/aYWSJQmk0z4371isdNKgAvC\nFB+p9HJRWnkd858UMXb0BN1ESQsLsRJZEoajB2fQZz56AgRIgXpPhOm47vSF\nqElAYZxze3uSF/LK5NZ2E+JmygmmNFLRTLDumaz7RV2tpTU/dfuaPcNrUHGD\nh4KxyI5DPOQXIYltVXGI7EwtxMdGUTSvBdLDlNxb0nulG9h9ERyvF7EVEi1f\nZE3abtnSEAO8qWtKzqKjKoKg9XIdv22Zt7ZawYXrjBScMEXio1XhFCCrM1fY\nx70RB5SXoIp1AvbV2FXs6i+dNDzUv/iFtO285u+XEWVHAff77h+1AdfOoJVC\nxVgXNHwsWBy7KSzC83Wq+j9S0Ac/B3OhkZqKYTVa7gY8R7eXuNNCeKtMvpco\n4lLv\r\n=JJAp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAIphH1tvdLiXQ5Epx94s+wS/sfZDnIuLYgLxPtIGcVgAiEAndeb/ytWVJFm5llaPBy3bathvKSzIs6Iy7IvNJQD8DI="}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_2.0.1_1561446952369_0.5192813441888884"},"_hasShrinkwrap":false},"3.0.0":{"name":"node-graceful","version":"3.0.0","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown","graceful exit","uncaught","uncaughtException","unhandledRejection","terminate","stop","process"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc --noEmit && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","build":"tsc --build tsconfig.json","prepublishOnly":"npm run test && npm run build"},"author":{"name":"mrbar42"},"license":"MIT","devDependencies":{"@types/node":"8.10.48","ts-node":"^8.5.2","tslint":"^5.20.1","typescript":"^3.7.2"},"gitHead":"414fe91d4fd18647961844c4359af9348b5fa275","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@3.0.0","_nodeVersion":"8.16.0","_npmVersion":"6.11.2","dist":{"integrity":"sha512-5lkINOEYs5orsinqkbdO0QRepsPZjAwXp+Y4DLuOmug2EGSTp0FAFl2CFNibvEgXevSzC+yQIs3XDoxLyxxv9Q==","shasum":"c5dd6da7fd4b5d8a1ec096fdd2717e62c3645ef8","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-3.0.0.tgz","fileCount":6,"unpackedSize":23281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2+00CRA9TVsSAnZWagAA1XwQAIM3icmtSv0HSEmWVE7d\nahRPmfKhHKN8qLv4wtsce/IVTVrRqUaMPhb7Z0bjiETVzdAqn1E7qLjGMk64\nA5XENQDpwgd7DUNPurys/wxglCWqJqLap5tlQgav8ZJ8jrLvt3UyH0QCJ9Xs\n/hWZGt2CSgAEOxB9F+wf8MVLIuJ98xI6bwV7GdWwBikqhsNi1QPQyRgkquWf\nDzqoKjveWNs2rxZlcWXFz0AwEnktd9l/XwQK+8dcbydNiYx/kGBh8XSaNcDB\ntj4E8SZNzTMlVfSV3hxJDLQB0R6uKZt1B9i5KxNDgszYqARRzerp72Wy35Ce\nRIaA8YTzzg0zcZQCGmOdvf2gYF5aSl1+k5mBKVduKsUrzDY9cPJPp3E29auE\npOqy41waB4dhI4zwzFBe1GkX+3hiQ7ylzYiKCatu6OpyY9NhZfJ9Lblq+1M7\n8/HlUvsQ/5kScMZPHebBywpBAFgf4PDm99xPS97F58jq1qnP97EQZzaWGkVW\nKRUycffShMSRmWncTPlQPtgsmnCH3Zoqfhi5EgOlqGJXRoztPpm1j3NMLfse\nqYpf9mzqfQic7x3F7SRF1kt0IXk2WviSISJyQTyjiNQd5zRRfBnmoaJpmay0\nrvZW8ZDKI1iQY7Xi/uA7TG2Uxwz4jy2FlPOEd4LZza9LRWv1WrVkx6R4DAta\nM55e\r\n=r3HD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlG0Byja02I/Cp0qKwQplCvc34zxMy6tAhhUGrN/vyJAIhAIIOP9YLQuUIUi+ZxWTWcliaDk2HvXFpb1x07M/yPd8J"}]},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_3.0.0_1574694196367_0.49835899631182334"},"_hasShrinkwrap":false},"3.0.1":{"name":"node-graceful","version":"3.0.1","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown","graceful exit","uncaught","uncaughtException","unhandledRejection","terminate","stop","process"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc --noEmit && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","build":"tsc --build tsconfig.json","prepublishOnly":"npm run build && npm run test"},"author":{"name":"mrbar42"},"license":"MIT","devDependencies":{"@types/node":"^12.12.30","ts-node":"^8.7.0","tslint":"^6.1.0","typescript":"^3.8.3"},"gitHead":"3b7af41087a9e0deb8c92008ee33f4eacd5abc82","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@3.0.1","_nodeVersion":"12.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-V1jabqH6+P+XD/b5DKSMB4f/xWQpxgpSL+d850yQ09DIAWlo59Io5MNsJQD6TKjq3Gj6hC3uJ2GomDdmsL49xw==","shasum":"6070568e5b76c4018122fcb27e59bc9709c49937","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-3.0.1.tgz","fileCount":6,"unpackedSize":23476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwOy9CRA9TVsSAnZWagAAh2EP/iRtBcAI124W6kCtgNgE\nVcbdGASjEtkWfgPVF+Y/EDegXb3yBXyHh+yWZ9EQi2P4r1VHq4L5Jox6QoSM\nE7krVMbPnpy8rH8NTFoz2Z8X07uF7nMOP/Xb71eYJdzCofgdJlDs0cN/wAFE\nkSjSDe5XibuIjyYoxFGHPFPDtVNpoicyHrfFWh4/z7/bcO8GxQgzgGtrud8k\nz9wrGmcfz+pTEtO1cPzajtVCvFmlLtikI1H5cr+WdG7WBtqH6SrIqlnQPgrx\np9M1vmf75dMJLp1WmZYoyhsrHI0EV0dqmFyhLxR3M9w/4wEatf7vzmSBtzZ4\nnE9+uwIR5CPuJIjQIbBpu57UtEkglhxIcJOMRuJBLQEnbXvO1cHve6OGK4mh\n54rTKmQDGjo8RFUVm0oC0ZXnajrg/oVvb5yf85kB+NEsf269q06gZRj5BHPD\nxebaQThX5hZLeFQK8ppp+6nv3vNLkZkDDoDXuONZJZUJkbX0FcrhJwyUlDSg\nqLZ4Trz77QFsgBCEHClUdUzGRe1KCTkq3FoyawPklhrNYN/X0RD6ytkFWVmC\nIpe301c9fOymV5/7VAXTHmZGUtadwVM6T/NovkkmnohO6lvwo3sh9a/aDViL\ngpsBc5KIl+etRfIULumS4T69usy2tSJ7i2hT2dDUqLxFLhEdUBOa6UyT+wJ6\nSm72\r\n=FsVu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcoe2spig+RyRWnb4gicdI1PNHOkVKkRc0sjKUqurN1AiEA5S1RvM2SYCQ2M82GquW3zL1LTNP0AF+4CLgBkr8yxR8="}]},"_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"directories":{},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_3.0.1_1606479036498_0.7108545417782359"},"_hasShrinkwrap":false},"3.1.0":{"name":"node-graceful","version":"3.1.0","description":"Graceful process exit manager. allows waiting on multiple async services.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown","graceful exit","uncaught","uncaughtException","unhandledRejection","terminate","stop","process"],"scripts":{"test:unit":"node tests/runner","test:unit-ts":"ts-node tests/wait-for-multiple-promise.ts","test:lint":"tsc --noEmit && tslint -c tslint.json --fix tests/*.ts","test":"npm run test:lint && npm run test:unit && npm run test:unit-ts","build":"tsc --build tsconfig.json","prepublishOnly":"npm run build && npm run test"},"author":{"name":"mrbar42"},"license":"MIT","devDependencies":{"@types/node":"^16.6.1","ts-node":"^10.2.0","tslint":"^6.1.3","typescript":"^4.3.5"},"gitHead":"94f783c575c533d1cf14422252f0dc6a5febf3f1","bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"homepage":"https://github.com/mrbar42/node-graceful#readme","_id":"node-graceful@3.1.0","_nodeVersion":"16.3.0","_npmVersion":"7.15.1","dist":{"integrity":"sha512-fGH0ijsO5ZDDY405mP6bE0eNrHQhpjDrihhaviqprP1+aJEWy7bZtzXESp3ZAo6hBTtxOFe7RfSkcqFX001gJQ==","shasum":"fab88c96ed1975b939a91bc5be48f0e1c10d0afe","tarball":"https://registry.npmjs.org/node-graceful/-/node-graceful-3.1.0.tgz","fileCount":5,"unpackedSize":17337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhG64MCRA9TVsSAnZWagAAa5cP/2X5QKe4jF2A6x7qpZPw\nFPnZxjUT3ARF3kIXI0b9+iXrnuPGvpNF72ja55ig0QOd8WsRVUG+z5cveK7Q\nUlliWZbJpmp47UYnWdEVMq0vOpmqUmUcBxj4MnFoxuhdH3WSawyrJZ1oIjsu\naDoNNtGFzMAmrlhPWqdNfr6X9nD/lH+1KbSBxNjvKSboKj1DqgaioFY587MV\nsWZHhJWLQSzvoi2zNJCEmWPfPbMeM5+yQPRrWd7Cv5l77m+ffubrt8mxUkHA\nObpNR9CHctKXK/3g48xUxkWPn8xkQQwYP3QFwkHA+LQ4/KkdfZoLT6fN9nPH\nkp5HHeM84dM0J06houFyC9V1dgxCXwBSQTeV5uTiTdXMHhIQhBgJ6THIHZbv\nSJvkrCGk0bjO1WtCR2ensvEqRp+kqB+DjWGmgu+h41czG+7DTOJCElUIZm+K\nQIdddLsUqP3/lRkWmKOI+ZikmbqC5as9LzxKpu8T5QlPznbBcTGnyBHt5A/O\npjJVMYUo8JZjSPq4YkWNDrTk17/UVEyCfDhHae9WB5uZ00dR7BYwJtquwuAW\nn0UCVWhEpniI9bmboO3VcACuuLU4jozugg+cF5I4IrX8itRUPkorBPTQCkz1\nY44cXT2f2gMehhDc8TyznProq9Q9IOnWhID+xRInraRyFLVLrWBKUIv/oMoQ\nEK/L\r\n=MW4T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmigYtU+NUFOj04X+loKry1BjJ8b3SmUkfvLURLAnINgIhAJgblhBNDx51Tuf2P9C1hXfMTsbnzGsTjAWj22iGQ5Lx"}]},"_npmUser":{"name":"mrbar42","email":"mrbar42@gmail.com"},"directories":{},"maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-graceful_3.1.0_1629203980834_0.6395201231252672"},"_hasShrinkwrap":false}},"readme":"# node-graceful\n\n[![Build Status](https://travis-ci.org/mrbar42/node-graceful.svg?branch=master)](https://travis-ci.org/mrbar42/node-graceful) [![npm](https://img.shields.io/npm/v/node-graceful.svg)](https://www.npmjs.com/package/node-graceful) ![npm bundle size (version)](https://img.shields.io/bundlephobia/minzip/node-graceful?label=Install%20size)\n\nnode-graceful is a small helper module without dependencies that aims to ease graceful exit\n of complex node programs including async waiting on multiple independent modules.\n\nInstallation:\n```sh\nnpm i -S node-graceful\n\nyarn add node-graceful\n```\n\nHad any problem? open an [issue](https://github.com/mrbar42/node-graceful/issues/new)\n\n## Quick example\n\nTypescript\n```typescript\nimport Graceful from 'node-graceful';\nGraceful.captureExceptions = true;\n\nGraceful.on('exit', async () => {\n  await server.close();\n});\n```\n\nPlain JS\n```javascript\nconst Graceful = require('node-graceful');\nGraceful.captureExceptions = true;\n\nGraceful.on('exit', async () => {\n    console.log(`Received ${signal} - Exiting gracefully`);\n    await webServer.close(); \n});\n\n//  Graceful will wait until all listeners had finished\nGraceful.on('exit', (signal) => {\n    return new Promise((resolve) => {\n        console.log(\"Another independent listener!\");\n        setTimeout(() => resolve(), 1000);    \n    });\n});\n```\n\n## Quick Docs\n\n```typescript\ninterface Graceful {\n    // add exit listener\n    on(signal: 'exit', listener: GracefulListener): GracefulSubscription;\n    // remove exit listener\n    off(signal: 'exit', listener: GracefulListener): void;\n    // remove all exit listeners\n    clear(): void;\n    // trigger graceful process exit with or without exit code and signal\n    exit(): void;\n    exit(exitCode: number): void;\n    exit(exitSignal: string): void;\n    exit(exitCode: number, exitSignal: string): void;\n\n    // whether to exit immediately when a second kill signal is received\n    exitOnDouble: boolean; // default: true\n    // maximum time to wait before hard-killing the process\n    timeout: number; // default: 30000\n    // whether to treat uncaught exceptions as process terminating events\n    captureExceptions: boolean; // default: false\n    // whether to treat unhandled promise rejections as process terminating events\n    captureRejections: boolean; // default: false\n}\n\ntype GracefulListener = (signal: string, details?: object) => (void | any | Promise<any> | Promise<Error>);\ntype GracefulSubscription = () => void;\n```\nRead bellow for full API reference.\n\n## API Reference\n\n### Graceful.on('exit', {Function} listener)\n\nAdd exit listener to be called when process exit is triggered.\n`Graceful` listens on all terminating signals and triggers `exit` accordingly.\n\nTerminating events: `SIGTERM` `SIGINT` `SIGBREAK` `SIGHUP`\n\n#### Options\n- `listener(signal, details?)` - listener function\n    - `signal` - the signal that triggered the exit. example: 'SIGTERM'\n    - `details` - optional details provided by the trigger. for example in case of `unhandledException` this will be an error object. on external signal it will be undefined.\n\n#### Examples\nThe listener function can return a promise that will delay the process exit until it's fulfilment.\n```typescript\nGraceful.on('exit', () => Promise.resolve('I Am A Promise!'));\nGraceful.on('exit', async () => {\n  // async function always returns promise so shutdown will be delayed until this functions ends\n  await webServer.close();\n\n  return Promise.all([\n    controller.close(),\n    dbClient.close()\n  ]);\n});\n```\n\nif old style callback is needed, wrap the logic with a promise\n```javascript\nconst server = require('http').createServer(function (req, res) {\n    res.write('ok');\n    res.end()\n})\nGraceful.on('exit', () => {\n  return new Promise((resolve, reject) => {\n    server.close((err) => {\n      if (err) return reject(err);\n      resolve();\n    });\n  });\n});\n```\n\n#### Return value\nthe method returns a function that when invoked, removes the listener subscription.\nthe function is a shorthand for `.off` method\n\n##### example\n```typescript\n// use the return value to remove listener\nconst removeListener = Graceful.on('exit', () => {});\nremoveListener(); // listener was removed and will not be triggered\n```\n\n### Graceful.off('exit', {Function} listener)\n\nRemove a previously subscribed listener.\n\n##### example\n```typescript\nconst gracefulExit = () => {\n    console.log(\"exiting!\");\n};\n\n// add listener\nlet removeListener = Graceful.on('SIGTERM', gracefulExit);\n\n// remove listener\nGraceful.off('SIGTERM', gracefulExit);\n// same as invoking the return value\n// removeListener();\n```\n\n\n### Graceful.clear()\n\nUnsubscribe all `exit` listeners.\n\n##### example\n```javascript\n// add listener\nGraceful.on('exit', () => {\n   console.log(\"Received some exit signal!\");\n   return Promise.resolve(\"A promise to be waited on before dying\");\n});\n\nGraceful.on('exit', (done) => {\n   console.log(\"Another listener\");\n   done();\n});\n\n// remove all listener\nGraceful.clear();\n```\n\n### Graceful.exit({Number} \\[code], {String} \\[signal])\n\nTrigger graceful process exit.\nThis method is meant to be a substitute command for `process.exit()`\nto allow other modules to exit gracefully in case of error.\n\n- `code` - (optional) exit code to be used. default - `process.exitCode`\n- `signal` - (optional) signal to be simulating for listeners. default - `SIGTERM`\n\n##### example\n```javascript\n\nserver.listen(3333)\n        .on('listening', function () {\n            console.log('Yay!')\n        })\n        .on('error', function (err) {\n            if (err.code === 'EADDRINUSE') {\n                console.error(\"Damn, Port is already in use...\");\n                Graceful.exit();\n            }\n        });\n\n// exit code and signal can be specified\n// Graceful.exit(1);\n// Graceful.exit(1, 'SIGINT');\n// Graceful.exit('SIGINT');\n```\n\n## Options\n\nOptions are global and shared, any change will override previous values.\n\n#### Graceful.exitOnDouble = true {boolean}\n\nWhether to exit immediately when a second deadly event is received,\nFor example when Ctrl-C is pressed twice etc..\nWhen exiting due to double event, exit code will be `process.exitCode` or `1` (necessarily a non-zero)\n\n#### Graceful.timeout = 30000 {number}\n\nMaximum time to wait for exit listeners in `ms`.\nAfter exceeding the time, the process will force exit\nand the exit code will be `process.exitCode` or `1` (necessarily a non-zero)\n\nSetting the timeout to `0` will disable timeout functionality (will wait indefinitely)\n\n#### Graceful.captureExceptions = false {boolean}\n\nWhether to treat `uncaughtException` event as a terminating event and trigger graceful shutdown.\n\n```typescript\nGraceful.captureExceptions = true;\n\nthrow new Error('DANG!'); // this will now trigger graceful shutdown \n```\n\n#### Graceful.captureRejections = false {boolean}\n\nWhether to treat `unhandledRejection` event as a terminating event and trigger graceful shutdown.\nOn newer `node` versions `unhandledRejection` is in-fact a terminating event\n\n```typescript\nGraceful.captureRejections = true;\n\nPromise.reject(new Error('DANG!')); // this will now trigger graceful shutdown \n```\n\n#### exitCode\n\n`Graceful` will obey `process.exitCode` property value when exiting unless the exit is forced (double signal, timeout) in which case the exit code must be non-zero. \n","maintainers":[{"name":"mrbar42","email":"mrbar42@gmail.com"}],"time":{"modified":"2022-06-21T15:18:00.139Z","created":"2016-03-02T20:54:11.097Z","0.1.1":"2016-03-02T20:54:11.097Z","0.2.0":"2016-04-14T09:48:18.909Z","0.2.1":"2016-04-21T12:38:16.905Z","0.2.2":"2016-05-04T09:12:11.122Z","0.2.3":"2016-07-29T06:20:50.801Z","0.2.4":"2018-01-28T18:14:15.156Z","0.3.0":"2018-03-09T22:22:02.667Z","0.3.1":"2018-03-24T06:41:49.386Z","1.0.1":"2019-02-08T18:11:21.240Z","2.0.0":"2019-05-27T12:13:26.164Z","2.0.1":"2019-06-25T07:15:52.853Z","3.0.0":"2019-11-25T15:03:16.554Z","3.0.1":"2020-11-27T12:10:36.619Z","3.1.0":"2021-08-17T12:39:40.991Z"},"homepage":"https://github.com/mrbar42/node-graceful#readme","keywords":["graceful","exit","signal","sigterm","SIGINT","SIGHUP","shutdown","graceful exit","uncaught","uncaughtException","unhandledRejection","terminate","stop","process"],"repository":{"type":"git","url":"git+https://github.com/mrbar42/node-graceful.git"},"author":{"name":"mrbar42"},"bugs":{"url":"https://github.com/mrbar42/node-graceful/issues"},"license":"MIT","readmeFilename":"README.md","users":{"nguru":true}}