@flatfile/safe-api
Version:
Flatfile Safe API client with streaming capabilities
67 lines (66 loc) • 2.32 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RetryError = exports.NotFoundError = exports.UnauthorizedError = exports.PayloadError = exports.RedirectError = exports.RateError = exports.TimeoutError = exports.ServerError = exports.FatalError = exports.RecoverableError = exports.RequestError = void 0;
const extendable_error_1 = __importDefault(require("extendable-error"));
const rate_limit_1 = require("../rate-limit");
class RequestError extends extendable_error_1.default {
constructor(req, res, raw) {
// todo: make a more creative error message
super("Request failed." + (raw ? " Raw Response: " + raw.substring(0, 2000) : ""));
this.req = req;
this.res = res;
this.raw = raw;
this.url = new URL(req.buildUrl());
}
}
exports.RequestError = RequestError;
class RecoverableError extends RequestError {
}
exports.RecoverableError = RecoverableError;
class FatalError extends RequestError {
}
exports.FatalError = FatalError;
/** Recoverable errors **/
class ServerError extends RecoverableError {
}
exports.ServerError = ServerError;
class TimeoutError extends RecoverableError {
}
exports.TimeoutError = TimeoutError;
class RateError extends RecoverableError {
constructor() {
super(...arguments);
this.rateLimitManager = rate_limit_1.RateLimitManager.getInstance();
}
recoverIn() {
return this.rateLimitManager.getRetryDelay(this.res.headers);
}
}
exports.RateError = RateError;
class RedirectError extends RecoverableError {
toUrl() {
// analyze the response to determine the redirect url
}
}
exports.RedirectError = RedirectError;
/** Unrecoverable errors **/
class PayloadError extends FatalError {
}
exports.PayloadError = PayloadError;
class UnauthorizedError extends FatalError {
}
exports.UnauthorizedError = UnauthorizedError;
class NotFoundError extends FatalError {
}
exports.NotFoundError = NotFoundError;
class RetryError extends FatalError {
constructor(req, originalError) {
super(req, {});
this.req = req;
this.originalError = originalError;
}
}
exports.RetryError = RetryError;