linkup-sdk
Version:
A Javascript Client SDK for the Linkup API
46 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.refineError = exports.concatErrorAndDetails = void 0;
const errors_1 = require("../errors");
const concatErrorAndDetails = (e) => {
const details = e.error?.details ?? [];
const errorMessage = [
e.error?.message ?? 'Unknown error',
...details.map(detail => detail.message),
].join(' ');
return errorMessage;
};
exports.concatErrorAndDetails = concatErrorAndDetails;
const refineError = (e) => {
const { statusCode, error } = e;
if (!error || typeof error !== 'object') {
return new errors_1.LinkupUnknownError(`An unknown error occurred: ${JSON.stringify(e)}`);
}
const { code, message } = error;
switch (statusCode) {
case 400:
if (code === 'SEARCH_QUERY_NO_RESULT') {
return new errors_1.LinkupNoResultError(message);
}
if (code === 'FETCH_ERROR') {
return new errors_1.LinkupFetchError(message);
}
return new errors_1.LinkupInvalidRequestError((0, exports.concatErrorAndDetails)(e));
case 401:
case 403:
return new errors_1.LinkupAuthenticationError(message);
case 429:
switch (code) {
case 'INSUFFICIENT_FUNDS_CREDITS':
return new errors_1.LinkupInsufficientCreditError(message);
case 'TOO_MANY_REQUESTS':
return new errors_1.LinkupTooManyRequestsError(message);
default:
return new errors_1.LinkupUnknownError(`An unknown error occurred: ${error.message}`);
}
default:
return new errors_1.LinkupUnknownError(`An unknown error occurred: ${error.message}`);
}
};
exports.refineError = refineError;
//# sourceMappingURL=refine-error.utils.js.map