UNPKG

async-streamify

Version:

Stream and serialize nested promises and async iterables over HTTP, workers, etc

41 lines (40 loc) 1.15 kB
export const name = "error"; export function testNative(target) { return target instanceof Error; } export function serialize(target) { /* // consider something like: (for additional properties?) Object.getOwnPropertyNames(value).forEach(function (propName) { error[propName] = value[propName]; }); // */ return { $error: { name: target.name, message: target.message, stack: target.stack, }, }; } export function maybeSerialize(target) { return testNative(target) ? serialize(target) : target; } export function testSerialized(target) { return typeof target === "object" && target !== null && Object.keys(target).length === 1 && "$error" in target; } export function deserialize(serialized) { const $error = serialized.$error; const error = new Error($error.message); error.name = $error.name; if ($error.stack) error.stack = $error.stack; return error; } export function maybeDeserialize(serialized) { return testSerialized(serialized) ? deserialize(serialized) : serialized; }