@ekhein/sekiro-node-client 2.1.8 → 2.1.10
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/main.d.ts +11 -7
- package/dist/main.js +31 -28
- package/dist/utils/logger.util.d.ts +5 -0
- package/dist/utils/logger.util.js +7 -6
- package/dist/utils/ws.util.d.ts +1 -1
- package/package.json +4 -1
package/dist/main.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import { ErrorEvent, CloseEvent } from 'partysocket/ws.js';
|
|
2
|
+
import { W3CWebSocket } from './utils/ws.util';
|
|
3
|
+
export declare class SekiroClient extends W3CWebSocket {
|
|
4
|
+
readonly group: string;
|
|
5
|
+
readonly wsURL: string;
|
|
6
|
+
readonly clientId: string;
|
|
2
7
|
private readonly logger;
|
|
3
8
|
private readonly handlers;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private onData;
|
|
9
|
+
constructor(group?: string, wsURL?: string, clientId?: string);
|
|
10
|
+
onopen(event: Event): Promise<void>;
|
|
11
|
+
onclose(event: CloseEvent): Promise<void>;
|
|
12
|
+
onerror(event: ErrorEvent): Promise<void>;
|
|
13
|
+
onmessage(event: MessageEvent): Promise<void>;
|
|
10
14
|
registerAction(action: {
|
|
11
15
|
name: string;
|
|
12
16
|
handler: Function;
|
package/dist/main.js
CHANGED
|
@@ -5,47 +5,50 @@ const crypto_1 = require("crypto");
|
|
|
5
5
|
const result_util_1 = require("./utils/result.util");
|
|
6
6
|
const logger_util_1 = require("./utils/logger.util");
|
|
7
7
|
const ws_util_1 = require("./utils/ws.util");
|
|
8
|
-
class SekiroClient {
|
|
9
|
-
|
|
8
|
+
class SekiroClient extends ws_util_1.W3CWebSocket {
|
|
9
|
+
group;
|
|
10
|
+
wsURL;
|
|
11
|
+
clientId;
|
|
12
|
+
logger = new logger_util_1.Logger(this);
|
|
10
13
|
handlers = new Map();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
ws.addEventListener("open", this.onOpen.bind(this, group, clientId));
|
|
20
|
-
ws.addEventListener("message", this.onData.bind(this, group, clientId));
|
|
21
|
-
ws.addEventListener("close", this.onClose.bind(this, group, clientId));
|
|
22
|
-
ws.addEventListener("error", this.onError.bind(this, group, clientId));
|
|
23
|
-
this.ws.set(clientId, ws); /* save to this */
|
|
24
|
-
}
|
|
14
|
+
constructor(group = process.env.namespace, wsURL = process.env.SEKIRO_WS, clientId = (0, crypto_1.randomUUID)().replace(/-/g, "")) {
|
|
15
|
+
const register = new URL("/business-demo/register", wsURL);
|
|
16
|
+
register.searchParams.append("group", group);
|
|
17
|
+
register.searchParams.append("clientId", clientId);
|
|
18
|
+
super({ wsURL: register.href });
|
|
19
|
+
this.group = group;
|
|
20
|
+
this.wsURL = wsURL;
|
|
21
|
+
this.clientId = clientId;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
// @ts-expect-error
|
|
24
|
+
async onopen(event) {
|
|
25
|
+
this.logger.info("Connection Established");
|
|
28
26
|
}
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
// @ts-expect-error
|
|
28
|
+
async onclose(event) {
|
|
29
|
+
this.logger.warn("Connection Closed", event.code);
|
|
31
30
|
}
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
// @ts-expect-error
|
|
32
|
+
async onerror(event) {
|
|
33
|
+
this.logger.warn("WebSocket Error", event.message);
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
// @ts-expect-error
|
|
36
|
+
async onmessage(event) {
|
|
37
|
+
this.logger.info("Request", event.data);
|
|
37
38
|
const request = JSON.parse(event.data);
|
|
38
39
|
try {
|
|
39
40
|
const handler = this.handlers.get(request.action);
|
|
40
41
|
if (!handler)
|
|
41
|
-
throw new Error("
|
|
42
|
+
throw new Error("Handler Not Found");
|
|
42
43
|
const body = await handler.call(this, request.params);
|
|
43
|
-
const pack =
|
|
44
|
-
|
|
44
|
+
const pack = body.jsonrpc
|
|
45
|
+
? result_util_1.Result.success(request, body.result)
|
|
46
|
+
: result_util_1.Result.success(request, body);
|
|
47
|
+
this.send(pack);
|
|
45
48
|
}
|
|
46
49
|
catch (error) {
|
|
47
50
|
const pack = result_util_1.Result.unknown(request, error.message);
|
|
48
|
-
this.
|
|
51
|
+
this.send(pack);
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
54
|
async registerAction(action) {
|
|
@@ -3,18 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Logger = void 0;
|
|
4
4
|
const util_1 = require("util");
|
|
5
5
|
class Logger {
|
|
6
|
+
context;
|
|
7
|
+
constructor(context) {
|
|
8
|
+
this.context = context;
|
|
9
|
+
}
|
|
6
10
|
log(level, message) {
|
|
7
11
|
const time = new Date().toLocaleString();
|
|
8
|
-
const
|
|
9
|
-
const clientId = Array.from(message).at(1);
|
|
10
|
-
const args = Array.from(message).slice(2);
|
|
11
|
-
const base = (0, util_1.format)("[%s] [%s] [%s] [%s]", level, time, namespace, clientId);
|
|
12
|
+
const template = (0, util_1.format)("[%s] [%s] [%s] [%s]", level, time, this.context.group, this.context.clientId);
|
|
12
13
|
switch (level) {
|
|
13
14
|
case "INFO":
|
|
14
|
-
console.info(
|
|
15
|
+
console.info(template, ...message);
|
|
15
16
|
break;
|
|
16
17
|
case "WARN":
|
|
17
|
-
console.warn(
|
|
18
|
+
console.warn(template, ...message);
|
|
18
19
|
break;
|
|
19
20
|
}
|
|
20
21
|
}
|
package/dist/utils/ws.util.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ekhein/sekiro-node-client",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "ekhein",
|
|
6
6
|
"main": "./dist/main.js",
|
|
@@ -21,5 +21,8 @@
|
|
|
21
21
|
"@types/node": "^22.15.18",
|
|
22
22
|
"tsx": "^4.19.4",
|
|
23
23
|
"typescript": "^5.8.3"
|
|
24
|
+
},
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
24
27
|
}
|
|
25
28
|
}
|