@webiny/app-websockets 0.0.0-unstable.e53eceafb5

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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/WebsocketsContextProvider.d.ts +8 -0
  4. package/WebsocketsContextProvider.js +163 -0
  5. package/WebsocketsContextProvider.js.map +1 -0
  6. package/domain/WebsocketsAction.d.ts +8 -0
  7. package/domain/WebsocketsAction.js +28 -0
  8. package/domain/WebsocketsAction.js.map +1 -0
  9. package/domain/WebsocketsActions.d.ts +16 -0
  10. package/domain/WebsocketsActions.js +84 -0
  11. package/domain/WebsocketsActions.js.map +1 -0
  12. package/domain/WebsocketsConnection.d.ts +42 -0
  13. package/domain/WebsocketsConnection.js +118 -0
  14. package/domain/WebsocketsConnection.js.map +1 -0
  15. package/domain/WebsocketsManager.d.ts +15 -0
  16. package/domain/WebsocketsManager.js +37 -0
  17. package/domain/WebsocketsManager.js.map +1 -0
  18. package/domain/WebsocketsSubscriptionManager.d.ts +15 -0
  19. package/domain/WebsocketsSubscriptionManager.js +73 -0
  20. package/domain/WebsocketsSubscriptionManager.js.map +1 -0
  21. package/domain/abstractions/IWebsocketsAction.d.ts +25 -0
  22. package/domain/abstractions/IWebsocketsAction.js +3 -0
  23. package/domain/abstractions/IWebsocketsAction.js.map +1 -0
  24. package/domain/abstractions/IWebsocketsActions.d.ts +11 -0
  25. package/domain/abstractions/IWebsocketsActions.js +3 -0
  26. package/domain/abstractions/IWebsocketsActions.js.map +1 -0
  27. package/domain/abstractions/IWebsocketsConnection.d.ts +20 -0
  28. package/domain/abstractions/IWebsocketsConnection.js +9 -0
  29. package/domain/abstractions/IWebsocketsConnection.js.map +1 -0
  30. package/domain/abstractions/IWebsocketsManager.d.ts +40 -0
  31. package/domain/abstractions/IWebsocketsManager.js +3 -0
  32. package/domain/abstractions/IWebsocketsManager.js.map +1 -0
  33. package/domain/abstractions/IWebsocketsSubscriptionManager.d.ts +30 -0
  34. package/domain/abstractions/IWebsocketsSubscriptionManager.js +3 -0
  35. package/domain/abstractions/IWebsocketsSubscriptionManager.js.map +1 -0
  36. package/domain/abstractions/types.d.ts +24 -0
  37. package/domain/abstractions/types.js +21 -0
  38. package/domain/abstractions/types.js.map +1 -0
  39. package/domain/index.d.ts +5 -0
  40. package/domain/index.js +7 -0
  41. package/domain/index.js.map +1 -0
  42. package/domain/types.d.ts +6 -0
  43. package/domain/types.js +8 -0
  44. package/domain/types.js.map +1 -0
  45. package/hooks/index.d.ts +1 -0
  46. package/hooks/index.js +3 -0
  47. package/hooks/index.js.map +1 -0
  48. package/hooks/useWebsockets.d.ts +2 -0
  49. package/hooks/useWebsockets.js +11 -0
  50. package/hooks/useWebsockets.js.map +1 -0
  51. package/index.d.ts +7 -0
  52. package/index.js +18 -0
  53. package/index.js.map +1 -0
  54. package/package.json +38 -0
  55. package/types.d.ts +27 -0
  56. package/types.js +4 -0
  57. package/types.js.map +1 -0
  58. package/utils/getUrl.d.ts +1 -0
  59. package/utils/getUrl.js +6 -0
  60. package/utils/getUrl.js.map +1 -0
@@ -0,0 +1,15 @@
1
+ import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent } from "./types";
2
+ import type { IWebsocketsSubscription, IWebsocketsSubscriptionCallback, IWebsocketsSubscriptionManager } from "./abstractions/IWebsocketsSubscriptionManager";
3
+ export declare class WebsocketsSubscriptionManager implements IWebsocketsSubscriptionManager {
4
+ private subscriptions;
5
+ onOpen(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>): IWebsocketsSubscription<IWebsocketsManagerOpenEvent>;
6
+ onClose(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;
7
+ onError(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;
8
+ onMessage<T extends IGenericData = IGenericData>(cb: IWebsocketsSubscriptionCallback<T>): IWebsocketsSubscription<T>;
9
+ triggerOnOpen(event: Event): Promise<void>;
10
+ triggerOnClose(event: CloseEvent): Promise<void>;
11
+ triggerOnError(event: Event): Promise<void>;
12
+ triggerOnMessage(event: IWebsocketsManagerMessageEvent<string>): Promise<void>;
13
+ private createSubscription;
14
+ }
15
+ export declare const createWebsocketsSubscriptionManager: () => IWebsocketsSubscriptionManager;
@@ -0,0 +1,73 @@
1
+ import { generateId } from "@webiny/utils/generateId";
2
+ export class WebsocketsSubscriptionManager {
3
+ subscriptions = {
4
+ open: {},
5
+ close: {},
6
+ error: {},
7
+ message: {}
8
+ };
9
+ onOpen(cb) {
10
+ const value = this.createSubscription("open", cb);
11
+ this.subscriptions.close[value.id] = value;
12
+ return value;
13
+ }
14
+ onClose(cb) {
15
+ const value = this.createSubscription("close", cb);
16
+ this.subscriptions.close[value.id] = value;
17
+ return value;
18
+ }
19
+ onError(cb) {
20
+ const value = this.createSubscription("error", cb);
21
+ this.subscriptions.error[value.id] = value;
22
+ return value;
23
+ }
24
+ onMessage(cb) {
25
+ const value = this.createSubscription("message", cb);
26
+ this.subscriptions.message[value.id] = value;
27
+ return value;
28
+ }
29
+ async triggerOnOpen(event) {
30
+ for (const id in this.subscriptions.open) {
31
+ await this.subscriptions.open[id].cb(event);
32
+ }
33
+ }
34
+ async triggerOnClose(event) {
35
+ for (const id in this.subscriptions.close) {
36
+ await this.subscriptions.close[id].cb(event);
37
+ }
38
+ }
39
+ async triggerOnError(event) {
40
+ for (const id in this.subscriptions.error) {
41
+ await this.subscriptions.error[id].cb(event);
42
+ }
43
+ }
44
+ async triggerOnMessage(event) {
45
+ let data = {};
46
+ try {
47
+ data = JSON.parse(event.data);
48
+ } catch (ex) {
49
+ console.error("Failed to parse the incoming message.", ex);
50
+ }
51
+ for (const id in this.subscriptions.message) {
52
+ await this.subscriptions.message[id].cb({
53
+ ...event,
54
+ data: data || {}
55
+ });
56
+ }
57
+ }
58
+ createSubscription(type, cb) {
59
+ const id = generateId();
60
+ return {
61
+ cb,
62
+ id,
63
+ off: () => {
64
+ delete this.subscriptions[type][id];
65
+ }
66
+ };
67
+ }
68
+ }
69
+ export const createWebsocketsSubscriptionManager = () => {
70
+ return new WebsocketsSubscriptionManager();
71
+ };
72
+
73
+ //# sourceMappingURL=WebsocketsSubscriptionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generateId","WebsocketsSubscriptionManager","subscriptions","open","close","error","message","onOpen","cb","value","createSubscription","id","onClose","onError","onMessage","triggerOnOpen","event","triggerOnClose","triggerOnError","triggerOnMessage","data","JSON","parse","ex","console","type","off","createWebsocketsSubscriptionManager"],"sources":["WebsocketsSubscriptionManager.ts"],"sourcesContent":["import { generateId } from \"@webiny/utils/generateId\";\nimport type {\n IGenericData,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketManagerEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent\n} from \"./types\";\nimport type {\n IWebsocketsSubscriptionManagerSubscriptions,\n IWebsocketsSubscription,\n IWebsocketsSubscriptionCallback,\n IWebsocketsSubscriptionManager\n} from \"./abstractions/IWebsocketsSubscriptionManager\";\n\nexport class WebsocketsSubscriptionManager implements IWebsocketsSubscriptionManager {\n private subscriptions: IWebsocketsSubscriptionManagerSubscriptions = {\n open: {},\n close: {},\n error: {},\n message: {}\n };\n\n public onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent> {\n const value = this.createSubscription<IWebsocketsManagerOpenEvent>(\"open\", cb);\n this.subscriptions.close[value.id] = value;\n return value;\n }\n\n public onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent> {\n const value = this.createSubscription<IWebsocketsManagerCloseEvent>(\"close\", cb);\n this.subscriptions.close[value.id] = value;\n return value;\n }\n\n public onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent> {\n const value = this.createSubscription<IWebsocketsManagerErrorEvent>(\"error\", cb);\n this.subscriptions.error[value.id] = value;\n return value;\n }\n\n public onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<T>\n ): IWebsocketsSubscription<T> {\n const value = this.createSubscription<T>(\"message\", cb);\n this.subscriptions.message[value.id] = value;\n return value;\n }\n\n public async triggerOnOpen(event: Event): Promise<void> {\n for (const id in this.subscriptions.open) {\n await this.subscriptions.open[id].cb(event);\n }\n }\n\n public async triggerOnClose(event: CloseEvent): Promise<void> {\n for (const id in this.subscriptions.close) {\n await this.subscriptions.close[id].cb(event);\n }\n }\n\n public async triggerOnError(event: Event): Promise<void> {\n for (const id in this.subscriptions.error) {\n await this.subscriptions.error[id].cb(event);\n }\n }\n\n public async triggerOnMessage(event: IWebsocketsManagerMessageEvent<string>): Promise<void> {\n let data: IGenericData = {};\n try {\n data = JSON.parse(event.data);\n } catch (ex) {\n console.error(\"Failed to parse the incoming message.\", ex);\n }\n for (const id in this.subscriptions.message) {\n await this.subscriptions.message[id].cb({\n ...event,\n data: data || {}\n });\n }\n }\n\n private createSubscription<T>(\n type: IWebsocketManagerEvent,\n cb: IWebsocketsSubscriptionCallback<T>\n ): IWebsocketsSubscription<T> {\n const id = generateId();\n return {\n cb,\n id,\n off: () => {\n delete this.subscriptions[type][id];\n }\n };\n }\n}\n\nexport const createWebsocketsSubscriptionManager = (): IWebsocketsSubscriptionManager => {\n return new WebsocketsSubscriptionManager();\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import type { IGenericData } from "./types";
2
+ export interface IWebsocketActionOnResponse<R extends IGenericData = IGenericData> {
3
+ (response: R | null): R | null;
4
+ }
5
+ export interface IWebsocketsActionsTriggerParams<T extends IGenericData = IGenericData, R extends IGenericData = IGenericData> {
6
+ data?: T;
7
+ /**
8
+ * Does this action expect some response from the server?
9
+ * If defined, the response will be passed to this function.
10
+ */
11
+ onResponse?: IWebsocketActionOnResponse<R>;
12
+ /**
13
+ * How long to wait for the response?
14
+ * In milliseconds.
15
+ */
16
+ timeout?: number;
17
+ }
18
+ export interface IWebsocketsAction<T extends IGenericData = IGenericData, R extends IGenericData = IGenericData> {
19
+ /**
20
+ * Trigger the action - send data to the server via Websockets.
21
+ * If onResponse is defined the method will wait for the response.
22
+ * If onResponse is not defined, the method will return null immediately.
23
+ */
24
+ trigger(params?: IWebsocketsActionsTriggerParams<T, R>): Promise<R | null>;
25
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=IWebsocketsAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IWebsocketsAction.ts"],"sourcesContent":["import type { IGenericData } from \"./types\";\n\nexport interface IWebsocketActionOnResponse<R extends IGenericData = IGenericData> {\n (response: R | null): R | null;\n}\n\nexport interface IWebsocketsActionsTriggerParams<\n T extends IGenericData = IGenericData,\n R extends IGenericData = IGenericData\n> {\n data?: T;\n /**\n * Does this action expect some response from the server?\n * If defined, the response will be passed to this function.\n */\n onResponse?: IWebsocketActionOnResponse<R>;\n /**\n * How long to wait for the response?\n * In milliseconds.\n */\n timeout?: number;\n}\n\nexport interface IWebsocketsAction<\n T extends IGenericData = IGenericData,\n R extends IGenericData = IGenericData\n> {\n /**\n * Trigger the action - send data to the server via Websockets.\n * If onResponse is defined the method will wait for the response.\n * If onResponse is not defined, the method will return null immediately.\n */\n trigger(params?: IWebsocketsActionsTriggerParams<T, R>): Promise<R | null>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { IWebsocketsManager } from "./IWebsocketsManager";
2
+ import type { IGenericData } from "./types";
3
+ export interface IWebsocketsActionsRunParams<T extends IGenericData = IGenericData> {
4
+ action: string;
5
+ data?: T;
6
+ timeout?: number;
7
+ }
8
+ export interface IWebsocketsActions {
9
+ manager: IWebsocketsManager;
10
+ run<T extends IGenericData = IGenericData, R extends IGenericData = IGenericData>(params: IWebsocketsActionsRunParams<T>): Promise<R | null>;
11
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=IWebsocketsActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IWebsocketsActions.ts"],"sourcesContent":["import type { IWebsocketsManager } from \"./IWebsocketsManager\";\nimport type { IGenericData } from \"./types\";\n\nexport interface IWebsocketsActionsRunParams<T extends IGenericData = IGenericData> {\n action: string;\n data?: T;\n timeout?: number;\n}\n\nexport interface IWebsocketsActions {\n manager: IWebsocketsManager;\n run<T extends IGenericData = IGenericData, R extends IGenericData = IGenericData>(\n params: IWebsocketsActionsRunParams<T>\n ): Promise<R | null>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import type { IWebsocketsSubscriptionManager } from "./IWebsocketsSubscriptionManager";
2
+ import type { IGenericData, WebsocketsCloseCode } from "./types";
3
+ export type IWebsocketsConnectProtocol = string | string[] | undefined;
4
+ export interface IWebsocketsConnectionFactory {
5
+ (url: string, protocol?: IWebsocketsConnectProtocol): WebSocket;
6
+ }
7
+ export declare enum WebsocketsReadyState {
8
+ CONNECTING = 0,
9
+ OPEN = 1,
10
+ CLOSING = 2,
11
+ CLOSED = 3
12
+ }
13
+ export interface IWebsocketsConnection {
14
+ readonly subscriptionManager: IWebsocketsSubscriptionManager;
15
+ isConnected(): boolean;
16
+ isClosed(): boolean;
17
+ connect(): Promise<void>;
18
+ close(code: WebsocketsCloseCode, reason: string): Promise<boolean>;
19
+ send<T extends IGenericData = IGenericData>(data: T): void;
20
+ }
@@ -0,0 +1,9 @@
1
+ export let WebsocketsReadyState = /*#__PURE__*/function (WebsocketsReadyState) {
2
+ WebsocketsReadyState[WebsocketsReadyState["CONNECTING"] = 0] = "CONNECTING";
3
+ WebsocketsReadyState[WebsocketsReadyState["OPEN"] = 1] = "OPEN";
4
+ WebsocketsReadyState[WebsocketsReadyState["CLOSING"] = 2] = "CLOSING";
5
+ WebsocketsReadyState[WebsocketsReadyState["CLOSED"] = 3] = "CLOSED";
6
+ return WebsocketsReadyState;
7
+ }({});
8
+
9
+ //# sourceMappingURL=IWebsocketsConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebsocketsReadyState"],"sources":["IWebsocketsConnection.ts"],"sourcesContent":["import type { IWebsocketsSubscriptionManager } from \"./IWebsocketsSubscriptionManager\";\nimport type { IGenericData, WebsocketsCloseCode } from \"./types\";\n\nexport type IWebsocketsConnectProtocol = string | string[] | undefined;\n\nexport interface IWebsocketsConnectionFactory {\n (url: string, protocol?: IWebsocketsConnectProtocol): WebSocket;\n}\n\nexport enum WebsocketsReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3\n}\n\nexport interface IWebsocketsConnection {\n readonly subscriptionManager: IWebsocketsSubscriptionManager;\n\n isConnected(): boolean;\n isClosed(): boolean;\n\n connect(): Promise<void>;\n close(code: WebsocketsCloseCode, reason: string): Promise<boolean>;\n send<T extends IGenericData = IGenericData>(data: T): void;\n}\n"],"mappings":"AASA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import type { IWebsocketsSubscription, IWebsocketsSubscriptionCallback } from "./IWebsocketsSubscriptionManager";
2
+ import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent, WebsocketsCloseCode } from "./types";
3
+ export interface IWebsocketManagerSendData<T extends IGenericData = IGenericData> extends IGenericData {
4
+ /**
5
+ * A user token, which will identify the user sending the message.
6
+ */
7
+ token: string;
8
+ /**
9
+ * Current tenant.
10
+ */
11
+ tenant: string;
12
+ /**
13
+ * Current locale.
14
+ */
15
+ locale: string;
16
+ /**
17
+ * A unique message ID - generated on the UI side.
18
+ * TODO implement waiting for the message response.
19
+ */
20
+ messageId?: string;
21
+ /**
22
+ * Action being fired on the API side.
23
+ */
24
+ action: string;
25
+ /**
26
+ * Data being sent to the API. Must be an object.
27
+ */
28
+ data: T;
29
+ }
30
+ export interface IWebsocketsManager {
31
+ isConnected(): boolean;
32
+ isClosed(): boolean;
33
+ connect(): Promise<void>;
34
+ close(code: WebsocketsCloseCode, reason: string): Promise<boolean>;
35
+ send<T extends IWebsocketManagerSendData = IWebsocketManagerSendData>(data: T): void;
36
+ onOpen(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>): IWebsocketsSubscription<IWebsocketsManagerOpenEvent>;
37
+ onClose(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;
38
+ onError(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;
39
+ onMessage<T extends IGenericData = IGenericData>(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerMessageEvent<T>>): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>>;
40
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=IWebsocketsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IWebsocketsManager.ts"],"sourcesContent":["import type {\n IWebsocketsSubscription,\n IWebsocketsSubscriptionCallback\n} from \"./IWebsocketsSubscriptionManager\";\nimport type {\n IGenericData,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent,\n WebsocketsCloseCode\n} from \"./types\";\n\nexport interface IWebsocketManagerSendData<T extends IGenericData = IGenericData>\n extends IGenericData {\n /**\n * A user token, which will identify the user sending the message.\n */\n token: string;\n /**\n * Current tenant.\n */\n tenant: string;\n /**\n * Current locale.\n */\n locale: string;\n /**\n * A unique message ID - generated on the UI side.\n * TODO implement waiting for the message response.\n */\n messageId?: string;\n /**\n * Action being fired on the API side.\n */\n action: string;\n /**\n * Data being sent to the API. Must be an object.\n */\n data: T;\n}\n\nexport interface IWebsocketsManager {\n isConnected(): boolean;\n isClosed(): boolean;\n\n connect(): Promise<void>;\n close(code: WebsocketsCloseCode, reason: string): Promise<boolean>;\n send<T extends IWebsocketManagerSendData = IWebsocketManagerSendData>(data: T): void;\n\n onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent>;\n\n onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;\n\n onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;\n\n onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerMessageEvent<T>>\n ): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import type { GenericRecord } from "@webiny/app/types";
2
+ import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent } from "./types";
3
+ export type IWebsocketManagerEvent = "open" | "close" | "error" | "message";
4
+ export interface IWebsocketsSubscriptionCallback<T> {
5
+ (data: T): Promise<void> | void;
6
+ }
7
+ export interface IWebsocketsSubscription<T> {
8
+ cb: IWebsocketsSubscriptionCallback<T>;
9
+ id: string;
10
+ /**
11
+ * Remove the subscription on the message.
12
+ */
13
+ off: () => void;
14
+ }
15
+ export interface IWebsocketsSubscriptionManagerSubscriptions<T extends IGenericData = IGenericData> {
16
+ open: GenericRecord<string, IWebsocketsSubscription<IWebsocketsManagerOpenEvent>>;
17
+ close: GenericRecord<string, IWebsocketsSubscription<IWebsocketsManagerCloseEvent>>;
18
+ error: GenericRecord<string, IWebsocketsSubscription<IWebsocketsManagerErrorEvent>>;
19
+ message: GenericRecord<string, IWebsocketsSubscription<T>>;
20
+ }
21
+ export interface IWebsocketsSubscriptionManager {
22
+ onOpen(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>): IWebsocketsSubscription<IWebsocketsManagerOpenEvent>;
23
+ onClose(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;
24
+ onError(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;
25
+ onMessage<T extends IGenericData = IGenericData>(cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerMessageEvent<T>>): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>>;
26
+ triggerOnOpen(event: IWebsocketsManagerOpenEvent): Promise<void>;
27
+ triggerOnClose(event: IWebsocketsManagerCloseEvent): Promise<void>;
28
+ triggerOnError(event: IWebsocketsManagerErrorEvent): Promise<void>;
29
+ triggerOnMessage(event: IWebsocketsManagerMessageEvent<string>): Promise<void>;
30
+ }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=IWebsocketsSubscriptionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["IWebsocketsSubscriptionManager.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/app/types\";\nimport type {\n IGenericData,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent\n} from \"./types\";\n\nexport type IWebsocketManagerEvent = \"open\" | \"close\" | \"error\" | \"message\";\n\nexport interface IWebsocketsSubscriptionCallback<T> {\n (data: T): Promise<void> | void;\n}\n\nexport interface IWebsocketsSubscription<T> {\n cb: IWebsocketsSubscriptionCallback<T>;\n id: string;\n /**\n * Remove the subscription on the message.\n */\n off: () => void;\n}\n\nexport interface IWebsocketsSubscriptionManagerSubscriptions<\n T extends IGenericData = IGenericData\n> {\n open: GenericRecord<string, IWebsocketsSubscription<IWebsocketsManagerOpenEvent>>;\n close: GenericRecord<string, IWebsocketsSubscription<IWebsocketsManagerCloseEvent>>;\n error: GenericRecord<string, IWebsocketsSubscription<IWebsocketsManagerErrorEvent>>;\n message: GenericRecord<string, IWebsocketsSubscription<T>>;\n}\n\nexport interface IWebsocketsSubscriptionManager {\n onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent>;\n\n onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;\n\n onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;\n\n onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerMessageEvent<T>>\n ): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>>;\n\n triggerOnOpen(event: IWebsocketsManagerOpenEvent): Promise<void>;\n triggerOnClose(event: IWebsocketsManagerCloseEvent): Promise<void>;\n triggerOnError(event: IWebsocketsManagerErrorEvent): Promise<void>;\n triggerOnMessage(event: IWebsocketsManagerMessageEvent<string>): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import type { GenericRecord } from "@webiny/app/types";
2
+ export type IWebsocketsManagerMessageEvent<T = IGenericData> = MessageEvent<T>;
3
+ export type IWebsocketsManagerCloseEvent = CloseEvent;
4
+ export type IWebsocketsManagerOpenEvent = Event;
5
+ export type IWebsocketsManagerErrorEvent = Event;
6
+ export type IGenericData = GenericRecord;
7
+ export declare enum WebsocketsCloseCode {
8
+ NORMAL = 1000,
9
+ GOING_AWAY = 1001,
10
+ PROTOCOL_ERROR = 1002,
11
+ CANNOT_ACCEPT = 1003,
12
+ RESERVED = 1004,
13
+ NO_STATUS = 1005,
14
+ ABNORMAL = 1006,
15
+ INVALID_DATA = 1007,
16
+ POLICY_VIOLATION = 1008,
17
+ TOO_BIG = 1009,
18
+ MISSING_EXTENSION = 1010,
19
+ SERVER_ERROR = 1011,
20
+ SERVICE_RESTART = 1012,
21
+ TRY_AGAIN_LATER = 1013,
22
+ BAD_GATEWAY = 1014,
23
+ TLS_HANDSHAKE = 1015
24
+ }
@@ -0,0 +1,21 @@
1
+ export let WebsocketsCloseCode = /*#__PURE__*/function (WebsocketsCloseCode) {
2
+ WebsocketsCloseCode[WebsocketsCloseCode["NORMAL"] = 1000] = "NORMAL";
3
+ WebsocketsCloseCode[WebsocketsCloseCode["GOING_AWAY"] = 1001] = "GOING_AWAY";
4
+ WebsocketsCloseCode[WebsocketsCloseCode["PROTOCOL_ERROR"] = 1002] = "PROTOCOL_ERROR";
5
+ WebsocketsCloseCode[WebsocketsCloseCode["CANNOT_ACCEPT"] = 1003] = "CANNOT_ACCEPT";
6
+ WebsocketsCloseCode[WebsocketsCloseCode["RESERVED"] = 1004] = "RESERVED";
7
+ WebsocketsCloseCode[WebsocketsCloseCode["NO_STATUS"] = 1005] = "NO_STATUS";
8
+ WebsocketsCloseCode[WebsocketsCloseCode["ABNORMAL"] = 1006] = "ABNORMAL";
9
+ WebsocketsCloseCode[WebsocketsCloseCode["INVALID_DATA"] = 1007] = "INVALID_DATA";
10
+ WebsocketsCloseCode[WebsocketsCloseCode["POLICY_VIOLATION"] = 1008] = "POLICY_VIOLATION";
11
+ WebsocketsCloseCode[WebsocketsCloseCode["TOO_BIG"] = 1009] = "TOO_BIG";
12
+ WebsocketsCloseCode[WebsocketsCloseCode["MISSING_EXTENSION"] = 1010] = "MISSING_EXTENSION";
13
+ WebsocketsCloseCode[WebsocketsCloseCode["SERVER_ERROR"] = 1011] = "SERVER_ERROR";
14
+ WebsocketsCloseCode[WebsocketsCloseCode["SERVICE_RESTART"] = 1012] = "SERVICE_RESTART";
15
+ WebsocketsCloseCode[WebsocketsCloseCode["TRY_AGAIN_LATER"] = 1013] = "TRY_AGAIN_LATER";
16
+ WebsocketsCloseCode[WebsocketsCloseCode["BAD_GATEWAY"] = 1014] = "BAD_GATEWAY";
17
+ WebsocketsCloseCode[WebsocketsCloseCode["TLS_HANDSHAKE"] = 1015] = "TLS_HANDSHAKE";
18
+ return WebsocketsCloseCode;
19
+ }({});
20
+
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebsocketsCloseCode"],"sources":["types.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/app/types\";\n\nexport type IWebsocketsManagerMessageEvent<T = IGenericData> = MessageEvent<T>;\nexport type IWebsocketsManagerCloseEvent = CloseEvent;\nexport type IWebsocketsManagerOpenEvent = Event;\nexport type IWebsocketsManagerErrorEvent = Event;\n\nexport type IGenericData = GenericRecord;\n\nexport enum WebsocketsCloseCode {\n NORMAL = 1000,\n GOING_AWAY = 1001,\n PROTOCOL_ERROR = 1002,\n CANNOT_ACCEPT = 1003,\n RESERVED = 1004,\n NO_STATUS = 1005,\n ABNORMAL = 1006,\n INVALID_DATA = 1007,\n POLICY_VIOLATION = 1008,\n TOO_BIG = 1009,\n MISSING_EXTENSION = 1010,\n SERVER_ERROR = 1011,\n SERVICE_RESTART = 1012,\n TRY_AGAIN_LATER = 1013,\n BAD_GATEWAY = 1014,\n TLS_HANDSHAKE = 1015\n}\n"],"mappings":"AASA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ export * from "./WebsocketsAction";
2
+ export * from "./WebsocketsActions";
3
+ export * from "./WebsocketsConnection";
4
+ export * from "./WebsocketsManager";
5
+ export * from "./WebsocketsSubscriptionManager";
@@ -0,0 +1,7 @@
1
+ export * from "./WebsocketsAction";
2
+ export * from "./WebsocketsActions";
3
+ export * from "./WebsocketsConnection";
4
+ export * from "./WebsocketsManager";
5
+ export * from "./WebsocketsSubscriptionManager";
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./WebsocketsAction\";\nexport * from \"./WebsocketsActions\";\nexport * from \"./WebsocketsConnection\";\nexport * from \"./WebsocketsManager\";\nexport * from \"./WebsocketsSubscriptionManager\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export * from "./abstractions/IWebsocketsAction";
2
+ export * from "./abstractions/IWebsocketsActions";
3
+ export * from "./abstractions/IWebsocketsConnection";
4
+ export * from "./abstractions/IWebsocketsManager";
5
+ export * from "./abstractions/IWebsocketsSubscriptionManager";
6
+ export * from "./abstractions/types";
@@ -0,0 +1,8 @@
1
+ export * from "./abstractions/IWebsocketsAction";
2
+ export * from "./abstractions/IWebsocketsActions";
3
+ export * from "./abstractions/IWebsocketsConnection";
4
+ export * from "./abstractions/IWebsocketsManager";
5
+ export * from "./abstractions/IWebsocketsSubscriptionManager";
6
+ export * from "./abstractions/types";
7
+
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export * from \"./abstractions/IWebsocketsAction\";\nexport * from \"./abstractions/IWebsocketsActions\";\nexport * from \"./abstractions/IWebsocketsConnection\";\nexport * from \"./abstractions/IWebsocketsManager\";\nexport * from \"./abstractions/IWebsocketsSubscriptionManager\";\n\nexport * from \"./abstractions/types\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AAEA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export * from "./useWebsockets";
package/hooks/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./useWebsockets";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./useWebsockets\";\n"],"mappings":"AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { IWebsocketsContext } from "../types";
2
+ export declare const useWebsockets: () => IWebsocketsContext;
@@ -0,0 +1,11 @@
1
+ import { useContext } from "react";
2
+ import { WebsocketsContext } from "../WebsocketsContextProvider";
3
+ export const useWebsockets = () => {
4
+ const context = useContext(WebsocketsContext);
5
+ if (!context) {
6
+ throw new Error("useWebsockets must be used within a SocketsProvider");
7
+ }
8
+ return context;
9
+ };
10
+
11
+ //# sourceMappingURL=useWebsockets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","WebsocketsContext","useWebsockets","context","Error"],"sources":["useWebsockets.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { WebsocketsContext } from \"~/WebsocketsContextProvider\";\nimport type { IWebsocketsContext } from \"~/types\";\n\nexport const useWebsockets = (): IWebsocketsContext => {\n const context = useContext(WebsocketsContext);\n if (!context) {\n throw new Error(\"useWebsockets must be used within a SocketsProvider\");\n }\n return context;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,iBAAiB;AAG1B,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAA0B;EACnD,MAAMC,OAAO,GAAGH,UAAU,CAACC,iBAAiB,CAAC;EAC7C,IAAI,CAACE,OAAO,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EAC1E;EACA,OAAOD,OAAO;AAClB,CAAC","ignoreList":[]}
package/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export interface WebsocketsProviderProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const Websockets: React.MemoExoticComponent<() => React.JSX.Element>;
6
+ export * from "./types";
7
+ export * from "./hooks";
package/index.js ADDED
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { Provider } from "@webiny/app";
3
+ import { WebsocketsContextProvider } from "./WebsocketsContextProvider";
4
+ const WebsocketsHoc = Component => {
5
+ return function WebsocketsProvider(props) {
6
+ return /*#__PURE__*/React.createElement(WebsocketsContextProvider, null, /*#__PURE__*/React.createElement(Component, props));
7
+ };
8
+ };
9
+ const WebsocketsExtension = () => {
10
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Provider, {
11
+ hoc: WebsocketsHoc
12
+ }));
13
+ };
14
+ export const Websockets = /*#__PURE__*/React.memo(WebsocketsExtension);
15
+ export * from "./types";
16
+ export * from "./hooks";
17
+
18
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Provider","WebsocketsContextProvider","WebsocketsHoc","Component","WebsocketsProvider","props","createElement","WebsocketsExtension","Fragment","hoc","Websockets","memo"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { WebsocketsContextProvider } from \"~/WebsocketsContextProvider\";\n\nexport interface WebsocketsProviderProps {\n children: React.ReactNode;\n}\n\nconst WebsocketsHoc = (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function WebsocketsProvider(props: WebsocketsProviderProps) {\n return (\n <WebsocketsContextProvider>\n <Component {...props} />\n </WebsocketsContextProvider>\n );\n };\n};\n\nconst WebsocketsExtension = () => {\n return (\n <>\n <Provider hoc={WebsocketsHoc} />\n </>\n );\n};\n\nexport const Websockets = React.memo(WebsocketsExtension);\n\nexport * from \"./types\";\nexport * from \"./hooks\";\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,yBAAyB;AAMlC,MAAMC,aAAa,GAAIC,SAAuD,IAAK;EAC/E,OAAO,SAASC,kBAAkBA,CAACC,KAA8B,EAAE;IAC/D,oBACIN,KAAA,CAAAO,aAAA,CAACL,yBAAyB,qBACtBF,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKE,KAAQ,CACA,CAAC;EAEpC,CAAC;AACL,CAAC;AAED,MAAME,mBAAmB,GAAGA,CAAA,KAAM;EAC9B,oBACIR,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAS,QAAA,qBACIT,KAAA,CAAAO,aAAA,CAACN,QAAQ;IAACS,GAAG,EAAEP;EAAc,CAAE,CACjC,CAAC;AAEX,CAAC;AAED,OAAO,MAAMQ,UAAU,gBAAGX,KAAK,CAACY,IAAI,CAACJ,mBAAmB,CAAC;AAEzD;AACA","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@webiny/app-websockets",
3
+ "version": "0.0.0-unstable.e53eceafb5",
4
+ "main": "index.js",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/webiny/webiny-js.git"
8
+ },
9
+ "contributors": [
10
+ "Pavel Denisjuk <pavel@webiny.com>",
11
+ "Sven Al Hamad <sven@webiny.com>",
12
+ "Adrian Smijulj <adrian@webiny.com>"
13
+ ],
14
+ "license": "MIT",
15
+ "dependencies": {
16
+ "@webiny/app": "0.0.0-unstable.e53eceafb5",
17
+ "@webiny/app-i18n": "0.0.0-unstable.e53eceafb5",
18
+ "@webiny/app-security": "0.0.0-unstable.e53eceafb5",
19
+ "@webiny/app-tenancy": "0.0.0-unstable.e53eceafb5",
20
+ "@webiny/utils": "0.0.0-unstable.e53eceafb5",
21
+ "react": "18.2.0",
22
+ "react-dom": "18.2.0"
23
+ },
24
+ "devDependencies": {
25
+ "@webiny/project-utils": "0.0.0-unstable.e53eceafb5",
26
+ "rimraf": "6.0.1",
27
+ "typescript": "5.3.3"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public",
31
+ "directory": "dist"
32
+ },
33
+ "scripts": {
34
+ "build": "node ../cli/bin.js run build",
35
+ "watch": "node ../cli/bin.js run watch"
36
+ },
37
+ "gitHead": "e53eceafb5ce1a3872c9b4548939bb2eae5b1aef"
38
+ }
package/types.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import type { IGenericData, IWebsocketsAction, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsSubscription } from "./domain/types";
2
+ export * from "./domain/types";
3
+ export interface IWebsocketsContextSendCallable {
4
+ <T extends IGenericData = IGenericData>(action: string, data?: T, timeout?: number): void;
5
+ }
6
+ export interface IWebsocketsContextCreateActionCallable<T extends IGenericData = IGenericData, R extends IGenericData = IGenericData> {
7
+ (name: string): IWebsocketsAction<T, R>;
8
+ }
9
+ export interface ISocketsContextOnMessageCallable {
10
+ <T extends IncomingGenericData = IncomingGenericData>(action: string, cb: (data: T) => void): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>>;
11
+ }
12
+ export interface ISocketsContextOnErrorCallable {
13
+ (cb: (data: IWebsocketsManagerErrorEvent) => void): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;
14
+ }
15
+ export interface ISocketsContextOnCloseCallable {
16
+ (cb: (data: IWebsocketsManagerCloseEvent) => void): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;
17
+ }
18
+ export interface IWebsocketsContext {
19
+ send: IWebsocketsContextSendCallable;
20
+ createAction: IWebsocketsContextCreateActionCallable;
21
+ onMessage: ISocketsContextOnMessageCallable;
22
+ onError: ISocketsContextOnErrorCallable;
23
+ onClose: ISocketsContextOnCloseCallable;
24
+ }
25
+ export interface IncomingGenericData extends IGenericData {
26
+ action: string;
27
+ }
package/types.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./domain/types";
2
+ export {};
3
+
4
+ //# sourceMappingURL=types.js.map
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n IGenericData,\n IWebsocketsAction,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsSubscription\n} from \"~/domain/types\";\n\nexport * from \"./domain/types\";\n\nexport interface IWebsocketsContextSendCallable {\n <T extends IGenericData = IGenericData>(action: string, data?: T, timeout?: number): void;\n}\n\nexport interface IWebsocketsContextCreateActionCallable<\n T extends IGenericData = IGenericData,\n R extends IGenericData = IGenericData\n> {\n (name: string): IWebsocketsAction<T, R>;\n}\n\nexport interface ISocketsContextOnMessageCallable {\n <T extends IncomingGenericData = IncomingGenericData>(\n action: string,\n cb: (data: T) => void\n ): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>>;\n}\n\nexport interface ISocketsContextOnErrorCallable {\n (\n cb: (data: IWebsocketsManagerErrorEvent) => void\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent>;\n}\n\nexport interface ISocketsContextOnCloseCallable {\n (\n cb: (data: IWebsocketsManagerCloseEvent) => void\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent>;\n}\n\nexport interface IWebsocketsContext {\n send: IWebsocketsContextSendCallable;\n createAction: IWebsocketsContextCreateActionCallable;\n onMessage: ISocketsContextOnMessageCallable;\n onError: ISocketsContextOnErrorCallable;\n onClose: ISocketsContextOnCloseCallable;\n}\n\nexport interface IncomingGenericData extends IGenericData {\n action: string;\n}\n"],"mappings":"AASA;AAA+B","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const getUrl: () => string | undefined;
@@ -0,0 +1,6 @@
1
+ export const getUrl = () => {
2
+ const websocketApiUrl = process.env.REACT_APP_WEBSOCKET_URL;
3
+ return !websocketApiUrl || websocketApiUrl === "undefined" ? undefined : websocketApiUrl;
4
+ };
5
+
6
+ //# sourceMappingURL=getUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getUrl","websocketApiUrl","process","env","REACT_APP_WEBSOCKET_URL","undefined"],"sources":["getUrl.ts"],"sourcesContent":["export const getUrl = (): string | undefined => {\n const websocketApiUrl = process.env.REACT_APP_WEBSOCKET_URL;\n\n return !websocketApiUrl || websocketApiUrl === \"undefined\" ? undefined : websocketApiUrl;\n};\n"],"mappings":"AAAA,OAAO,MAAMA,MAAM,GAAGA,CAAA,KAA0B;EAC5C,MAAMC,eAAe,GAAGC,OAAO,CAACC,GAAG,CAACC,uBAAuB;EAE3D,OAAO,CAACH,eAAe,IAAIA,eAAe,KAAK,WAAW,GAAGI,SAAS,GAAGJ,eAAe;AAC5F,CAAC","ignoreList":[]}