UNPKG

@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
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" }); }