@voiceflow/common
Advanced tools
Comparing version 3.0.0 to 3.1.0
@@ -100,23 +100,41 @@ 'use strict'; | ||
*/ | ||
self.route = (dataPromise, successCodeOverride, failureCodeOverride) => async (req, res, next) => { | ||
if (successCodeOverride && !Object.values(VError.HTTP_STATUS).includes(successCodeOverride)) { | ||
log.error('successCodeOverride must be a valid HTTP code, ignoring'); | ||
successCodeOverride = undefined; | ||
} | ||
self.route = (dataPromise, successCodeOverride, failureCodeOverride) => { | ||
dataPromise.route = true; | ||
if (failureCodeOverride && !Object.values(VError.HTTP_STATUS).includes(failureCodeOverride)) { | ||
log.error('failureCodeOverride must be a valid HTTP code, ignoring'); | ||
failureCodeOverride = undefined; | ||
} | ||
return async (req, res, next) => { | ||
if (successCodeOverride && !Object.values(VError.HTTP_STATUS).includes(successCodeOverride)) { | ||
log.error('successCodeOverride must be a valid HTTP code, ignoring'); | ||
successCodeOverride = undefined; | ||
} | ||
await Promise.try(() => (_.isFunction(dataPromise) ? dataPromise(req, res, next) : dataPromise)) | ||
.then((data) => { | ||
if (data instanceof Error) { | ||
return self._errorResponse(data, failureCodeOverride); | ||
} | ||
if (failureCodeOverride && !Object.values(VError.HTTP_STATUS).includes(failureCodeOverride)) { | ||
log.error('failureCodeOverride must be a valid HTTP code, ignoring'); | ||
failureCodeOverride = undefined; | ||
} | ||
return self._okResponse(data, successCodeOverride); | ||
}) | ||
.catch((err) => self._errorResponse(err, failureCodeOverride)) | ||
.then((output) => res.status(output.code).json(output.data)); | ||
let nextCalled = null; | ||
const nextCheck = (route) => { | ||
nextCalled = () => next(route); | ||
}; | ||
await Promise.try(() => (_.isFunction(dataPromise) ? dataPromise(req, res, nextCheck) : dataPromise)) | ||
.then((data) => { | ||
if (data instanceof Error) { | ||
return self._errorResponse(data, failureCodeOverride); | ||
} | ||
return self._okResponse(data, successCodeOverride); | ||
}) | ||
.catch((err) => self._errorResponse(err, failureCodeOverride)) | ||
.then((output) => { | ||
if (res.headerSent) { | ||
return; | ||
} | ||
if (nextCalled) { | ||
nextCalled(); | ||
return; | ||
} | ||
res.status(output.code).json(output.data); | ||
}); | ||
}; | ||
}; | ||
@@ -123,0 +141,0 @@ |
{ | ||
"name": "@voiceflow/common", | ||
"description": "Junk drawer of utility functions", | ||
"version": "3.0.0", | ||
"version": "3.1.0", | ||
"author": "Voiceflow", | ||
@@ -16,3 +16,3 @@ "bugs": { | ||
"@voiceflow/verror": "^1.1.0", | ||
"bluebird": "^3.5.4", | ||
"bluebird": "^3.5.5", | ||
"bunyan": "^1.8.12", | ||
@@ -35,2 +35,3 @@ "bunyan-prettystream": "^0.1.3", | ||
"eslint": "^5.16.0", | ||
"express": "^4.17.1", | ||
"fixpack": "^2.3.1", | ||
@@ -44,3 +45,4 @@ "husky": "^2.3.0", | ||
"semantic-release": "^15.13.3", | ||
"sinon": "^7.3.2" | ||
"sinon": "^7.3.2", | ||
"supertest": "^4.0.2" | ||
}, | ||
@@ -47,0 +49,0 @@ "files": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
12803
308
21
Updatedbluebird@^3.5.5