{"_id":"@accelbyte/healthcheck","_rev":"5-db951574e80a7f21bf218e1989646188","name":"@accelbyte/healthcheck","dist-tags":{"latest":"1.0.4","1.0.4-alpha0":"1.0.4-0"},"versions":{"1.0.0":{"name":"@accelbyte/healthcheck","version":"1.0.0","keywords":[],"author":{"name":"AccelByte Inc"},"license":"AccelByte License","_id":"@accelbyte/healthcheck@1.0.0","maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"np":{"testScript":"test"},"dist":{"shasum":"0ef964b1b243a568dce13d7c514fc45f13abd393","tarball":"https://registry.npmjs.org/@accelbyte/healthcheck/-/healthcheck-1.0.0.tgz","fileCount":8,"integrity":"sha512-8r9QkCI1Td3z1AOeQ5U9GC325wg/V8sNq7sGmexHrZF6aB6o9jijdBIAnSMzbunAmyZW5LK+vK2NNk3rlAjOIA==","signatures":[{"sig":"MEUCIQCan4KaR0tzskbcSmGgPIWGo06wy3nnjm/RmdwkW/m1IQIgM73uAe25tl965jMWH00EZjgAhcGXwoRG363lXJMlayg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51218},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f2b553a6133f1cecb3cba8099df90b5047d6dcec","scripts":{"test":"vitest run","build":"tsup"},"_npmUser":{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"},"_npmVersion":"10.8.2","description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","directories":{},"_nodeVersion":"20.18.1","publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.3.6","redis":"4.6.10","vitest":"3.0.4","ts-node":"10.9.2","typescript":"5.7.3","@types/node":"18.15.3","@prisma/client":"4.16.2","@aws-sdk/client-s3":"3.32.0","@opentelemetry/api":"1.4.1","@opentelemetry/resources":"1.15.2","@opentelemetry/sdk-metrics":"1.15.2"},"peerDependencies":{"redis":"^4.6.10","@prisma/client":"^4.16.2","@aws-sdk/client-s3":"^3.32.0","@opentelemetry/api":"^1.4.1","@opentelemetry/resources":"^1.15.2","@opentelemetry/sdk-metrics":"^1.15.2"},"_npmOperationalInternal":{"tmp":"tmp/healthcheck_1.0.0_1738812801569_0.17521860528062883","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@accelbyte/healthcheck","version":"1.0.1","keywords":[],"author":{"name":"AccelByte Inc"},"license":"AccelByte License","_id":"@accelbyte/healthcheck@1.0.1","maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"np":{"testScript":"test"},"dist":{"shasum":"df4b7e36e2217e8c781d91d352fffdf2940ba0e1","tarball":"https://registry.npmjs.org/@accelbyte/healthcheck/-/healthcheck-1.0.1.tgz","fileCount":10,"integrity":"sha512-dLdCkDEcso9adjg7P3VN/192gs4z+2mY/sGemAQ9o1QBGQX3b7/MjuLz7NFDkYOm8EOq7tFKU2gVip0tGBE7nQ==","signatures":[{"sig":"MEUCIAV0QadOyw7TVDXA2algbQbyTTcnfA53ZZiez9pKrwesAiEA9X7TPR+dnlTtlXQNd1HnrCqWnPH4h9dIjLvffL3GUyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51218},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsup"},"_npmUser":{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"},"description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","directories":{},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.3.6","redis":"4.6.10","vitest":"3.0.4","ts-node":"10.9.2","typescript":"5.7.3","@types/node":"18.15.3","@prisma/client":"4.16.2","@aws-sdk/client-s3":"3.32.0","@opentelemetry/api":"1.4.1","@opentelemetry/resources":"1.15.2","@opentelemetry/sdk-metrics":"1.15.2"},"peerDependencies":{"redis":"^4.6.10","@prisma/client":"^4.16.2","@aws-sdk/client-s3":"^3.32.0","@opentelemetry/api":"^1.4.1","@opentelemetry/resources":"^1.15.2","@opentelemetry/sdk-metrics":"^1.15.2"},"_npmOperationalInternal":{"tmp":"tmp/healthcheck_1.0.1_1738816492433_0.02659351382116215","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@accelbyte/healthcheck","version":"1.0.2","keywords":[],"author":{"name":"AccelByte Inc"},"license":"AccelByte License","_id":"@accelbyte/healthcheck@1.0.2","maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"np":{"testScript":"test"},"dist":{"shasum":"5c064f99fc28bf8436fb3e57194953d00f18c153","tarball":"https://registry.npmjs.org/@accelbyte/healthcheck/-/healthcheck-1.0.2.tgz","fileCount":10,"integrity":"sha512-XF0rKloDkLEKuknet9kiCffGh9Hhp1NGzI9I20/wJZluJCiXWyxPrQ3w2adUKwJICaWrnr8PybyGQB+W5esW/Q==","signatures":[{"sig":"MEUCIQD1lbOZoDcGKfy/PDtsJjzqqN3qKQxGDzVBq7h6CWVjYgIgXyYLEej1qGtBzXxsKRUTi1Tu59Yj+KL1rcwBvxcULT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51034},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./src/index.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsup"},"_npmUser":{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"},"description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","directories":{},"dependencies":{"redis":"^4.6.10","@prisma/client":"^4.16.2","@aws-sdk/client-s3":"^3.32.0","@opentelemetry/api":"^1.4.1","@opentelemetry/resources":"^1.15.2","@opentelemetry/sdk-metrics":"^1.15.2"},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.3.6","vitest":"3.0.4","ts-node":"10.9.2","typescript":"5.7.3","@types/node":"18.15.3"},"_npmOperationalInternal":{"tmp":"tmp/healthcheck_1.0.2_1738817052875_0.6317845875391213","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@accelbyte/healthcheck","version":"1.0.3","keywords":[],"author":{"name":"AccelByte Inc"},"license":"AccelByte License","_id":"@accelbyte/healthcheck@1.0.3","maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"np":{"testScript":"test"},"dist":{"shasum":"613c34c89e63010a2cae026c3557c3ee3c4e6e23","tarball":"https://registry.npmjs.org/@accelbyte/healthcheck/-/healthcheck-1.0.3.tgz","fileCount":10,"integrity":"sha512-bFgIdim5MPR2UV20uIwKG8ftalrUEm2Neexz53HHHq3JTV2lZjgXlIBXgpwvE5IgHiWm26LHXfQ0hIkEIJ29SQ==","signatures":[{"sig":"MEUCIQDiA1u0pWYT64kt7jbG5z5ywqOdPZrhkB8BdU12EuvHPQIgBi4q7MWaegmwNil4SI1faUFiB3ryEvCvvkUl3OJJcnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57079},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsup"},"_npmUser":{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"},"description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","directories":{},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"8.3.6","redis":"4.6.10","vitest":"3.0.4","ts-node":"10.9.2","typescript":"5.7.3","@types/node":"18.15.3","@prisma/client":"4.16.2","@aws-sdk/client-s3":"3.32.0","@opentelemetry/api":"1.4.1","@opentelemetry/resources":"1.15.2","@opentelemetry/sdk-metrics":"1.15.2"},"peerDependencies":{"redis":"^4.6.10","@prisma/client":"^4.16.2","@aws-sdk/client-s3":"^3.32.0","@opentelemetry/api":"^1.4.1","@opentelemetry/resources":"^1.15.2","@opentelemetry/sdk-metrics":"^1.15.2"},"_npmOperationalInternal":{"tmp":"tmp/healthcheck_1.0.3_1738825468098_0.29592433001127905","host":"s3://npm-registry-packages-npm-production"}},"1.0.4-0":{"name":"@accelbyte/healthcheck","version":"1.0.4-0","keywords":[],"author":{"name":"AccelByte Inc"},"license":"AccelByte License","_id":"@accelbyte/healthcheck@1.0.4-0","maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"np":{"testScript":"test"},"dist":{"shasum":"76547bc45b387c0be797291a6e007732023f8682","tarball":"https://registry.npmjs.org/@accelbyte/healthcheck/-/healthcheck-1.0.4-0.tgz","fileCount":10,"integrity":"sha512-rPdEAQIYnUMudyiUoyxQ4wknyuvbNa5w8l8JD0LXkoeyq9F9IT/IXxhvvTUESgXft/y9blRk1ekQfx3pVrqpOA==","signatures":[{"sig":"MEUCIB8xzKUKlMp+bAZu4TNWvkmy8TK1pOy2L6xjJ5EtIJDSAiEArGrSOk5dTF1RRH9MbMQkJoIZdKDNalHKUu2DgmBLTQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55696},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsup"},"_npmUser":{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"},"description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","directories":{},"publishConfig":{"registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"8.3.6","redis":"4.6.10","vitest":"3.0.4","ts-node":"10.9.2","typescript":"5.7.3","@types/node":"18.15.3","@prisma/client":"4.16.2","@aws-sdk/client-s3":"3.32.0","@opentelemetry/api":"1.4.1","@opentelemetry/resources":"1.15.2","@opentelemetry/sdk-metrics":"1.15.2","@opentelemetry/exporter-prometheus":"0.57.1"},"peerDependencies":{"redis":"^4.6.10","@prisma/client":"^4.16.2","@aws-sdk/client-s3":"^3.32.0","@opentelemetry/api":"^1.4.1","@opentelemetry/resources":"^1.15.2","@opentelemetry/sdk-metrics":"^1.15.2"},"_npmOperationalInternal":{"tmp":"tmp/healthcheck_1.0.4-0_1739247764818_0.9885919895068846","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@accelbyte/healthcheck","version":"1.0.4","module":"./index.js","keywords":[],"author":{"name":"AccelByte Inc"},"license":"AccelByte License","description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"publishConfig":{"registry":"https://registry.npmjs.org"},"scripts":{"test":"vitest run","build":"tsup"},"peerDependencies":{"@aws-sdk/client-s3":"^3.32.0","@opentelemetry/api":"^1.4.1","@opentelemetry/resources":"^1.15.2","@opentelemetry/sdk-metrics":"^1.15.2","@prisma/client":"^4.16.2","redis":"^4.6.10"},"devDependencies":{"@aws-sdk/client-s3":"3.32.0","@opentelemetry/api":"1.4.1","@opentelemetry/exporter-prometheus":"0.57.1","@opentelemetry/resources":"1.15.2","@opentelemetry/sdk-metrics":"1.15.2","@prisma/client":"4.16.2","@types/node":"18.15.3","redis":"4.6.10","ts-node":"10.9.2","tsup":"8.3.6","typescript":"5.7.3","vitest":"3.0.4"},"np":{"testScript":"test"},"_id":"@accelbyte/healthcheck@1.0.4","dist":{"shasum":"03a9c6f7e2acd05a1eed1c688f84f63e4a920a63","integrity":"sha512-pqMn1KXMzsDPl+WNnweqK4zg1umbDY8WM2GXR+Idh6GIaK+TvnRc9WRqrqhrKOtdoBiXQtCqA+BiLTcEULtqUQ==","tarball":"https://registry.npmjs.org/@accelbyte/healthcheck/-/healthcheck-1.0.4.tgz","fileCount":10,"unpackedSize":55668,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCex/q9O8+OnWOTX5vrjqQzuiNbPwoSi/4y9yAEayasqQIhAMVftY/feaVDkXMh+j9RpozEJU7p3g2qE4eEqwBvQJMm"}]},"_npmUser":{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"},"directories":{},"maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/healthcheck_1.0.4_1739334909843_0.9542105429558636"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-06T03:33:21.447Z","modified":"2025-02-12T04:35:10.259Z","1.0.0":"2025-02-06T03:33:21.801Z","1.0.1":"2025-02-06T04:34:52.655Z","1.0.2":"2025-02-06T04:44:13.064Z","1.0.3":"2025-02-06T07:04:28.298Z","1.0.4-0":"2025-02-11T04:22:45.006Z","1.0.4":"2025-02-12T04:35:10.041Z"},"author":{"name":"AccelByte Inc"},"license":"AccelByte License","keywords":[],"description":"This library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.","maintainers":[{"name":"accelbyteengineering","email":"engineering@accelbyte.net"},{"name":"accelbyteengineeringweb","email":"justice-web-team@accelbyte.net"}],"readme":"# healthcheck js/ts sdk\n\nThis library provides backend service  dependencies health check and its telemetry, used for service written in Javascript and Typescript.\n\nThe library will execute health check on demand or periodically in background for all dependencies\nregistered in `HealthCheck` class.\n\nThe result from library is in form of general json object that can be return as http response to health endpoint using any web framework.\n\n## Installation guide\n\n```\nyarn add @accelbyte/healthcheck\n```\n\n## Library usage\n\nInitial set up the HealthCheck object\n\n```typescript\nimport {\n  AlertLevel,\n  HealthCheck,\n  redisDependencyCheck,\n  s3DependencyCheck,\n  sqlDependencyCheck\n} from '@accelbyte/healthcheck'\n\n// instantiate health check object with service name and interval for periodic background dependency check\nconst healthCheck = new HealthCheck({\n  name: 'my-service',\n  checkIntervalSecond: 60,\n})\n\n// add dependency check using provided check function, available function: \n// - sqlDependencyCheck\n// - redisDependencyCheck\n// - s3DependencyCheck\nhealthCheck.addDependencyCheck(sqlDependencyCheck({\n    prisma: prismaClient,\n    name: 'postgresql',\n    // available values: Critical (P0), Important (P1), Utility (P2)\n    // is used to adjust the internal alerting priority when this dependency become unhealthy\n    alertLevel: AlertLevel.Critical,\n}))\n\n// add dependency check manually\nhealthCheck.addDependencyCheck({\n    name: 'my-dependency-1',\n    alertLevel: AlertLevel.Utility,\n    checkFunction: async () => {\n        // code to check for dependency\n        // resolve successfully for a healthy result, or\n        // throw error to indicate dependency unhealthy\n        if (!check()) {\n            throw 'dependency checking error'\n        }\n    }\n})\n\n// We need to expose the metrics emitted by this library to opentelemetry MeterProvider for service monitoring and alerting purpose\nhealthCheck.addMetrics(metricsStorage.meterProvider)\n\n// start periodic background check, the inverval is configured by checkIntervalSecond to every 60s above \nhealthCheck.startBackgroundCheck()\n```\n\nExample get the check result and return as response\n\n```typescript\nimport { ParameterizedContext } from 'koa'\n\nexport const healthzHandler = async (ctx: ParameterizedContext): Promise<void> => {\n    // get the result object from health check, results is a json object standard with other healthcheck library\n    const results = await healthCheck.getResult()\n    ctx.body = results\n    ctx.status = isHealthy ? 200 : 500\n}\n```\n\n## Contribute\n\nSet up the project dependencies\n\n```\nyarn install\n```\n\nTest written in `/tests` directory\n\nTo run unit test:\n\n```\nyarn test\n```\n\nBuild the library\n\n```\nyarn build\n```\n\nMake sure to copy `.env.example` to `.env` and update the `NPM_TOKEN` value, then commit and push your changes to the remote repository before building and publishing the library with:\n\n```sh\nsh release.sh\n```\n","readmeFilename":"README.md"}