Socket
Socket
Sign inDemoInstall

@godaddy/terminus

Package Overview
Dependencies
Maintainers
13
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@godaddy/terminus - npm Package Compare versions

Comparing version 4.3.1 to 4.4.0

example/cassandra/package-lock.json

2

example/cassandra/package.json

@@ -13,4 +13,4 @@ {

"dependencies": {
"cassandra-driver": "^3.5.0"
"cassandra-driver": "^3.6.0"
}
}

@@ -12,4 +12,4 @@ {

"dependencies": {
"mysql": "^2.15.0"
"mysql": "^2.18.1"
}
}

@@ -12,4 +12,4 @@ {

"dependencies": {
"pg": "^7.4.1"
"pg": "^7.18.2"
}
}

@@ -65,23 +65,34 @@ 'use strict'

server.listeners('request').forEach((listener) => {
server.removeListener('request', listener)
server.on('request', async (req, res) => {
let hasSetHandler = false
const createHandler = (listener) => {
const check = hasSetHandler ? () => {} : async (healthCheck, res) => {
if (state.isShuttingDown) {
return sendFailure(res, { onSendFailureDuringShutdown })
}
let info
try {
info = await healthCheck()
} catch (error) {
logger('healthcheck failed', error)
return sendFailure(res, { error: error.causes })
}
return sendSuccess(res, { info, verbatim: healthChecks.verbatim })
}
hasSetHandler = true
return async (req, res) => {
const url = caseInsensitive ? req.url.toLowerCase() : req.url
const healthCheck = healthChecks[url]
if (healthCheck) {
if (state.isShuttingDown) {
return sendFailure(res, { onSendFailureDuringShutdown })
}
let info
try {
info = await healthCheck()
} catch (error) {
logger('healthcheck failed', error)
return sendFailure(res, { error: error.causes })
}
return sendSuccess(res, { info, verbatim: healthChecks.verbatim })
return check(healthCheck, res)
} else {
listener(req, res)
}
})
}
}
server.listeners('request').forEach((listener) => {
server.removeListener('request', listener)
server.on('request', createHandler(listener))
})

@@ -88,0 +99,0 @@ }

@@ -105,2 +105,31 @@ 'use strict'

it('do not send multiple responses for the same request', async () => {
let healthCheckRanTimes = 0
let hasHandlerCalled = false
let hasUnhandledRejection = false
process.once('unhandledRejection', () => {
hasUnhandledRejection = true;
})
server.on('request', () => {
hasHandlerCalled = true
})
createTerminus(server, {
healthChecks: {
'/healthCheck': () => {
healthCheckRanTimes++
return Promise.resolve()
}
},
})
server.listen(8000)
await fetch('http://localhost:8000/healthCheck')
expect(hasUnhandledRejection).to.eql(false)
expect(healthCheckRanTimes).to.eql(1)
expect(hasHandlerCalled).to.eql(false)
})
it('includes info on resolve', async () => {

@@ -107,0 +136,0 @@ let onHealthCheckRan = false

{
"name": "@godaddy/terminus",
"version": "4.3.1",
"version": "4.4.0",
"description": "",

@@ -23,4 +23,4 @@ "main": "index.js",

"dependencies": {
"es6-promisify": "^6.0.0",
"stoppable": "^1.0.5"
"es6-promisify": "^6.0.2",
"stoppable": "^1.1.0"
},

@@ -33,7 +33,7 @@ "devDependencies": {

"express": "^4.16.2",
"mocha": "^6.0.0",
"mocha": "^7.0.1",
"node-fetch": "^2.0.0",
"nyc": "^14.0.0",
"nyc": "^15.0.0",
"pre-commit": "^1.2.2",
"semantic-release": "^15.5.1",
"semantic-release": "^17.0.0",
"standard": "^14.0.0",

@@ -40,0 +40,0 @@ "supertest": "^4.0.0",

@@ -72,3 +72,3 @@

// both
logger // [optional] logger function to be called with errors
logger // [optional] logger function to be called with errors. Example logger call: ('error happened during shutdown', error). See terminus.js for more details.
};

@@ -99,3 +99,3 @@

if (errors.length) {
throw new HealthCheckError('healtcheck failed', errors)
throw new HealthCheckError('healthcheck failed', errors)
}

@@ -102,0 +102,0 @@ })

@@ -10,4 +10,5 @@ declare module "@godaddy/terminus" {

export interface HealthCheckMap {
[key: string]: HealthCheck;
export type HealthCheckMap = {
verbatim?: boolean;
[key: string]: HealthCheck | boolean;
}

@@ -14,0 +15,0 @@

@@ -28,3 +28,4 @@ import * as http from "http";

healthChecks: {
"/healthcheck": healthcheck
"/healthcheck": healthcheck,
verbatim: true
},

@@ -31,0 +32,0 @@ timeout: 1000,

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc