@atomiqlabs/base 10.0.0-dev.3 → 10.0.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,9 @@ export declare enum MessageType {
3
3
  }
4
4
  export declare abstract class Message {
5
5
  abstract type: MessageType;
6
+ static deserializers: {
7
+ [type: number]: (obj: any) => Message;
8
+ };
6
9
  serialize(): any;
7
- static deserialize(message: any): any;
10
+ static deserialize(message: any): Message;
8
11
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Message = exports.MessageType = void 0;
4
- const SwapClaimWitnessMessage_1 = require("./SwapClaimWitnessMessage");
5
4
  var MessageType;
6
5
  (function (MessageType) {
7
6
  MessageType[MessageType["SWAP_CLAIM_WITNESS"] = 0] = "SWAP_CLAIM_WITNESS";
@@ -13,12 +12,10 @@ class Message {
13
12
  };
14
13
  }
15
14
  static deserialize(message) {
16
- switch (message.type) {
17
- case MessageType.SWAP_CLAIM_WITNESS:
18
- return SwapClaimWitnessMessage_1.SwapClaimWitnessMessage.deserialize(message);
19
- default:
20
- throw new Error("Unknown message type " + message.type);
21
- }
15
+ const deserializer = Message.deserializers[message.type];
16
+ if (deserializer == null)
17
+ throw new Error("Unknown message type " + message.type);
18
+ return deserializer(message);
22
19
  }
23
20
  }
24
21
  exports.Message = Message;
@@ -24,3 +24,4 @@ class SwapClaimWitnessMessage extends Message_1.Message {
24
24
  }
25
25
  }
26
26
  exports.SwapClaimWitnessMessage = SwapClaimWitnessMessage;
27
+ Message_1.Message.deserializers[Message_1.MessageType.SWAP_CLAIM_WITNESS] = SwapClaimWitnessMessage.deserialize;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomiqlabs/base",
3
- "version": "10.0.0-dev.3",
3
+ "version": "10.0.0-dev.4",
4
4
  "description": "Base classes and interfaces for atomiq protocol",
5
5
  "main": "./dist/index.js",
6
6
  "types:": "./dist/index.d.ts",
@@ -1,4 +1,3 @@
1
- import {SwapClaimWitnessMessage} from "./SwapClaimWitnessMessage";
2
1
 
3
2
  export enum MessageType {
4
3
  SWAP_CLAIM_WITNESS = 0,
@@ -9,19 +8,18 @@ export abstract class Message {
9
8
 
10
9
  abstract type: MessageType;
11
10
 
11
+ static deserializers: {[type: number]: (obj: any) => Message}
12
+
12
13
  serialize(): any {
13
14
  return {
14
15
  type: this.type
15
16
  }
16
17
  }
17
18
 
18
- static deserialize(message: any): any {
19
- switch(message.type) {
20
- case MessageType.SWAP_CLAIM_WITNESS:
21
- return SwapClaimWitnessMessage.deserialize(message);
22
- default:
23
- throw new Error("Unknown message type " + message.type);
24
- }
19
+ static deserialize(message: any): Message {
20
+ const deserializer = Message.deserializers[message.type];
21
+ if(deserializer==null) throw new Error("Unknown message type " + message.type);
22
+ return deserializer(message);
25
23
  }
26
24
 
27
25
  }
@@ -28,4 +28,6 @@ export class SwapClaimWitnessMessage<T extends SwapData> extends Message {
28
28
  return new SwapClaimWitnessMessage(SwapData.deserialize(obj.swapData), obj.witness);
29
29
  }
30
30
 
31
- }
31
+ }
32
+
33
+ Message.deserializers[MessageType.SWAP_CLAIM_WITNESS] = SwapClaimWitnessMessage.deserialize;