@mstuercke/api-utils 0.0.45 → 0.0.46
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.
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
-
import { default as useWebSocket, ReadyState } from 'react-use-websocket';
|
|
1
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
2
|
export const useWsApi = (wsApiUrl) => {
|
|
4
3
|
const [error, setError] = useState(false);
|
|
5
4
|
const [connected, setConnected] = useState(false);
|
|
@@ -23,28 +22,33 @@ export const useWsApi = (wsApiUrl) => {
|
|
|
23
22
|
setConnected(false);
|
|
24
23
|
options?.onDisconnected?.();
|
|
25
24
|
}, [options]);
|
|
26
|
-
const
|
|
27
|
-
onOpen: () => handleConnected(),
|
|
28
|
-
onError: (error) => handleError(error),
|
|
29
|
-
onClose: () => handleDisconnected(),
|
|
30
|
-
}, !!request);
|
|
31
|
-
// send request
|
|
32
|
-
useEffect(() => {
|
|
25
|
+
const websocket = useMemo(() => {
|
|
33
26
|
if (!route)
|
|
34
|
-
return;
|
|
35
|
-
if (request
|
|
36
|
-
|
|
27
|
+
return null;
|
|
28
|
+
if (!request)
|
|
29
|
+
return null;
|
|
30
|
+
const websocket = new WebSocket(wsApiUrl);
|
|
31
|
+
websocket.onopen = () => {
|
|
32
|
+
websocket.send(JSON.stringify({
|
|
37
33
|
action: route.action,
|
|
38
|
-
request,
|
|
34
|
+
...request,
|
|
39
35
|
}));
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
handleConnected();
|
|
37
|
+
};
|
|
38
|
+
websocket.onmessage = (ev) => {
|
|
39
|
+
if (!ev.data || ev.data === '{}')
|
|
40
|
+
return;
|
|
41
|
+
handleResponse(JSON.parse(ev.data));
|
|
42
|
+
};
|
|
43
|
+
websocket.onerror = (error) => handleError(error);
|
|
44
|
+
websocket.onclose = () => handleDisconnected();
|
|
45
|
+
return websocket;
|
|
46
|
+
}, [route, request]);
|
|
47
|
+
// send request
|
|
43
48
|
useEffect(() => {
|
|
44
|
-
if (!
|
|
49
|
+
if (!route)
|
|
45
50
|
return;
|
|
46
|
-
|
|
47
|
-
}, [lastJsonMessage, getWebSocket, handleResponse]);
|
|
51
|
+
}, [request, route?.action, websocket, request]);
|
|
48
52
|
const sendRequest = useCallback((route, request, options) => {
|
|
49
53
|
setConnected(true);
|
|
50
54
|
setRoute(route);
|
|
@@ -52,9 +56,9 @@ export const useWsApi = (wsApiUrl) => {
|
|
|
52
56
|
setOptions(options);
|
|
53
57
|
}, []);
|
|
54
58
|
const disconnect = useCallback(() => {
|
|
55
|
-
|
|
59
|
+
websocket?.close();
|
|
56
60
|
handleDisconnected?.();
|
|
57
|
-
}, [
|
|
61
|
+
}, [websocket, handleDisconnected]);
|
|
58
62
|
return {
|
|
59
63
|
sendRequest,
|
|
60
64
|
connected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWsApi.js","sourceRoot":"","sources":["../../../src/ws/client/useWsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"useWsApi.js","sourceRoot":"","sources":["../../../src/ws/client/useWsApi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mstuercke/api-utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.46",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*.js",
|
|
@@ -46,13 +46,11 @@
|
|
|
46
46
|
"release": "bun run release.ts"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"path-to-regexp": "^6.2.1"
|
|
50
|
-
"react-use-websocket": "^4.5.0"
|
|
49
|
+
"path-to-regexp": "^6.2.1"
|
|
51
50
|
},
|
|
52
51
|
"peerDependencies": {
|
|
53
52
|
"@aws-sdk/client-apigatewaymanagementapi": "^3.438.0",
|
|
54
|
-
"@types/aws-lambda": "^8.0.0"
|
|
55
|
-
"react": "^18.2.0"
|
|
53
|
+
"@types/aws-lambda": "^8.0.0"
|
|
56
54
|
},
|
|
57
55
|
"devDependencies": {
|
|
58
56
|
"@mstuercke/bun-utils": "^0.0.10",
|