UNPKG

async-streamify

Version:

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

50 lines (49 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.name = void 0; exports.testNative = testNative; exports.serialize = serialize; exports.maybeSerialize = maybeSerialize; exports.testSerialized = testSerialized; exports.deserialize = deserialize; exports.maybeDeserialize = maybeDeserialize; exports.name = "error"; function testNative(target) { return target instanceof Error; } 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, }, }; } function maybeSerialize(target) { return testNative(target) ? serialize(target) : target; } function testSerialized(target) { return typeof target === "object" && target !== null && Object.keys(target).length === 1 && "$error" in target; } 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; } function maybeDeserialize(serialized) { return testSerialized(serialized) ? deserialize(serialized) : serialized; }