@enfyra/sdk-nuxt 0.4.2 → 0.6.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.
- package/dist/module.cjs +3 -8
- package/dist/module.d.ts.map +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +3 -8
- package/dist/runtime/composables/useEnfyraWebSocket.d.ts +7 -7
- package/dist/runtime/composables/useEnfyraWebSocket.d.ts.map +1 -1
- package/dist/runtime/composables/useEnfyraWebSocket.js +17 -7
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/module.ts +3 -8
- package/src/runtime/composables/useEnfyraWebSocket.ts +25 -15
- package/src/types/index.ts +10 -0
package/dist/module.cjs
CHANGED
|
@@ -86,14 +86,9 @@ declare module '#imports' {
|
|
|
86
86
|
|
|
87
87
|
export function useEnfyraAuth(): import('@enfyra/sdk-nuxt/types').UseEnfyraAuthReturn
|
|
88
88
|
|
|
89
|
-
export
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
close: () => void
|
|
93
|
-
getWebSocket: () => WebSocket | null
|
|
94
|
-
on: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void
|
|
95
|
-
off: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void
|
|
96
|
-
}
|
|
89
|
+
export type EnfyraWebSocketInstance = import('@enfyra/sdk-nuxt/types').EnfyraWebSocketInstance
|
|
90
|
+
|
|
91
|
+
export function useEnfyraWebSocket(path: string, options?: { reconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number }): EnfyraWebSocketInstance
|
|
97
92
|
}
|
|
98
93
|
`
|
|
99
94
|
});
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;AAED,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;AAED,wBAqIG"}
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -83,14 +83,9 @@ declare module '#imports' {
|
|
|
83
83
|
|
|
84
84
|
export function useEnfyraAuth(): import('@enfyra/sdk-nuxt/types').UseEnfyraAuthReturn
|
|
85
85
|
|
|
86
|
-
export
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
close: () => void
|
|
90
|
-
getWebSocket: () => WebSocket | null
|
|
91
|
-
on: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void
|
|
92
|
-
off: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void
|
|
93
|
-
}
|
|
86
|
+
export type EnfyraWebSocketInstance = import('@enfyra/sdk-nuxt/types').EnfyraWebSocketInstance
|
|
87
|
+
|
|
88
|
+
export function useEnfyraWebSocket(path: string, options?: { reconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number }): EnfyraWebSocketInstance
|
|
94
89
|
}
|
|
95
90
|
`
|
|
96
91
|
});
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export interface EnfyraWebSocketOptions {
|
|
2
|
-
path: string;
|
|
3
2
|
reconnect?: boolean;
|
|
4
3
|
reconnectInterval?: number;
|
|
5
4
|
maxReconnectAttempts?: number;
|
|
6
5
|
}
|
|
7
|
-
export interface
|
|
8
|
-
connect: () =>
|
|
9
|
-
send: (event: string, data?: any) => void;
|
|
6
|
+
export interface EnfyraWebSocketInstance {
|
|
7
|
+
connect: () => void;
|
|
10
8
|
close: () => void;
|
|
9
|
+
send: (event: string, data?: any) => void;
|
|
10
|
+
on: (event: string, callback: (...args: any[]) => void) => void;
|
|
11
|
+
off: (event: string, callback: (...args: any[]) => void) => void;
|
|
11
12
|
getWebSocket: () => WebSocket | null;
|
|
12
|
-
|
|
13
|
-
off: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void;
|
|
13
|
+
isConnected: () => boolean;
|
|
14
14
|
}
|
|
15
|
-
export declare function useEnfyraWebSocket(
|
|
15
|
+
export declare function useEnfyraWebSocket(path: string, options?: EnfyraWebSocketOptions): EnfyraWebSocketInstance;
|
|
16
16
|
//# sourceMappingURL=useEnfyraWebSocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEnfyraWebSocket.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useEnfyraWebSocket.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,
|
|
1
|
+
{"version":3,"file":"useEnfyraWebSocket.d.ts","sourceRoot":"","sources":["../../../src/runtime/composables/useEnfyraWebSocket.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAChE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,uBAAuB,CA2G9G"}
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
import { useRuntimeConfig } from "#imports";
|
|
2
2
|
import { normalizeUrl } from "../utils/url.js";
|
|
3
|
-
export function useEnfyraWebSocket(options) {
|
|
3
|
+
export function useEnfyraWebSocket(path, options = {}) {
|
|
4
4
|
const config = useRuntimeConfig().public.enfyraSDK;
|
|
5
5
|
const apiUrl = config?.apiUrl || process.env.API_URL || "http://localhost:1105";
|
|
6
6
|
let ws = null;
|
|
7
7
|
let reconnectTimer = null;
|
|
8
8
|
let reconnectAttempts = 0;
|
|
9
9
|
const listeners = /* @__PURE__ */ new Map();
|
|
10
|
-
const getWsUrl = (
|
|
10
|
+
const getWsUrl = (path2) => {
|
|
11
11
|
const url = apiUrl.replace(/^http/, "ws");
|
|
12
|
-
return normalizeUrl(url,
|
|
12
|
+
return normalizeUrl(url, path2);
|
|
13
13
|
};
|
|
14
14
|
const connect = () => {
|
|
15
15
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
16
|
-
return
|
|
16
|
+
return;
|
|
17
17
|
}
|
|
18
|
-
ws = new WebSocket(getWsUrl(
|
|
18
|
+
ws = new WebSocket(getWsUrl(path));
|
|
19
19
|
ws.onopen = () => {
|
|
20
20
|
reconnectAttempts = 0;
|
|
21
21
|
emit("open");
|
|
22
22
|
};
|
|
23
23
|
ws.onmessage = (event) => {
|
|
24
|
-
|
|
24
|
+
try {
|
|
25
|
+
const parsed = JSON.parse(event.data);
|
|
26
|
+
const eventName = parsed.event || "message";
|
|
27
|
+
emit(eventName, parsed.data);
|
|
28
|
+
emit("message", parsed);
|
|
29
|
+
} catch {
|
|
30
|
+
emit("message", event.data);
|
|
31
|
+
}
|
|
25
32
|
};
|
|
26
33
|
ws.onclose = () => {
|
|
27
34
|
emit("close");
|
|
@@ -35,7 +42,6 @@ export function useEnfyraWebSocket(options) {
|
|
|
35
42
|
ws.onerror = (error) => {
|
|
36
43
|
emit("error", error);
|
|
37
44
|
};
|
|
38
|
-
return ws;
|
|
39
45
|
};
|
|
40
46
|
const send = (event, data) => {
|
|
41
47
|
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
|
@@ -55,6 +61,9 @@ export function useEnfyraWebSocket(options) {
|
|
|
55
61
|
}
|
|
56
62
|
};
|
|
57
63
|
const getWebSocket = () => ws;
|
|
64
|
+
const isConnected = () => {
|
|
65
|
+
return ws !== null && ws.readyState === WebSocket.OPEN;
|
|
66
|
+
};
|
|
58
67
|
const on = (event, callback) => {
|
|
59
68
|
if (!listeners.has(event)) {
|
|
60
69
|
listeners.set(event, /* @__PURE__ */ new Set());
|
|
@@ -78,6 +87,7 @@ export function useEnfyraWebSocket(options) {
|
|
|
78
87
|
send,
|
|
79
88
|
close,
|
|
80
89
|
getWebSocket,
|
|
90
|
+
isConnected,
|
|
81
91
|
on,
|
|
82
92
|
off
|
|
83
93
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -140,4 +140,13 @@ export interface UseEnfyraApiClientReturn<T> {
|
|
|
140
140
|
execute: (executeOpts?: ExecuteOptions) => Promise<T | T[] | null>;
|
|
141
141
|
}
|
|
142
142
|
export * from './auth';
|
|
143
|
+
export interface EnfyraWebSocketInstance {
|
|
144
|
+
connect: () => void;
|
|
145
|
+
close: () => void;
|
|
146
|
+
send: (event: string, data?: any) => void;
|
|
147
|
+
on: (event: string, callback: (...args: any[]) => void) => void;
|
|
148
|
+
off: (event: string, callback: (...args: any[]) => void) => void;
|
|
149
|
+
getWebSocket: () => WebSocket | null;
|
|
150
|
+
isConnected: () => boolean;
|
|
151
|
+
}
|
|
143
152
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/module.ts
CHANGED
|
@@ -114,14 +114,9 @@ declare module '#imports' {
|
|
|
114
114
|
|
|
115
115
|
export function useEnfyraAuth(): import('@enfyra/sdk-nuxt/types').UseEnfyraAuthReturn
|
|
116
116
|
|
|
117
|
-
export
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
close: () => void
|
|
121
|
-
getWebSocket: () => WebSocket | null
|
|
122
|
-
on: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void
|
|
123
|
-
off: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void
|
|
124
|
-
}
|
|
117
|
+
export type EnfyraWebSocketInstance = import('@enfyra/sdk-nuxt/types').EnfyraWebSocketInstance
|
|
118
|
+
|
|
119
|
+
export function useEnfyraWebSocket(path: string, options?: { reconnect?: boolean; reconnectInterval?: number; maxReconnectAttempts?: number }): EnfyraWebSocketInstance
|
|
125
120
|
}
|
|
126
121
|
`,
|
|
127
122
|
});
|
|
@@ -2,22 +2,22 @@ import { useRuntimeConfig } from "#imports";
|
|
|
2
2
|
import { normalizeUrl } from "../utils/url";
|
|
3
3
|
|
|
4
4
|
export interface EnfyraWebSocketOptions {
|
|
5
|
-
path: string;
|
|
6
5
|
reconnect?: boolean;
|
|
7
6
|
reconnectInterval?: number;
|
|
8
7
|
maxReconnectAttempts?: number;
|
|
9
8
|
}
|
|
10
9
|
|
|
11
|
-
export interface
|
|
12
|
-
connect: () =>
|
|
13
|
-
send: (event: string, data?: any) => void;
|
|
10
|
+
export interface EnfyraWebSocketInstance {
|
|
11
|
+
connect: () => void;
|
|
14
12
|
close: () => void;
|
|
13
|
+
send: (event: string, data?: any) => void;
|
|
14
|
+
on: (event: string, callback: (...args: any[]) => void) => void;
|
|
15
|
+
off: (event: string, callback: (...args: any[]) => void) => void;
|
|
15
16
|
getWebSocket: () => WebSocket | null;
|
|
16
|
-
|
|
17
|
-
off: (event: 'message' | 'open' | 'close' | 'error', callback: (...args: any[]) => void) => void;
|
|
17
|
+
isConnected: () => boolean;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export function useEnfyraWebSocket(options: EnfyraWebSocketOptions):
|
|
20
|
+
export function useEnfyraWebSocket(path: string, options: EnfyraWebSocketOptions = {}): EnfyraWebSocketInstance {
|
|
21
21
|
const config = useRuntimeConfig().public.enfyraSDK;
|
|
22
22
|
const apiUrl = config?.apiUrl || process.env.API_URL || 'http://localhost:1105';
|
|
23
23
|
|
|
@@ -31,12 +31,12 @@ export function useEnfyraWebSocket(options: EnfyraWebSocketOptions): EnfyraWebSo
|
|
|
31
31
|
return normalizeUrl(url, path);
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
const connect = ():
|
|
34
|
+
const connect = (): void => {
|
|
35
35
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
36
|
-
return
|
|
36
|
+
return;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
ws = new WebSocket(getWsUrl(
|
|
39
|
+
ws = new WebSocket(getWsUrl(path));
|
|
40
40
|
|
|
41
41
|
ws.onopen = () => {
|
|
42
42
|
reconnectAttempts = 0;
|
|
@@ -44,7 +44,14 @@ export function useEnfyraWebSocket(options: EnfyraWebSocketOptions): EnfyraWebSo
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
ws.onmessage = (event: MessageEvent) => {
|
|
47
|
-
|
|
47
|
+
try {
|
|
48
|
+
const parsed = JSON.parse(event.data);
|
|
49
|
+
const eventName = parsed.event || 'message';
|
|
50
|
+
emit(eventName, parsed.data);
|
|
51
|
+
emit('message', parsed);
|
|
52
|
+
} catch {
|
|
53
|
+
emit('message', event.data);
|
|
54
|
+
}
|
|
48
55
|
};
|
|
49
56
|
|
|
50
57
|
ws.onclose = () => {
|
|
@@ -60,8 +67,6 @@ export function useEnfyraWebSocket(options: EnfyraWebSocketOptions): EnfyraWebSo
|
|
|
60
67
|
ws.onerror = (error: Event) => {
|
|
61
68
|
emit('error', error);
|
|
62
69
|
};
|
|
63
|
-
|
|
64
|
-
return ws;
|
|
65
70
|
};
|
|
66
71
|
|
|
67
72
|
const send = (event: string, data?: any): void => {
|
|
@@ -85,14 +90,18 @@ export function useEnfyraWebSocket(options: EnfyraWebSocketOptions): EnfyraWebSo
|
|
|
85
90
|
|
|
86
91
|
const getWebSocket = (): WebSocket | null => ws;
|
|
87
92
|
|
|
88
|
-
const
|
|
93
|
+
const isConnected = (): boolean => {
|
|
94
|
+
return ws !== null && ws.readyState === WebSocket.OPEN;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const on = (event: string, callback: (...args: any[]) => void): void => {
|
|
89
98
|
if (!listeners.has(event)) {
|
|
90
99
|
listeners.set(event, new Set());
|
|
91
100
|
}
|
|
92
101
|
listeners.get(event)!.add(callback);
|
|
93
102
|
};
|
|
94
103
|
|
|
95
|
-
const off = (event:
|
|
104
|
+
const off = (event: string, callback: (...args: any[]) => void): void => {
|
|
96
105
|
const eventListeners = listeners.get(event);
|
|
97
106
|
if (eventListeners) {
|
|
98
107
|
eventListeners.delete(callback);
|
|
@@ -111,6 +120,7 @@ export function useEnfyraWebSocket(options: EnfyraWebSocketOptions): EnfyraWebSo
|
|
|
111
120
|
send,
|
|
112
121
|
close,
|
|
113
122
|
getWebSocket,
|
|
123
|
+
isConnected,
|
|
114
124
|
on,
|
|
115
125
|
off,
|
|
116
126
|
};
|
package/src/types/index.ts
CHANGED
|
@@ -163,3 +163,13 @@ export interface UseEnfyraApiClientReturn<T> {
|
|
|
163
163
|
|
|
164
164
|
export * from './auth';
|
|
165
165
|
|
|
166
|
+
export interface EnfyraWebSocketInstance {
|
|
167
|
+
connect: () => void;
|
|
168
|
+
close: () => void;
|
|
169
|
+
send: (event: string, data?: any) => void;
|
|
170
|
+
on: (event: string, callback: (...args: any[]) => void) => void;
|
|
171
|
+
off: (event: string, callback: (...args: any[]) => void) => void;
|
|
172
|
+
getWebSocket: () => WebSocket | null;
|
|
173
|
+
isConnected: () => boolean;
|
|
174
|
+
}
|
|
175
|
+
|