scrapegraph-js
Version:
Scrape and extract structured data from a webpage using ScrapeGraphAI's APIs.
45 lines (38 loc) • 1.21 kB
JavaScript
class HttpError extends Error {
constructor(statusCode, title, data) {
super(HttpError.makeMessage(statusCode, title, data));
this.statusCode = statusCode;
this.title = title;
this.info = data;
}
static makeMessage(statusCode, title, data) {
let message = '';
message += statusCode ? `${statusCode} - ` : '(unknown status code) - ';
message += title ? `${title} - ` : '(unknown error message) - ';
message += data.detail
? 'Error located in: ' + `${JSON.stringify(data.detail[0].loc)}` + ', ' + `${data.detail[0].msg}`
: data.error
? `${data.error}`
: '(unknown error detail)';
return message;
}
}
class NetworkError extends Error {
constructor(message) {
super(message);
}
}
class UnexpectedError extends Error {
constructor(message) {
super(message);
}
}
export default function handleError(error) {
if (error.response) {
throw new HttpError(error.response.status, error.response.statusText, error.response.data);
} else if (error.request) {
throw new NetworkError('Impossible to contact the server. Check your internet connection.');
} else {
throw new UnexpectedError(`${error.message}`);
}
}