@storm-stack/errors
Version:
This package includes a base error class and various utility functions for working with errors.
36 lines (35 loc) • 985 B
JavaScript
import { isSetObject } from "@storm-stack/types";
import { ErrorCode } from "../errors.mjs";
import { StormError } from "../storm-error.mjs";
export function serializeStormError(error) {
return {
code: error.code,
message: error.message,
stack: error.stack,
data: error.data,
cause: error.cause ? serializeStormError(error.cause) : void 0
};
}
export function deserializeStormError(json) {
if (isSetObject(json)) {
const { code, message, stack, data, cause } = json;
const error = new StormError(
code ? String(code) : ErrorCode.internal_server_error,
{
message: String(message),
stack: String(stack),
data: String(data)
}
);
if (cause) {
const errorCause = deserializeStormError(cause);
if (errorCause) {
error.cause = errorCause;
}
}
return error;
}
return new StormError(ErrorCode.internal_server_error, {
message: "Could not read server response"
});
}