Return HttpClientError instead of Error, have properties for status and result

This commit is contained in:
Dave Hadka 2020-08-17 21:16:30 -05:00
parent ab10999b09
commit 55850f1529
4 changed files with 19 additions and 9 deletions

View File

@ -1,5 +1,8 @@
## Releases
## 1.0.9
Throw HttpClientError instead of a generic Error from the \<verb>Json() helper methods when the server responds with a non-successful status code.
## 1.0.7
Update NPM dependencies and add 429 to the list of HttpCodes

View File

@ -70,6 +70,18 @@ const RetryableHttpVerbs: string[] = ['OPTIONS', 'GET', 'DELETE', 'HEAD']
const ExponentialBackoffCeiling = 10
const ExponentialBackoffTimeSlice = 5
export class HttpClientError extends Error {
constructor(message: string, statusCode: number) {
super(message)
this.name = 'HttpClientError'
this.statusCode = statusCode
Object.setPrototypeOf(this, HttpClientError.prototype)
}
public statusCode: number
public result?: any
}
export class HttpClientResponse implements ifm.IHttpClientResponse {
constructor(message: http.IncomingMessage) {
this.message = message
@ -733,13 +745,8 @@ export class HttpClient {
msg = 'Failed request: (' + statusCode + ')'
}
let err: Error = new Error(msg)
// attach statusCode and body obj (if available) to the error object
err['statusCode'] = statusCode
if (response.result) {
err['result'] = response.result
}
let err = new HttpClientError(msg, statusCode)
err.result = response.result
reject(err)
} else {

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@actions/http-client",
"version": "1.0.7",
"version": "1.0.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@actions/http-client",
"version": "1.0.7",
"version": "1.0.9",
"description": "Actions Http Client",
"main": "index.js",
"scripts": {