{"_id":"@alperkonuralp/gracefully-shutdown","_rev":"2-1d424388916ef07f33b4eccdc3e0e86d","name":"@alperkonuralp/gracefully-shutdown","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@alperkonuralp/gracefully-shutdown","version":"1.0.0","description":"","main":"dist/index.js","types":"dist/index.d.js","scripts":{"prebuild":"eslint . --ext .ts","build":"tsc","test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Alper Konuralp"},"license":"ISC","devDependencies":{"@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","@types/node":"^17.0.25","eslint":"^8.14.0","typescript":"^4.6.3"},"_id":"@alperkonuralp/gracefully-shutdown@1.0.0","_nodeVersion":"16.14.2","_npmVersion":"8.6.0","dist":{"integrity":"sha512-u5kE/jl8+fDnUGNdodGG+pW2dENIstDLJbKSmI4J/QpppxCBpVbLXIi3GuRwLWvF6sDKtVyKisXQnqz7XXIglQ==","shasum":"d1b18de331543291f4c20fac3c01bae0c59ecd22","tarball":"https://registry.npmjs.org/@alperkonuralp/gracefully-shutdown/-/gracefully-shutdown-1.0.0.tgz","fileCount":13,"unpackedSize":6903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBwh/0cC84Ddb4l4WFdCBSDzpodeJV4Djtn20OynM+GsAiBDygplcfsrPFnn0C/lQA0IR3Rwg8iygdnll1EPx1VRbg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibwNrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDOg/+L1XFjTGL9xLgPpbp946wCmK20tv+DLbnC4s5DvnpsQo/ceR1\r\nEAEUSs9ZYSSO4kRixjjv5gk6y8PyA1C3nYka0RkQOlNVNWKRw+cFNHr1gGGD\r\n1xGMwEl9J1bvH7xLKU2EvSvlyxXoPvRv4Vu5OGjLWslXGY4ERwo525U+makd\r\nHYw7fIF0kirivYH3NIArIlkrdyKm0VU9/z0LylcYweCvGphjP9+xqK7nLS9f\r\nS31/lw81fY7WIBOsgiIp1LgWw4rPxwqbBvAsM0eXU71MIBGolMIu/vwLoFPq\r\n07pxKyGRAOI4MPpN2SJOzkemRlHxmvNnzw7dPNVjKMoYqR2FO+frzM+0oUiF\r\niRUA1GdDdWuadVtG8es6mWtYiwz3FD6tfRe5S3P7JgPSj3oHfX2MMBi0ZLGF\r\n9gV6Op8fYG6dG7CUs0UXE0xCEHpXEyqQCCBqhLFAzVkhMsZXjMmmYCdJ82UH\r\nATXcuUvEbfUSImV2Eqp+TANHJWVEebk3q1nV47Jqk4+IV1YoPtFagY0eH9vD\r\nmIh5wRoEdq6Mi2lncd/1AylS7hfQdFS+vQP6NdKOsyVqn/pZSJq9YN53kcxe\r\n73OJe7MMdsc40hqfxPdomO+JPVzI5RTOGYt/jaD3M2EhtkYcSgLqf5wraHin\r\nXYr7BWE0aN0LAsH202zzfsyR7QfKWJnJz3A=\r\n=I3Rc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"},"directories":{},"maintainers":[{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gracefully-shutdown_1.0.0_1651442539147_0.2743572300623007"},"_hasShrinkwrap":false},"1.0.1":{"name":"@alperkonuralp/gracefully-shutdown","version":"1.0.1","description":"This tool provides a simple way to run the codes you want during the closing of the NodeJS application.","main":"gracefully_shutdown.js","types":"gracefully_shutdown.d.ts","scripts":{"_clear":"rimraf build/compiled/*","_prebuild":"eslint . --ext .ts","_tsc":"tsc","_make-bundle":"rollup --config","build":"run-s _clear _prebuild _tsc _make-bundle"},"repository":{"type":"Github","url":"git+https://github.com/alperkonuralp/nodejs-gracefully-shutdown.git"},"author":{"name":"Alper Konuralp","email":"alper@konuralp.gen.tr","url":"https://github.com/alperkonuralp/"},"keywords":["nodejs","gracefully shutdown","nodejs gracefully shutdown"],"license":"MIT","devDependencies":{"@rollup/plugin-node-resolve":"^13.3.0","@rollup/plugin-typescript":"^8.3.2","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","eslint":"^8.14.0","npm-run-all":"^4.1.5","rimraf":"^3.0.2","rollup":"^2.71.1","rollup-plugin-dts":"^4.2.1","typescript":"^4.6.3"},"gitHead":"20ade2954ecc65437cd9656d2f7807d4fed4c5bf","bugs":{"url":"https://github.com/alperkonuralp/nodejs-gracefully-shutdown/issues"},"homepage":"https://github.com/alperkonuralp/nodejs-gracefully-shutdown#readme","_id":"@alperkonuralp/gracefully-shutdown@1.0.1","_nodeVersion":"16.14.2","_npmVersion":"8.6.0","dist":{"integrity":"sha512-UycJkiTt0yLgWdBvmTDOUMUDPcZJh0VqVbMbURkqmyscVbN+67csZTxc6eJSrZ2k6OWweJxKiaU4hzdDQteOdA==","shasum":"36f0a8d69143ad98ee2ae52b99139cecd10e2951","tarball":"https://registry.npmjs.org/@alperkonuralp/gracefully-shutdown/-/gracefully-shutdown-1.0.1.tgz","fileCount":6,"unpackedSize":8942,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvQArZGkm5RzEpKJWmWEcBOybQ5pRSgqZTIRqMabA+jgIge4NxbvQC94BuGoL/VVxNCxLio+Ji2NebOlDlMRZz6XQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib9gWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9DxAAnSooBH03zbN1kpooadZkZu4jSjn40gB3LEdqljg8arBMCY/1\r\nrqH6kJoIexyOegbAOd9t9/xVtCL1zuk3Rtt3RY6GYYV7WwANyl583Ov7kOXs\r\nPG2jX99D7FQ+j/34lLx1lAMEYP8SsgCv/5s6DBbWhZCIUiyZfq+ZBOSOwbxG\r\nXZaFd8K09lxh4EpqLOkVyJ65D9QE9mgBmG0vYkQHlgnmalCUmzDhuFcm8bMH\r\nP1pZKSZAMySMvxwmN8m/WVlfxXzzolVsujVvmpF593MJQwUCHKRej4MREXuE\r\nR8mv737SiNW0F7YiC2C9YcKvun3jYk4Q+7Uq8bBdwxVxNRebqRNa+Djx1t3f\r\nQIqjxRHfyB939PVm5MZi8mZpm9Bwt1avuyLbuqUS8qDc3k9S0+cGF2Wc31Sp\r\nSdSEulq2Euyb53pZ7vNSLnJGVr4jRpXp7U2u4RRtsADfdoOPexYTHT+Xt+Eo\r\nEkmXxnI8tx4IgeXS9MG4KhDr1M4o6a0PfzIEYRZ8847i7lYA7R8Nf9irUzNO\r\nUUyF5VMjh+MHBujr5fD17KJYKOxXCZTGnpqmbe4Sb8lfNC0Y4hXmKvEPQxPT\r\nAiBeXXfhvSpo+Tto2+OI4V/6/GbZfl7LRjcCW7knc5m8FAvv21r4EfqJ/dWy\r\nUAWRAU0IcG89hVN3/BEt6yFR9EAQ/TbTSIs=\r\n=rWes\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"},"directories":{},"maintainers":[{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gracefully-shutdown_1.0.1_1651496982648_0.8725134621103416"},"_hasShrinkwrap":false},"1.0.2":{"name":"@alperkonuralp/gracefully-shutdown","version":"1.0.2","description":"This tool provides a simple way to run the codes you want during the closing of the NodeJS application.","main":"gracefully_shutdown.js","types":"gracefully_shutdown.d.ts","scripts":{"_clear":"rimraf build/compiled/*","_prebuild":"eslint . --ext .ts","_tsc":"tsc","_make-bundle":"rollup --config","build":"run-s _clear _prebuild _tsc _make-bundle"},"repository":{"type":"Github","url":"git+https://github.com/alperkonuralp/nodejs-gracefully-shutdown.git"},"author":{"name":"Alper Konuralp","email":"alper@konuralp.gen.tr","url":"https://github.com/alperkonuralp/"},"keywords":["nodejs","gracefully shutdown","nodejs gracefully shutdown"],"license":"MIT","devDependencies":{"@rollup/plugin-node-resolve":"^13.3.0","@rollup/plugin-typescript":"^8.3.2","@types/node":"^17.0.25","@typescript-eslint/eslint-plugin":"^5.20.0","@typescript-eslint/parser":"^5.20.0","eslint":"^8.14.0","npm-run-all":"^4.1.5","rimraf":"^3.0.2","rollup":"^2.71.1","rollup-plugin-dts":"^4.2.1","typescript":"^4.6.3"},"gitHead":"0747458dd7d6b95595adbdc1efa5305651accf31","bugs":{"url":"https://github.com/alperkonuralp/nodejs-gracefully-shutdown/issues"},"homepage":"https://github.com/alperkonuralp/nodejs-gracefully-shutdown#readme","_id":"@alperkonuralp/gracefully-shutdown@1.0.2","_nodeVersion":"16.14.2","_npmVersion":"8.6.0","dist":{"integrity":"sha512-X32sXvqjNaq3HE7F/wHwZzsOymR+s8QRxJvQxaW+7wF0U9dS5r/QD7uQ+YiAulGD/v1OJx6+1RYUgNtQ8yHo4Q==","shasum":"b80b217ae0b43e1cee204fe39f840367acd4655b","tarball":"https://registry.npmjs.org/@alperkonuralp/gracefully-shutdown/-/gracefully-shutdown-1.0.2.tgz","fileCount":6,"unpackedSize":10834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGyrG4jUTKhcXAozez/3ZcChb3MGlGqr8Qz3YioWj62iAiAzkhc9Y2ej3Ad2h2RUW3xj6C8u8wJaf9ZJHin7CfKAUw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib+EAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrC6g//STslGKL1Hr7H4hWQRMeCpgeNpjBI/pFEfGRtnzvxeVxP8YfH\r\nHitbbVegam+US9MFrb0096JPyM9piTvJDWeg+5BCBT9gvfxkK97py5vkHFAO\r\n5sqfHfZLPAc0jmBTtzeq+sAow0tGul0B6AS4wlTxiqRc3mmAdcvdr14mbdES\r\niCSAGYQGpE+a7HZ8zR/woLF9ecIHOFQ32I3dxbR+L5wFppP0krwR7QKD3w8q\r\ndYeWPq6bMLUFO1KZexsb0KAXYn3YYvHQqshz5fXuTLv6HU1h6mLLfemI0qkw\r\ns5aBNVk3ZgkEXPxSrDLM8/cHhe7NUwQhxrMCgp/ZppSDDfi3tJj7onj8HmDG\r\nK4bmWu4ep0XnFS//yN2JwDPY1Q4XZh4XREKxRW9XoGlOtPIcdlKwocAwL4dS\r\n4fhHI06n2Mkbtjl/lZOxL+0PeuzR/gO7nmbUBWJ3+VGOZ3dRvncn5e6KUB7B\r\ndie8LLHzG8AVyst9etv2Any0caqFbMJBxUMGgPpgOZUC+l16pgaL4OqbPzqb\r\nyiGykcaT/nr2S/rbl6OYGWzJmRwNl2u/VJ/ILGe5fg5MAQoMvP9YMbje837s\r\nYV9LeUvjR4UwT7dsITbOjLSx2zlStJ0m7r1h9rJlUynpIaYdkWrWLbDlxLWC\r\nY6tyLtj/oM7v797OPkjXZ0azHT5Vy0yeJic=\r\n=2ecP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"},"directories":{},"maintainers":[{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gracefully-shutdown_1.0.2_1651499263868_0.9975032700518502"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-01T22:02:19.088Z","1.0.0":"2022-05-01T22:02:19.326Z","modified":"2022-05-02T13:47:44.084Z","1.0.1":"2022-05-02T13:09:42.796Z","1.0.2":"2022-05-02T13:47:43.995Z"},"maintainers":[{"name":"alperkonuralp","email":"alper@konuralp.gen.tr"}],"author":{"name":"Alper Konuralp","email":"alper@konuralp.gen.tr","url":"https://github.com/alperkonuralp/"},"license":"MIT","readme":"# NodeJS - Gracefully Shutdown Tool\n-----------------------------------\n\nThis tool provides a simple way to run the codes you want during the closing of the NodeJS application.\n\n## Installation\n```\nnpm i @alperkonuralp/gracefully-shutdown\n```\n\n## Usage\n\n```typescript\nimport { GracefullyShutdown } from \"@alperkonuralp/gracefully-shutdown\";\n\nGracefullyShutdown(name: string, onClose: () => void | Promise<void>)\n```\n### Parameters\n*name:* The name for logging.\n\n*onClose:* The function delegate to run on shutdown.\n\n\n### Example\n```typescript\nimport _ from \"lodash\";\nimport { RedisClientType, createClient } from \"redis\";\nimport { AppConfig } from \"./types\";\nimport logger from './logging';\nimport { GracefullyShutdown } from \"@alperkonuralp/gracefully-shutdown\";\n\nlet _client: RedisClientType;\n\nexport async function init(config: AppConfig) {\n\t_client = createClient({\n\t\turl: `redis://${config.redis.host}:${config.redis.port}/${config.redis.dbIndex}`,\n\t\tpassword: config.redis.password,\n\t});\n\n\t_client.on(\"error\", (err) => logger.error(\"Redis Client Error\", err));\n\n\tawait _client.connect();\n}\n\nGracefullyShutdown(\"Redis\", () => {\n\tif (!_.isNil(_client)) {\n\t\t_client.quit();\n\t}\n});\n```\n\n## Logging\nThis api use a console for standart logging. But if you want to change it, you set a 2 function for logging.\n\n```typescript\nexport type LogFunction = (message: string) => void;\n\nexport function initLogger(infoLogger?: LogFunction, errorLogger?: LogFunction);\n```\n\n### Parameters\n\n*infoLogger:* The logger function for informations. Default value is `console.log`.\n\n*errorLogger:* The logger function for errors. Default value is `console.error`.\n\n\n### Example (winston)\n```typescript\nimport { createLogger, format as _format, transports as _transports } from 'winston';\nimport { initLogger } from '@alperkonuralp/gracefully-shutdown';\n\nconst logger = createLogger({\n\tlevel: process.env.LOGLEVEL || 'info',\n\tformat: _format.combine(\n\t\t_format.timestamp(),\n\t\t_format.json(),\n\t),\n\tdefaultMeta,\n\ttransports,\n\t// exceptionHandlers: exceptionHandlers,\n\t// rejectionHandlers: rejectionHandlers\n});\n\n\ninitLogger(logger.info, logger.error);\n```\n","readmeFilename":"README.md","description":"This tool provides a simple way to run the codes you want during the closing of the NodeJS application.","homepage":"https://github.com/alperkonuralp/nodejs-gracefully-shutdown#readme","keywords":["nodejs","gracefully shutdown","nodejs gracefully shutdown"],"repository":{"type":"Github","url":"git+https://github.com/alperkonuralp/nodejs-gracefully-shutdown.git"},"bugs":{"url":"https://github.com/alperkonuralp/nodejs-gracefully-shutdown/issues"}}