mcbe-ipc 3.0.1 → 3.0.2

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.
@@ -35,11 +35,11 @@ export declare namespace DirectIPC {
35
35
  get to(): string;
36
36
  constructor(from: string, to: string, encryption: string | false);
37
37
  terminate(notify?: boolean): void;
38
- send<T>(channel: string, serializer: PROTO.Serializable<T>, value: T): void;
39
- invoke<T, R>(channel: string, serializer: PROTO.Serializable<T>, value: T, deserializer: PROTO.Serializable<R>): Promise<R>;
40
- on<T>(channel: string, deserializer: PROTO.Serializable<T>, listener: (value: T) => void): () => void;
41
- once<T>(channel: string, deserializer: PROTO.Serializable<T>, listener: (value: T) => void): () => void;
42
- handle<T, R>(channel: string, deserializer: PROTO.Serializable<T>, serializer: PROTO.Serializable<R>, listener: (value: T) => R): () => void;
38
+ send<S extends PROTO.Serializable<T>, T>(channel: string, serializer: S & PROTO.Serializable<T>, value: T): void;
39
+ invoke<TS extends PROTO.Serializable<T>, T, RS extends PROTO.Serializable<R>, R>(channel: string, serializer: TS & PROTO.Serializable<T>, value: T, deserializer: RS & PROTO.Serializable<R>): Promise<R>;
40
+ on<S extends PROTO.Serializable<T>, T>(channel: string, deserializer: S & PROTO.Serializable<T>, listener: (value: T) => void): () => void;
41
+ once<S extends PROTO.Serializable<T>, T>(channel: string, deserializer: S & PROTO.Serializable<T>, listener: (value: T) => void): () => void;
42
+ handle<TS extends PROTO.Serializable<T>, T, RS extends PROTO.Serializable<R>, R>(channel: string, deserializer: TS & PROTO.Serializable<T>, serializer: RS & PROTO.Serializable<R>, listener: (value: T) => R): () => void;
43
43
  }
44
44
  class ConnectionManager {
45
45
  private readonly _id;
@@ -51,11 +51,11 @@ export declare namespace DirectIPC {
51
51
  get id(): string;
52
52
  constructor(id: string, force_encryption?: boolean);
53
53
  connect(to: string, encrypted?: boolean, timeout?: number): Promise<Connection>;
54
- send<T>(channel: string, serializer: PROTO.Serializable<T>, value: T): void;
55
- invoke<T, R>(channel: string, serializer: PROTO.Serializable<T>, value: T, deserializer: PROTO.Serializable<R>): Promise<R>[];
56
- on<T>(channel: string, deserializer: PROTO.Serializable<T>, listener: (value: T) => void): () => void;
57
- once<T>(channel: string, deserializer: PROTO.Serializable<T>, listener: (value: T) => void): () => void;
58
- handle<T, R>(channel: string, deserializer: PROTO.Serializable<T>, serializer: PROTO.Serializable<R>, listener: (value: T) => R): () => void;
54
+ send<S extends PROTO.Serializable<T>, T>(channel: string, serializer: S & PROTO.Serializable<T>, value: T): void;
55
+ invoke<TS extends PROTO.Serializable<T>, T, RS extends PROTO.Serializable<R>, R>(channel: string, serializer: TS & PROTO.Serializable<T>, value: T, deserializer: RS & PROTO.Serializable<R>): Promise<R>[];
56
+ on<S extends PROTO.Serializable<T>, T>(channel: string, deserializer: S & PROTO.Serializable<T>, listener: (value: T) => void): () => void;
57
+ once<S extends PROTO.Serializable<T>, T>(channel: string, deserializer: S & PROTO.Serializable<T>, listener: (value: T) => void): () => void;
58
+ handle<TS extends PROTO.Serializable<T>, T, RS extends PROTO.Serializable<R>, R>(channel: string, deserializer: TS & PROTO.Serializable<T>, serializer: RS & PROTO.Serializable<R>, listener: (value: T) => R): () => void;
59
59
  }
60
60
  }
61
61
  export default DirectIPC;
package/dist/ipc.d.ts CHANGED
@@ -47,6 +47,8 @@ export declare namespace PROTO {
47
47
  function deserialize(str: string): Generator<void, PROTO.ByteQueue, void>;
48
48
  }
49
49
  const Void: PROTO.Serializable<void>;
50
+ const Null: PROTO.Serializable<null>;
51
+ const Undefined: PROTO.Serializable<undefined>;
50
52
  const Int8: PROTO.Serializable<number>;
51
53
  const Int16: PROTO.Serializable<number>;
52
54
  const Int32: PROTO.Serializable<number>;
@@ -83,19 +85,19 @@ export declare namespace PROTO {
83
85
  export declare namespace NET {
84
86
  function serialize(byte_queue: PROTO.ByteQueue, max_size?: number): Generator<void, string[], void>;
85
87
  function deserialize(strings: string[]): Generator<void, PROTO.ByteQueue, void>;
86
- function emit<T>(endpoint: string, serializer: PROTO.Serializable<T>, value: T): Generator<void, void, void>;
87
- function listen<T>(endpoint: string, serializer: PROTO.Serializable<T>, callback: (value: T) => Generator<void, void, void>): () => void;
88
+ function emit<S extends PROTO.Serializable<T>, T>(endpoint: string, serializer: S & PROTO.Serializable<T>, value: T): Generator<void, void, void>;
89
+ function listen<T, S extends PROTO.Serializable<T>>(endpoint: string, serializer: S & PROTO.Serializable<T>, callback: (value: T) => Generator<void, void, void>): () => void;
88
90
  }
89
91
  export declare namespace IPC {
90
92
  /** Sends a message with `args` to `channel` */
91
- function send<T>(channel: string, serializer: PROTO.Serializable<T>, value: T): void;
93
+ function send<S extends PROTO.Serializable<T>, T>(channel: string, serializer: S & PROTO.Serializable<T>, value: T): void;
92
94
  /** Sends an `invoke` message through IPC, and expects a result asynchronously. */
93
- function invoke<T, R>(channel: string, serializer: PROTO.Serializable<T>, value: T, deserializer: PROTO.Serializable<R>): Promise<R>;
95
+ function invoke<TS extends PROTO.Serializable<T>, T, RS extends PROTO.Serializable<R>, R>(channel: string, serializer: TS & PROTO.Serializable<T>, value: T, deserializer: RS & PROTO.Serializable<R>): Promise<R>;
94
96
  /** Listens to `channel`. When a new message arrives, `listener` will be called with `listener(args)`. */
95
- function on<T>(channel: string, deserializer: PROTO.Serializable<T>, listener: (value: T) => void): () => void;
97
+ function on<S extends PROTO.Serializable<T>, T>(channel: string, deserializer: S & PROTO.Serializable<T>, listener: (value: T) => void): () => void;
96
98
  /** Listens to `channel` once. When a new message arrives, `listener` will be called with `listener(args)`, and then removed. */
97
- function once<T>(channel: string, deserializer: PROTO.Serializable<T>, listener: (value: T) => void): () => void;
99
+ function once<S extends PROTO.Serializable<T>, T>(channel: string, deserializer: S & PROTO.Serializable<T>, listener: (value: T) => void): () => void;
98
100
  /** Adds a handler for an `invoke` IPC. This handler will be called whenever `invoke(channel, ...args)` is called */
99
- function handle<T, R>(channel: string, deserializer: PROTO.Serializable<T>, serializer: PROTO.Serializable<R>, listener: (value: T) => R): () => void;
101
+ function handle<TS extends PROTO.Serializable<T>, T, RS extends PROTO.Serializable<R>, R>(channel: string, deserializer: TS & PROTO.Serializable<T>, serializer: RS & PROTO.Serializable<R>, listener: (value: T) => R): () => void;
100
102
  }
101
103
  export default IPC;
package/dist/ipc.js CHANGED
@@ -111,6 +111,18 @@ export var PROTO;
111
111
  *serialize() { },
112
112
  *deserialize() { }
113
113
  };
114
+ PROTO.Null = {
115
+ *serialize() { },
116
+ *deserialize() {
117
+ return null;
118
+ }
119
+ };
120
+ PROTO.Undefined = {
121
+ *serialize() { },
122
+ *deserialize() {
123
+ return undefined;
124
+ }
125
+ };
114
126
  PROTO.Int8 = {
115
127
  *serialize(value, stream) {
116
128
  const length = 1;
package/dist/proto.d.ts CHANGED
@@ -47,6 +47,8 @@ export declare namespace PROTO {
47
47
  function deserialize(str: string): Generator<void, PROTO.ByteQueue, void>;
48
48
  }
49
49
  const Void: PROTO.Serializable<void>;
50
+ const Null: PROTO.Serializable<null>;
51
+ const Undefined: PROTO.Serializable<undefined>;
50
52
  const Int8: PROTO.Serializable<number>;
51
53
  const Int16: PROTO.Serializable<number>;
52
54
  const Int32: PROTO.Serializable<number>;
package/dist/proto.js CHANGED
@@ -110,6 +110,18 @@ export var PROTO;
110
110
  *serialize() { },
111
111
  *deserialize() { }
112
112
  };
113
+ PROTO.Null = {
114
+ *serialize() { },
115
+ *deserialize() {
116
+ return null;
117
+ }
118
+ };
119
+ PROTO.Undefined = {
120
+ *serialize() { },
121
+ *deserialize() {
122
+ return undefined;
123
+ }
124
+ };
113
125
  PROTO.Int8 = {
114
126
  *serialize(value, stream) {
115
127
  const length = 1;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "OmniacDev",
4
4
  "description": "IPC system for MCBE Script API projects",
5
5
  "license": "MIT",
6
- "version": "3.0.1",
6
+ "version": "3.0.2",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "https://github.com/OmniacDev/mcbe-ipc.git"