forked from dienianindya/gsi_ess_mobile
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.responseToError = void 0;
|
|
const _ = require("lodash");
|
|
const error_1 = require("./error");
|
|
function responseToError(response, body) {
|
|
if (response.statusCode < 400) {
|
|
return;
|
|
}
|
|
if (typeof body === "string") {
|
|
if (response.statusCode === 404) {
|
|
body = {
|
|
error: {
|
|
message: "Not Found",
|
|
},
|
|
};
|
|
}
|
|
else {
|
|
body = {
|
|
error: {
|
|
message: body,
|
|
},
|
|
};
|
|
}
|
|
}
|
|
if (typeof body !== "object") {
|
|
try {
|
|
body = JSON.parse(body);
|
|
}
|
|
catch (e) {
|
|
body = {};
|
|
}
|
|
}
|
|
if (!body.error) {
|
|
const errMessage = response.statusCode === 404 ? "Not Found" : "Unknown Error";
|
|
body.error = {
|
|
message: errMessage,
|
|
};
|
|
}
|
|
const message = "HTTP Error: " + response.statusCode + ", " + (body.error.message || body.error);
|
|
let exitCode;
|
|
if (response.statusCode >= 500) {
|
|
exitCode = 2;
|
|
}
|
|
else {
|
|
exitCode = 1;
|
|
}
|
|
_.unset(response, "request.headers");
|
|
return new error_1.FirebaseError(message, {
|
|
context: {
|
|
body: body,
|
|
response: response,
|
|
},
|
|
exit: exitCode,
|
|
status: response.statusCode,
|
|
});
|
|
}
|
|
exports.responseToError = responseToError;
|