@msquared/pixel-streaming-client
Version:
Browser client for viewing pixel-streamed content from MSquared events
45 lines (44 loc) • 883 B
JavaScript
// src/errors.ts
function is(value, target = Error) {
if (typeof target === "function") {
return value instanceof target;
}
if (value instanceof Error) {
return value === target;
}
return false;
}
function wrap(cause) {
if (cause instanceof Error) {
return cause;
}
return new Error("unknown error", { cause });
}
function catch_(fn, ...errors) {
try {
return fn();
} catch (e) {
if (errors.length === 0) {
return wrap(e);
}
for (const error of errors) {
if (is(e, error)) {
return e;
}
}
throw e;
}
}
function as(value, target = Error) {
if (is(value, target)) {
return value;
}
if (value instanceof Error && value.cause !== void 0) {
return as(value.cause, target);
}
return void 0;
}
var errors_default = { is, wrap, catch: catch_, as };
export {
errors_default as default
};