@qoretechnologies/reqraft 0.3.4 → 0.4.0

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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "onlyChanged": true,
3
+ "projectId": "Project:662bcb94acac0fd11755c83a",
4
+ "zip": true
5
+ }
@@ -0,0 +1,27 @@
1
+ import { IReqraftWebSocketConfig, ReqraftWebSocket } from '../../utils/websocket';
2
+ export interface IUseReqraftWebSocketOptions extends IReqraftWebSocketConfig {
3
+ onMessage?: (ev: MessageEvent) => void;
4
+ useState?: boolean;
5
+ includeSentMessagesInState?: boolean;
6
+ includeLogMessagesInState?: boolean;
7
+ openOnMount?: boolean;
8
+ closeOnUnmount?: boolean;
9
+ }
10
+ export interface IUseReqraftWebSocket {
11
+ messages: string[];
12
+ status: keyof typeof ReqraftWebSocketStatus;
13
+ open: () => void;
14
+ close: () => void;
15
+ socket: ReqraftWebSocket;
16
+ send: (data: string) => void;
17
+ clear: () => void;
18
+ on: (type: keyof WebSocketEventMap, handler: (ev: Event) => void) => void;
19
+ addMessage: (message: string) => void;
20
+ }
21
+ export declare enum ReqraftWebSocketStatus {
22
+ OPEN = "OPEN",
23
+ CLOSED = "CLOSED",
24
+ CONNECTING = "CONNECTING"
25
+ }
26
+ export declare const useReqraftWebSocket: (options: IUseReqraftWebSocketOptions) => IUseReqraftWebSocket;
27
+ //# sourceMappingURL=useWebSocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebSocket.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWebSocket/useWebSocket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAElF,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAC1E,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,OAAO,sBAAsB,CAAC;IAC5C,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC;IAC1E,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,oBAAY,sBAAsB;IAChC,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,eAAO,MAAM,mBAAmB,YAAa,2BAA2B,KAAG,oBAkH1E,CAAC"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.useReqraftWebSocket = exports.ReqraftWebSocketStatus = void 0;
24
+ var react_1 = require("react");
25
+ var react_use_1 = require("react-use");
26
+ var websocket_1 = require("../../utils/websocket");
27
+ var ReqraftWebSocketStatus;
28
+ (function (ReqraftWebSocketStatus) {
29
+ ReqraftWebSocketStatus["OPEN"] = "OPEN";
30
+ ReqraftWebSocketStatus["CLOSED"] = "CLOSED";
31
+ ReqraftWebSocketStatus["CONNECTING"] = "CONNECTING";
32
+ })(ReqraftWebSocketStatus || (exports.ReqraftWebSocketStatus = ReqraftWebSocketStatus = {}));
33
+ var useReqraftWebSocket = function (options) {
34
+ var _a = (0, react_1.useState)([]), messages = _a[0], setMessages = _a[1];
35
+ var _b = (0, react_1.useState)('CLOSED'), status = _b[0], setStatus = _b[1];
36
+ var _c = (0, react_1.useState)(undefined), socket = _c[0], setSocket = _c[1];
37
+ var updateStates = function (status, log) {
38
+ setStatus(status);
39
+ if (log && (options === null || options === void 0 ? void 0 : options.includeLogMessagesInState) && (options === null || options === void 0 ? void 0 : options.useState)) {
40
+ setMessages(function (prev) { return __spreadArray(__spreadArray([], prev, true), [log], false); });
41
+ }
42
+ };
43
+ var handleOpen = function (ev) {
44
+ var _a;
45
+ updateStates(ReqraftWebSocketStatus.OPEN, 'Connection opened');
46
+ (_a = options === null || options === void 0 ? void 0 : options.onOpen) === null || _a === void 0 ? void 0 : _a.call(options, ev);
47
+ };
48
+ var open = function () {
49
+ var socket = new websocket_1.ReqraftWebSocket(__assign(__assign({}, options), { onOpen: handleOpen, onMessage: function (ev) {
50
+ var _a;
51
+ if (options === null || options === void 0 ? void 0 : options.useState) {
52
+ setMessages(function (prev) { return __spreadArray(__spreadArray([], prev, true), [ev.data], false); });
53
+ }
54
+ (_a = options === null || options === void 0 ? void 0 : options.onMessage) === null || _a === void 0 ? void 0 : _a.call(options, ev);
55
+ }, onClose: function () {
56
+ var _a;
57
+ var args = [];
58
+ for (var _i = 0; _i < arguments.length; _i++) {
59
+ args[_i] = arguments[_i];
60
+ }
61
+ updateStates(ReqraftWebSocketStatus.CLOSED, 'Connection closed');
62
+ (_a = options === null || options === void 0 ? void 0 : options.onClose) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([options], args, false));
63
+ }, onError: function () {
64
+ var _a;
65
+ var args = [];
66
+ for (var _i = 0; _i < arguments.length; _i++) {
67
+ args[_i] = arguments[_i];
68
+ }
69
+ updateStates(ReqraftWebSocketStatus.CLOSED, 'Connection error');
70
+ (_a = options === null || options === void 0 ? void 0 : options.onError) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([options], args, false));
71
+ }, onReconnecting: function (reconnectNumber) {
72
+ var _a;
73
+ updateStates(ReqraftWebSocketStatus.CONNECTING, "Reconnecting... Attempt ".concat(reconnectNumber));
74
+ (_a = options === null || options === void 0 ? void 0 : options.onReconnecting) === null || _a === void 0 ? void 0 : _a.call(options, reconnectNumber);
75
+ }, onReconnectFailed: function () {
76
+ var _a;
77
+ updateStates(ReqraftWebSocketStatus.CLOSED, 'Reconnect failed');
78
+ (_a = options === null || options === void 0 ? void 0 : options.onReconnectFailed) === null || _a === void 0 ? void 0 : _a.call(options);
79
+ } }));
80
+ setSocket(socket);
81
+ };
82
+ var close = function () {
83
+ socket === null || socket === void 0 ? void 0 : socket.remove();
84
+ setSocket(undefined);
85
+ setStatus(ReqraftWebSocketStatus.CLOSED);
86
+ };
87
+ var send = function (data) {
88
+ socket === null || socket === void 0 ? void 0 : socket.send(data);
89
+ if (options === null || options === void 0 ? void 0 : options.includeSentMessagesInState) {
90
+ setMessages(function (prev) { return __spreadArray(__spreadArray([], prev, true), [data], false); });
91
+ }
92
+ };
93
+ var on = function (type, handler) {
94
+ // Special case for message event
95
+ // We want to handle it differently
96
+ // We want to filter out the ping messages
97
+ if (type === 'message') {
98
+ socket === null || socket === void 0 ? void 0 : socket.addHandler('message', function (ev) {
99
+ if (ev.data === 'pong') {
100
+ return;
101
+ }
102
+ handler(ev);
103
+ });
104
+ return;
105
+ }
106
+ socket === null || socket === void 0 ? void 0 : socket.addHandler(type, handler);
107
+ };
108
+ var clear = function () {
109
+ setMessages([]);
110
+ };
111
+ var addMessage = function (message) {
112
+ if (options === null || options === void 0 ? void 0 : options.useState) {
113
+ setMessages(function (prev) { return __spreadArray(__spreadArray([], prev, true), [message], false); });
114
+ }
115
+ };
116
+ (0, react_use_1.useEffectOnce)(function () {
117
+ if (options === null || options === void 0 ? void 0 : options.openOnMount) {
118
+ open();
119
+ }
120
+ });
121
+ (0, react_use_1.useUnmount)(function () {
122
+ if (options === null || options === void 0 ? void 0 : options.closeOnUnmount) {
123
+ close();
124
+ }
125
+ });
126
+ return { messages: messages, status: status, open: open, socket: socket, close: close, send: send, clear: clear, on: on, addMessage: addMessage };
127
+ };
128
+ exports.useReqraftWebSocket = useReqraftWebSocket;
129
+ //# sourceMappingURL=useWebSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebSocket.js","sourceRoot":"","sources":["../../../src/hooks/useWebSocket/useWebSocket.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export * from './components/form';
2
2
  export { IReqraftMenuItem, IReqraftMenuProps, ReqraftMenu, TReqraftMenu, TReqraftMenuItem, } from './components/menu/Menu';
3
3
  export { IReqraftUseFetch, useFetch } from './hooks/useFetch/useFetch';
4
4
  export { TReqraftUseStorage, useReqraftStorage } from './hooks/useStorage/useStorage';
5
+ export * from './hooks/useWebSocket/useWebSocket';
5
6
  export { ReqraftProvider, ReqraftQueryClient, initializeReqraft, } from './providers/ReqraftProvider';
6
7
  export { query } from './utils/fetch';
8
+ export * from './utils/websocket';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACtF,cAAc,mCAAmC,CAAC;AAClD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -22,10 +22,12 @@ var useFetch_1 = require("./hooks/useFetch/useFetch");
22
22
  Object.defineProperty(exports, "useFetch", { enumerable: true, get: function () { return useFetch_1.useFetch; } });
23
23
  var useStorage_1 = require("./hooks/useStorage/useStorage");
24
24
  Object.defineProperty(exports, "useReqraftStorage", { enumerable: true, get: function () { return useStorage_1.useReqraftStorage; } });
25
+ __exportStar(require("./hooks/useWebSocket/useWebSocket"), exports);
25
26
  var ReqraftProvider_1 = require("./providers/ReqraftProvider");
26
27
  Object.defineProperty(exports, "ReqraftProvider", { enumerable: true, get: function () { return ReqraftProvider_1.ReqraftProvider; } });
27
28
  Object.defineProperty(exports, "ReqraftQueryClient", { enumerable: true, get: function () { return ReqraftProvider_1.ReqraftQueryClient; } });
28
29
  Object.defineProperty(exports, "initializeReqraft", { enumerable: true, get: function () { return ReqraftProvider_1.initializeReqraft; } });
29
30
  var fetch_1 = require("./utils/fetch");
30
31
  Object.defineProperty(exports, "query", { enumerable: true, get: function () { return fetch_1.query; } });
32
+ __exportStar(require("./utils/websocket"), exports);
31
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,+CAMgC;AAH9B,mGAAA,WAAW,OAAA;AAKb,sDAAuE;AAA5C,oGAAA,QAAQ,OAAA;AACnC,4DAAsF;AAAzD,+GAAA,iBAAiB,OAAA;AAC9C,+DAIqC;AAHnC,kHAAA,eAAe,OAAA;AACf,qHAAA,kBAAkB,OAAA;AAClB,oHAAA,iBAAiB,OAAA;AAEnB,uCAAsC;AAA7B,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,+CAMgC;AAH9B,mGAAA,WAAW,OAAA;AAKb,sDAAuE;AAA5C,oGAAA,QAAQ,OAAA;AACnC,4DAAsF;AAAzD,+GAAA,iBAAiB,OAAA;AAC9C,oEAAkD;AAClD,+DAIqC;AAHnC,kHAAA,eAAe,OAAA;AACf,qHAAA,kBAAkB,OAAA;AAClB,oHAAA,iBAAiB,OAAA;AAEnB,uCAAsC;AAA7B,8FAAA,KAAK,OAAA;AACd,oDAAkC"}
@@ -0,0 +1,51 @@
1
+ /// <reference types="node" />
2
+ export interface IReqraftWebSocketConfig {
3
+ url: string;
4
+ reconnect?: boolean;
5
+ reconnectInterval?: number;
6
+ maxReconnectTries?: number;
7
+ useHeartbeat?: boolean;
8
+ onOpen?: (ev?: Event) => void;
9
+ onMessage?: (ev: MessageEvent) => void;
10
+ onClose?: (ev?: CloseEvent) => void;
11
+ onError?: (ev?: Event) => void;
12
+ onReconnecting?: (reconnectNumber?: number) => void;
13
+ onReconnectFailed?: () => void;
14
+ }
15
+ export declare class ReqraftWebSocketsManager {
16
+ static defaultConfig: IReqraftWebSocketConfig;
17
+ static connections: Record<string, {
18
+ socket: WebSocket;
19
+ using: number;
20
+ heartbeat?: NodeJS.Timeout;
21
+ }>;
22
+ static closeAll(): void;
23
+ static addHandler(url: string, event: keyof WebSocketEventMap, handler: (ev: Event | MessageEvent | CloseEvent) => void): () => void;
24
+ static removeHandler(url: string, event: keyof WebSocketEventMap, handler: (ev: Event | MessageEvent | CloseEvent) => void): void;
25
+ }
26
+ export declare class ReqraftWebSocket {
27
+ isConnected: boolean;
28
+ reconnectTries: number;
29
+ reconnectInterval: NodeJS.Timeout;
30
+ options: IReqraftWebSocketConfig;
31
+ readonly handlers: Record<string, {
32
+ type: keyof WebSocketEventMap;
33
+ event: (ev: Event) => void;
34
+ }>;
35
+ private socket;
36
+ constructor(config: IReqraftWebSocketConfig);
37
+ addHandler(event: keyof WebSocketEventMap, handler: (ev: Event | MessageEvent | CloseEvent) => void): any;
38
+ removeHandler(id: string): void;
39
+ private getSocketUrl;
40
+ connect(): void;
41
+ send(data: string): void;
42
+ checkServerStatus(): Promise<void>;
43
+ private tryReconnect;
44
+ maybeReconnect(closeCode: number): void;
45
+ remove(): void;
46
+ close(): void;
47
+ removeAllHandlers(): void;
48
+ private startHeartbeat;
49
+ private stopHeartbeat;
50
+ }
51
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/utils/websocket.ts"],"names":[],"mappings":";AAIA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,qBAAa,wBAAwB;IACnC,OAAc,aAAa,EAAE,uBAAuB,CAMlD;IACF,OAAc,WAAW,EAAE,MAAM,CAC/B,MAAM,EACN;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;KAAE,CACjE,CAAM;WAEO,QAAQ;WAMR,UAAU,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,iBAAiB,EAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,UAAU,KAAK,IAAI;WAS5C,aAAa,CACzB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,iBAAiB,EAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,UAAU,KAAK,IAAI;CAI3D;AAED,qBAAa,gBAAgB;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAK;IAC3B,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC;IAClC,OAAO,EAAE,uBAAuB,CAAC;IACxC,SAAgB,QAAQ,EAAE,MAAM,CAC9B,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;QAAC,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,IAAI,CAAA;KAAE,CAC9D,CAAM;IACP,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,uBAAuB;IASpC,UAAU,CACf,KAAK,EAAE,MAAM,iBAAiB,EAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,UAAU,KAAK,IAAI;IAWnD,aAAa,CAAC,EAAE,EAAE,MAAM;IAU/B,OAAO,CAAC,YAAY;IAUb,OAAO;IAwDP,IAAI,CAAC,IAAI,EAAE,MAAM;IAIX,iBAAiB;YAUhB,YAAY;IASnB,cAAc,CAAC,SAAS,EAAE,MAAM;IA4BhC,MAAM;IAcN,KAAK;IAIL,iBAAiB;IAMxB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;CAMtB"}
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.ReqraftWebSocket = exports.ReqraftWebSocketsManager = void 0;
54
+ var lodash_1 = require("lodash");
55
+ var shortid_1 = __importDefault(require("shortid"));
56
+ var fetch_1 = require("./fetch");
57
+ var ReqraftWebSocketsManager = /** @class */ (function () {
58
+ function ReqraftWebSocketsManager() {
59
+ }
60
+ ReqraftWebSocketsManager.closeAll = function () {
61
+ (0, lodash_1.forEach)(this.connections, function (connection) {
62
+ connection.socket.close(4999);
63
+ });
64
+ };
65
+ ReqraftWebSocketsManager.addHandler = function (url, event, handler) {
66
+ var _this = this;
67
+ var _a;
68
+ (_a = this.connections[url]) === null || _a === void 0 ? void 0 : _a.socket.addEventListener(event, handler);
69
+ return function () {
70
+ var _a;
71
+ (_a = _this.connections[url]) === null || _a === void 0 ? void 0 : _a.socket.removeEventListener(event, handler);
72
+ };
73
+ };
74
+ ReqraftWebSocketsManager.removeHandler = function (url, event, handler) {
75
+ var _a;
76
+ (_a = this.connections[url]) === null || _a === void 0 ? void 0 : _a.socket.removeEventListener(event, handler);
77
+ };
78
+ ReqraftWebSocketsManager.defaultConfig = {
79
+ reconnect: true,
80
+ url: '',
81
+ maxReconnectTries: 10,
82
+ reconnectInterval: 5000,
83
+ useHeartbeat: true,
84
+ };
85
+ ReqraftWebSocketsManager.connections = {};
86
+ return ReqraftWebSocketsManager;
87
+ }());
88
+ exports.ReqraftWebSocketsManager = ReqraftWebSocketsManager;
89
+ var ReqraftWebSocket = /** @class */ (function () {
90
+ function ReqraftWebSocket(config) {
91
+ this.reconnectTries = 0;
92
+ this.handlers = {};
93
+ this.isConnected = true;
94
+ this.reconnectTries = 0;
95
+ this.reconnectInterval = null;
96
+ this.options = __assign(__assign({}, ReqraftWebSocketsManager.defaultConfig), config);
97
+ this.connect();
98
+ }
99
+ ReqraftWebSocket.prototype.addHandler = function (event, handler) {
100
+ var id = shortid_1.default.generate();
101
+ this.handlers[id] = { type: event, event: handler };
102
+ ReqraftWebSocketsManager.addHandler(this.options.url, event, handler);
103
+ return id;
104
+ };
105
+ ReqraftWebSocket.prototype.removeHandler = function (id) {
106
+ ReqraftWebSocketsManager.removeHandler(this.options.url, this.handlers[id].type, this.handlers[id].event);
107
+ delete this.handlers[id];
108
+ };
109
+ ReqraftWebSocket.prototype.getSocketUrl = function () {
110
+ var wsUrl = fetch_1.fetchConfig.instance.replace('http', 'ws');
111
+ if (wsUrl.endsWith('/')) {
112
+ wsUrl = wsUrl.slice(0, -1);
113
+ }
114
+ return "".concat(wsUrl, "/").concat(this.options.url, "?token=").concat(fetch_1.fetchConfig.instanceToken);
115
+ };
116
+ ReqraftWebSocket.prototype.connect = function () {
117
+ var _this = this;
118
+ var _a, _b, _c;
119
+ if (!ReqraftWebSocketsManager.connections[this.options.url]) {
120
+ this.socket = new WebSocket(this.getSocketUrl());
121
+ this.socket.onopen = function (ev) {
122
+ var _a, _b;
123
+ _this.reconnectTries = 0;
124
+ _this.isConnected = true;
125
+ clearInterval(_this.reconnectInterval);
126
+ _this.reconnectInterval = undefined;
127
+ if (_this.options.useHeartbeat) {
128
+ _this.startHeartbeat();
129
+ }
130
+ (_b = (_a = _this.options) === null || _a === void 0 ? void 0 : _a.onOpen) === null || _b === void 0 ? void 0 : _b.call(_a, ev);
131
+ };
132
+ ReqraftWebSocketsManager.connections[this.options.url] = {
133
+ socket: this.socket,
134
+ using: 0,
135
+ };
136
+ }
137
+ else {
138
+ this.socket = ReqraftWebSocketsManager.connections[this.options.url].socket;
139
+ (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.onOpen) === null || _b === void 0 ? void 0 : _b.call(_a, null);
140
+ }
141
+ // Increment the number of parts using this connection
142
+ ReqraftWebSocketsManager.connections[this.options.url].using++;
143
+ if ((_c = this.options) === null || _c === void 0 ? void 0 : _c.onMessage) {
144
+ this.addHandler('message', function (event) {
145
+ var _a, _b;
146
+ if (event.data === 'pong') {
147
+ return;
148
+ }
149
+ (_b = (_a = _this.options) === null || _a === void 0 ? void 0 : _a.onMessage) === null || _b === void 0 ? void 0 : _b.call(_a, event);
150
+ });
151
+ }
152
+ this.addHandler('close', function (event) {
153
+ var _a, _b;
154
+ (_b = (_a = _this.options) === null || _a === void 0 ? void 0 : _a.onClose) === null || _b === void 0 ? void 0 : _b.call(_a, event);
155
+ _this.stopHeartbeat();
156
+ _this.removeAllHandlers();
157
+ delete ReqraftWebSocketsManager.connections[_this.options.url];
158
+ // Start the reconnect process
159
+ _this.maybeReconnect(event.code);
160
+ });
161
+ this.addHandler('error', function (event) {
162
+ var _a, _b;
163
+ (_b = (_a = _this.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, event);
164
+ });
165
+ };
166
+ ReqraftWebSocket.prototype.send = function (data) {
167
+ this.socket.send(data);
168
+ };
169
+ ReqraftWebSocket.prototype.checkServerStatus = function () {
170
+ return __awaiter(this, void 0, void 0, function () {
171
+ var check;
172
+ return __generator(this, function (_a) {
173
+ switch (_a.label) {
174
+ case 0: return [4 /*yield*/, (0, fetch_1.query)({ url: '/system/pid', cache: false })];
175
+ case 1:
176
+ check = _a.sent();
177
+ if (check.code === 401) {
178
+ // Qorus is back up again but we need to re-authenticate
179
+ // Get the current pathname and redirect to the login page
180
+ window.location.href = fetch_1.fetchConfig.unauthorizedRedirect(window.location.pathname);
181
+ }
182
+ return [2 /*return*/];
183
+ }
184
+ });
185
+ });
186
+ };
187
+ ReqraftWebSocket.prototype.tryReconnect = function () {
188
+ return __awaiter(this, void 0, void 0, function () {
189
+ var _a, _b;
190
+ return __generator(this, function (_c) {
191
+ switch (_c.label) {
192
+ case 0:
193
+ this.reconnectTries++;
194
+ (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.onReconnecting) === null || _b === void 0 ? void 0 : _b.call(_a, this.reconnectTries);
195
+ return [4 /*yield*/, this.checkServerStatus()];
196
+ case 1:
197
+ _c.sent();
198
+ this.connect();
199
+ return [2 /*return*/];
200
+ }
201
+ });
202
+ });
203
+ };
204
+ ReqraftWebSocket.prototype.maybeReconnect = function (closeCode) {
205
+ var _a, _b;
206
+ if (this.options.reconnect && closeCode !== 4999) {
207
+ // If this is the first reconnect try
208
+ if (this.reconnectTries === 0) {
209
+ this.tryReconnect();
210
+ return;
211
+ }
212
+ // If we haven't reached the max number of reconnect tries
213
+ if (this.reconnectTries < this.options.maxReconnectTries) {
214
+ this.reconnectInterval = setTimeout(this.tryReconnect.bind(this), this.options.reconnectInterval);
215
+ return;
216
+ }
217
+ // Reconnect failed
218
+ this.isConnected = false;
219
+ this.reconnectInterval = undefined;
220
+ this.reconnectTries = 0;
221
+ (_b = (_a = this.options).onReconnectFailed) === null || _b === void 0 ? void 0 : _b.call(_a);
222
+ }
223
+ };
224
+ ReqraftWebSocket.prototype.remove = function () {
225
+ if (!ReqraftWebSocketsManager.connections[this.options.url])
226
+ return;
227
+ // Decrement the number of parts using this connection
228
+ ReqraftWebSocketsManager.connections[this.options.url].using--;
229
+ // If this is the last part using the connection, close it
230
+ if (ReqraftWebSocketsManager.connections[this.options.url].using === 0) {
231
+ this.close();
232
+ return;
233
+ }
234
+ // Remove all handlers
235
+ this.removeAllHandlers();
236
+ };
237
+ ReqraftWebSocket.prototype.close = function () {
238
+ this.socket.close(4999);
239
+ };
240
+ ReqraftWebSocket.prototype.removeAllHandlers = function () {
241
+ var _this = this;
242
+ (0, lodash_1.forEach)(this.handlers, function (_handler, id) {
243
+ _this.removeHandler(id);
244
+ });
245
+ };
246
+ ReqraftWebSocket.prototype.startHeartbeat = function () {
247
+ var _this = this;
248
+ // Start the heartbeat
249
+ clearInterval(ReqraftWebSocketsManager.connections[this.options.url].heartbeat);
250
+ ReqraftWebSocketsManager.connections[this.options.url].heartbeat = null;
251
+ ReqraftWebSocketsManager.connections[this.options.url].heartbeat = setInterval(function () {
252
+ _this.socket.send('ping');
253
+ }, 3000);
254
+ };
255
+ ReqraftWebSocket.prototype.stopHeartbeat = function () {
256
+ if (!ReqraftWebSocketsManager.connections[this.options.url])
257
+ return;
258
+ clearInterval(ReqraftWebSocketsManager.connections[this.options.url].heartbeat);
259
+ ReqraftWebSocketsManager.connections[this.options.url].heartbeat = null;
260
+ };
261
+ return ReqraftWebSocket;
262
+ }());
263
+ exports.ReqraftWebSocket = ReqraftWebSocket;
264
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/utils/websocket.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qoretechnologies/reqraft",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "ReQraft is a collection of React components and hooks that are used across Qore Technologies' products made using the ReQore component library from Qore.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,7 +16,7 @@
16
16
  "lint": "yarn run eslint ./src/",
17
17
  "storybook": "storybook dev -p 6008",
18
18
  "update-reqore": "yarn add @qoretechnologies/reqore@beta",
19
- "test-storybook": "DEBUG_PRINT_LIMIT=0 test-storybook --url http://localhost:6008",
19
+ "test-storybook": "DEBUG_PRINT_LIMIT=300 test-storybook --url http://localhost:6008",
20
20
  "install-playwright": "npx playwright install --with-deps",
21
21
  "build-storybook": "storybook build",
22
22
  "chromatic": "npx chromatic"
@@ -51,20 +51,20 @@
51
51
  "@babel/preset-env": "^7.12.11",
52
52
  "@babel/preset-react": "^7.12.10",
53
53
  "@babel/preset-typescript": "^7.12.7",
54
- "@chromatic-com/storybook": "^1",
54
+ "@chromatic-com/storybook": "^1.5.0",
55
55
  "@qoretechnologies/reqore": "^0.43.0",
56
- "@storybook/addon-actions": "^8.0.9",
57
- "@storybook/addon-essentials": "^8.0.9",
58
- "@storybook/addon-interactions": "^8.0.9",
59
- "@storybook/addon-links": "^8.0.9",
56
+ "@storybook/addon-actions": "^8.1.7",
57
+ "@storybook/addon-essentials": "^8.1.7",
58
+ "@storybook/addon-interactions": "^8.1.7",
59
+ "@storybook/addon-links": "^8.1.7",
60
60
  "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
61
- "@storybook/manager-api": "^8.0.9",
62
- "@storybook/react": "^8.0.9",
63
- "@storybook/react-webpack5": "^8.0.9",
64
- "@storybook/test": "^8.0.9",
65
- "@storybook/test-runner": "^0.17.0",
66
- "@storybook/theming": "^8.0.9",
67
- "@storybook/types": "^8.0.9",
61
+ "@storybook/manager-api": "^8.1.7",
62
+ "@storybook/react": "^8.1.7",
63
+ "@storybook/react-webpack5": "^8.1.7",
64
+ "@storybook/test": "^8.1.7",
65
+ "@storybook/test-runner": "^0.18.2",
66
+ "@storybook/theming": "^8.1.7",
67
+ "@storybook/types": "^8.1.7",
68
68
  "@testing-library/jest-dom": "^5.16.5",
69
69
  "@testing-library/react": "^13.4.0",
70
70
  "@types/jest": "^26.0.19",
@@ -85,6 +85,7 @@
85
85
  "jest": "^29.4.3",
86
86
  "jest-environment-jsdom": "^29.4.3",
87
87
  "jest-github-actions-reporter": "^1.0.2",
88
+ "mock-socket": "^9.3.1",
88
89
  "npm-cli-login": "^0.1.1",
89
90
  "playwright": "^1.16.3",
90
91
  "pre-push": "^0.1.4",
@@ -92,7 +93,7 @@
92
93
  "react-dom": "^18.3.1",
93
94
  "react-intersection-observer": "^9.4.2",
94
95
  "react-test-renderer": "^18.2.0",
95
- "storybook": "^8.0.9",
96
+ "storybook": "^8.1.7",
96
97
  "storybook-addon-mock": "^5.0.0",
97
98
  "ts-jest": "^29.1.2",
98
99
  "ts-node": "^9.1.1",
@@ -1,6 +1,5 @@
1
1
  import { ReqoreSpinner, ReqoreTree } from '@qoretechnologies/reqore';
2
2
  import { StoryObj } from '@storybook/react';
3
- import { useEffectOnce } from 'react-use';
4
3
  import { testsWaitForText } from '../../../__tests__/utils';
5
4
  import { StoryMeta } from '../../types';
6
5
  import { useFetch } from './useFetch';
@@ -8,17 +7,15 @@ import { useFetch } from './useFetch';
8
7
  const meta = {
9
8
  title: 'Hooks/useFetch',
10
9
  render: (args) => {
11
- const { data = {}, load, loading } = useFetch<any>({ url: 'public/info', method: args.method });
10
+ const {
11
+ data = {},
12
+ load,
13
+ loading,
14
+ } = useFetch<any>({ url: 'public/info', method: args.method, loadOnMount: true });
12
15
 
13
- useEffectOnce(() => {
14
- load();
15
- });
16
-
17
- return loading ? (
18
- <ReqoreSpinner />
19
- ) : (
20
- <ReqoreTree data={data} bottomActions={[{ label: 'Refetch', onClick: load }]} />
21
- );
16
+ return loading ?
17
+ <ReqoreSpinner />
18
+ : <ReqoreTree data={data} bottomActions={[{ label: 'Refetch', onClick: load }]} />;
22
19
  },
23
20
  } as StoryMeta<any>;
24
21