@smash-sdk/core
Version:
Smash Sdk Core
78 lines (77 loc) • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InvalidHostError = exports.InvalidRegionError = exports.InvalidRegionOrHostError = exports.InvalidSdkConfigurationError = exports.ConnectionAbortedError = exports.TimeoutError = exports.NetworkError = exports.UnknownError = exports.SDKError = void 0;
class SDKError extends Error {
constructor(error) {
super();
if (typeof error === 'string') {
this.name = "SDKError";
this.message = error;
}
else if (error instanceof Error) {
this.name = error.name;
this.message = error.message;
this.stack = error.stack;
}
else if (error.name) {
this.message = error.error;
Object.assign(this, error);
this.stack = SDKError.stringifiedStack();
}
else {
this.name = 'Unknown SDK error';
this.message = 'Unknown SDK error';
}
}
static stack() {
if (Array.isArray(new Error().stack)) {
const prepareStackTrace = Error.prepareStackTrace;
Error.prepareStackTrace = (_, stack) => stack;
const stack = (new Error().stack).filter(s => !!s.getFileName());
while (stack[0].getFileName().indexOf("sdkError") >= 0) {
stack.shift();
}
while (stack[0].getFileName().indexOf("@smash-sdk") >= 0) {
stack.shift();
}
Error.prepareStackTrace = prepareStackTrace;
return stack;
}
else {
return new Error().stack;
}
}
static stringifiedStack() {
if (Array.isArray(SDKError.stack())) {
return SDKError.stack().join("\n");
}
else {
return new Error().stack;
}
}
}
exports.SDKError = SDKError;
class UnknownError extends SDKError {
}
exports.UnknownError = UnknownError;
class NetworkError extends SDKError {
}
exports.NetworkError = NetworkError;
class TimeoutError extends SDKError {
}
exports.TimeoutError = TimeoutError;
class ConnectionAbortedError extends SDKError {
}
exports.ConnectionAbortedError = ConnectionAbortedError;
class InvalidSdkConfigurationError extends SDKError {
}
exports.InvalidSdkConfigurationError = InvalidSdkConfigurationError;
class InvalidRegionOrHostError extends InvalidSdkConfigurationError {
}
exports.InvalidRegionOrHostError = InvalidRegionOrHostError;
class InvalidRegionError extends InvalidRegionOrHostError {
}
exports.InvalidRegionError = InvalidRegionError;
class InvalidHostError extends InvalidRegionOrHostError {
}
exports.InvalidHostError = InvalidHostError;