@fullstory/server-api-client
Version:
The official FullStory server API client SDK for NodeJS.
55 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toError = exports.FSBaseError = exports.FSErrorName = void 0;
var FSErrorName;
(function (FSErrorName) {
FSErrorName["ERROR_UNKNOWN"] = "FS_UNKNOWN";
FSErrorName["ERROR_TIMEOUT"] = "FS_TIMEOUT";
FSErrorName["ERROR_MAX_RETRY"] = "FS_MAX_RETRY";
// for 429 rate limited
FSErrorName["ERROR_RATE_LIMITED"] = "FS_RATE_LIMITED";
// for non-2xx responses, except 429
FSErrorName["ERROR_FULLSTORY"] = "FS_FULLSTORY_API";
// for 2xx responses but unable to parse body into response object
FSErrorName["ERROR_PARSE_RESPONSE"] = "FS_ERROR_PARSE_RESPONSE";
FSErrorName["ERROR_INVALID_ARGUMENT"] = "FS_ERROR_INVALID_ARGUMENT";
})(FSErrorName = exports.FSErrorName || (exports.FSErrorName = {}));
class FSBaseError extends Error {
constructor(name, message, cause) {
super(message);
this.discriminator = 'FSError';
this.name = name;
this.message = message;
this.cause = toError(cause);
}
chain(err) {
this.prependStackTrace(err.stack);
return this;
}
canRetry() { return false; }
getRetryAfter() { return 0; }
prependStackTrace(additionalStack) {
if (additionalStack) {
this.stack = additionalStack + '\nFrom previous:\n' + this.stack;
}
}
setFSErrorPayload(payload) {
this.fsErrorPayload = payload;
}
addAdditionalProperties(additionalProps) {
// add all additional data, ignore if already set.
for (const key in additionalProps) {
if (!Object.prototype.hasOwnProperty.call(this, key)) {
this[key] = additionalProps[key];
}
}
}
}
exports.FSBaseError = FSBaseError;
function toError(e) {
if (!e)
return;
return e instanceof Error ? e : new Error(String(e));
}
exports.toError = toError;
//# sourceMappingURL=base.js.map