22 lines
843 B
JavaScript
22 lines
843 B
JavaScript
|
function _buildMessageForResponseErrors(data) {
|
||
|
return (`Request failed due to following response errors:\n` +
|
||
|
data.errors.map((e) => ` - ${e.message}`).join("\n"));
|
||
|
}
|
||
|
export class GraphqlResponseError extends Error {
|
||
|
constructor(request, headers, response) {
|
||
|
super(_buildMessageForResponseErrors(response));
|
||
|
this.request = request;
|
||
|
this.headers = headers;
|
||
|
this.response = response;
|
||
|
this.name = "GraphqlResponseError";
|
||
|
// Expose the errors and response data in their shorthand properties.
|
||
|
this.errors = response.errors;
|
||
|
this.data = response.data;
|
||
|
// Maintains proper stack trace (only available on V8)
|
||
|
/* istanbul ignore next */
|
||
|
if (Error.captureStackTrace) {
|
||
|
Error.captureStackTrace(this, this.constructor);
|
||
|
}
|
||
|
}
|
||
|
}
|