@mstuercke/api-utils 0.0.44 → 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 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 { readyState, lastJsonMessage, getWebSocket, sendMessage } = useWebSocket(wsApiUrl, {
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 && readyState === ReadyState.OPEN) {
36
- sendMessage(JSON.stringify({
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
- }, [request, readyState, route?.action, sendMessage]);
42
- // response received
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 (!lastJsonMessage || JSON.stringify(lastJsonMessage) === '{}')
49
+ if (!route)
45
50
  return;
46
- handleResponse(lastJsonMessage);
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
- getWebSocket()?.close();
59
+ websocket?.close();
56
60
  handleDisconnected?.();
57
- }, [getWebSocket, handleDisconnected]);
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":"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"}
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.44",
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",