@proj-airi/server-sdk 0.1.2 → 0.1.3
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.
- package/dist/index.cjs +28 -7
- package/dist/index.d.cts +4 -1
- package/dist/index.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.mjs +28 -7
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -9,16 +9,37 @@ const WebSocket__default = /*#__PURE__*/_interopDefaultCompat(WebSocket);
|
|
|
9
9
|
|
|
10
10
|
class Client {
|
|
11
11
|
websocket;
|
|
12
|
+
eventListeners = /* @__PURE__ */ new Map();
|
|
12
13
|
constructor(options) {
|
|
13
14
|
const opts = defu.defu(options, { url: "ws://localhost:6121/ws", possibleEvents: [] });
|
|
14
15
|
this.websocket = new WebSocket__default(opts.url);
|
|
15
|
-
this.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
this.websocket.onmessage = this.handleMessage.bind(this);
|
|
17
|
+
this.websocket.onopen = () => {
|
|
18
|
+
this.send({
|
|
19
|
+
type: "module:announce",
|
|
20
|
+
data: {
|
|
21
|
+
name: opts.name,
|
|
22
|
+
possibleEvents: opts.possibleEvents
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async handleMessage(event) {
|
|
28
|
+
const data = JSON.parse(event.data);
|
|
29
|
+
const listeners = this.eventListeners.get(data.type);
|
|
30
|
+
if (!listeners)
|
|
31
|
+
return;
|
|
32
|
+
for (const listener of listeners) {
|
|
33
|
+
await listener(data);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
onEvent(event, callback) {
|
|
37
|
+
if (!this.eventListeners.get(event)) {
|
|
38
|
+
this.eventListeners.set(event, []);
|
|
39
|
+
}
|
|
40
|
+
const listeners = this.eventListeners.get(event);
|
|
41
|
+
listeners.push(callback);
|
|
42
|
+
this.eventListeners.set(event, listeners);
|
|
22
43
|
}
|
|
23
44
|
send(data) {
|
|
24
45
|
this.websocket.send(JSON.stringify(data));
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WebSocketEvents, WebSocketEvent } from '@proj-airi/server-shared/types';
|
|
1
|
+
import { WebSocketEvents, WebSocketBaseEvent, WebSocketEvent } from '@proj-airi/server-shared/types';
|
|
2
2
|
import { Blob } from 'node:buffer';
|
|
3
3
|
|
|
4
4
|
interface ClientOptions {
|
|
@@ -8,7 +8,10 @@ interface ClientOptions {
|
|
|
8
8
|
}
|
|
9
9
|
declare class Client {
|
|
10
10
|
private websocket;
|
|
11
|
+
private eventListeners;
|
|
11
12
|
constructor(options: ClientOptions);
|
|
13
|
+
private handleMessage;
|
|
14
|
+
onEvent<E extends keyof WebSocketEvents>(event: E, callback: (data: WebSocketBaseEvent<E, WebSocketEvents[E]>) => void | Promise<void>): void;
|
|
12
15
|
send(data: WebSocketEvent): void;
|
|
13
16
|
sendRaw(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
14
17
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WebSocketEvents, WebSocketEvent } from '@proj-airi/server-shared/types';
|
|
1
|
+
import { WebSocketEvents, WebSocketBaseEvent, WebSocketEvent } from '@proj-airi/server-shared/types';
|
|
2
2
|
import { Blob } from 'node:buffer';
|
|
3
3
|
|
|
4
4
|
interface ClientOptions {
|
|
@@ -8,7 +8,10 @@ interface ClientOptions {
|
|
|
8
8
|
}
|
|
9
9
|
declare class Client {
|
|
10
10
|
private websocket;
|
|
11
|
+
private eventListeners;
|
|
11
12
|
constructor(options: ClientOptions);
|
|
13
|
+
private handleMessage;
|
|
14
|
+
onEvent<E extends keyof WebSocketEvents>(event: E, callback: (data: WebSocketBaseEvent<E, WebSocketEvents[E]>) => void | Promise<void>): void;
|
|
12
15
|
send(data: WebSocketEvent): void;
|
|
13
16
|
sendRaw(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
14
17
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WebSocketEvents, WebSocketEvent } from '@proj-airi/server-shared/types';
|
|
1
|
+
import { WebSocketEvents, WebSocketBaseEvent, WebSocketEvent } from '@proj-airi/server-shared/types';
|
|
2
2
|
import { Blob } from 'node:buffer';
|
|
3
3
|
|
|
4
4
|
interface ClientOptions {
|
|
@@ -8,7 +8,10 @@ interface ClientOptions {
|
|
|
8
8
|
}
|
|
9
9
|
declare class Client {
|
|
10
10
|
private websocket;
|
|
11
|
+
private eventListeners;
|
|
11
12
|
constructor(options: ClientOptions);
|
|
13
|
+
private handleMessage;
|
|
14
|
+
onEvent<E extends keyof WebSocketEvents>(event: E, callback: (data: WebSocketBaseEvent<E, WebSocketEvents[E]>) => void | Promise<void>): void;
|
|
12
15
|
send(data: WebSocketEvent): void;
|
|
13
16
|
sendRaw(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
14
17
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -3,16 +3,37 @@ import { defu } from 'defu';
|
|
|
3
3
|
|
|
4
4
|
class Client {
|
|
5
5
|
websocket;
|
|
6
|
+
eventListeners = /* @__PURE__ */ new Map();
|
|
6
7
|
constructor(options) {
|
|
7
8
|
const opts = defu(options, { url: "ws://localhost:6121/ws", possibleEvents: [] });
|
|
8
9
|
this.websocket = new WebSocket(opts.url);
|
|
9
|
-
this.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
this.websocket.onmessage = this.handleMessage.bind(this);
|
|
11
|
+
this.websocket.onopen = () => {
|
|
12
|
+
this.send({
|
|
13
|
+
type: "module:announce",
|
|
14
|
+
data: {
|
|
15
|
+
name: opts.name,
|
|
16
|
+
possibleEvents: opts.possibleEvents
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async handleMessage(event) {
|
|
22
|
+
const data = JSON.parse(event.data);
|
|
23
|
+
const listeners = this.eventListeners.get(data.type);
|
|
24
|
+
if (!listeners)
|
|
25
|
+
return;
|
|
26
|
+
for (const listener of listeners) {
|
|
27
|
+
await listener(data);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
onEvent(event, callback) {
|
|
31
|
+
if (!this.eventListeners.get(event)) {
|
|
32
|
+
this.eventListeners.set(event, []);
|
|
33
|
+
}
|
|
34
|
+
const listeners = this.eventListeners.get(event);
|
|
35
|
+
listeners.push(callback);
|
|
36
|
+
this.eventListeners.set(event, listeners);
|
|
16
37
|
}
|
|
17
38
|
send(data) {
|
|
18
39
|
this.websocket.send(JSON.stringify(data));
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proj-airi/server-sdk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Client-side SDK implementation for connecting to Airi server components and runtimes",
|
|
7
7
|
"author": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"crossws": "^0.3.1",
|
|
35
35
|
"defu": "^6.1.4",
|
|
36
|
-
"@proj-airi/server-shared": "^0.1.
|
|
36
|
+
"@proj-airi/server-shared": "^0.1.3"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"dev": "pnpm run stub",
|