UNPKG

1.51 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3function extendSerializer(extend, implementation) {
4 const fallbackDeserializer = extend.deserialize.bind(extend);
5 const fallbackSerializer = extend.serialize.bind(extend);
6 return {
7 deserialize(message) {
8 return implementation.deserialize(message, fallbackDeserializer);
9 },
10 serialize(input) {
11 return implementation.serialize(input, fallbackSerializer);
12 }
13 };
14}
15exports.extendSerializer = extendSerializer;
16const DefaultErrorSerializer = {
17 deserialize(message) {
18 return Object.assign(Error(message.message), {
19 name: message.name,
20 stack: message.stack
21 });
22 },
23 serialize(error) {
24 return {
25 __error_marker: "$$error",
26 message: error.message,
27 name: error.name,
28 stack: error.stack
29 };
30 }
31};
32const isSerializedError = (thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error";
33exports.DefaultSerializer = {
34 deserialize(message) {
35 if (isSerializedError(message)) {
36 return DefaultErrorSerializer.deserialize(message);
37 }
38 else {
39 return message;
40 }
41 },
42 serialize(input) {
43 if (input instanceof Error) {
44 return DefaultErrorSerializer.serialize(input);
45 }
46 else {
47 return input;
48 }
49 }
50};