@moltos/sdk 0.16.9 → 0.16.10
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/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +10 -1
- package/dist/index.mjs +10 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -717,6 +717,8 @@ declare class WalletSDK {
|
|
|
717
717
|
on_escrow_release?: (event: WalletEvent) => void;
|
|
718
718
|
on_any?: (event: WalletEvent) => void;
|
|
719
719
|
on_error?: (err: Error) => void;
|
|
720
|
+
/** Called each time the connection is successfully (re)established after a drop */
|
|
721
|
+
on_reconnect?: (attempt: number) => void;
|
|
720
722
|
}): Promise<() => void>;
|
|
721
723
|
}
|
|
722
724
|
interface WalletEvent {
|
package/dist/index.d.ts
CHANGED
|
@@ -717,6 +717,8 @@ declare class WalletSDK {
|
|
|
717
717
|
on_escrow_release?: (event: WalletEvent) => void;
|
|
718
718
|
on_any?: (event: WalletEvent) => void;
|
|
719
719
|
on_error?: (err: Error) => void;
|
|
720
|
+
/** Called each time the connection is successfully (re)established after a drop */
|
|
721
|
+
on_reconnect?: (attempt: number) => void;
|
|
720
722
|
}): Promise<() => void>;
|
|
721
723
|
}
|
|
722
724
|
interface WalletEvent {
|
package/dist/index.js
CHANGED
|
@@ -888,12 +888,17 @@ var WalletSDK = class {
|
|
|
888
888
|
}
|
|
889
889
|
let reconnectDelay = 1e3;
|
|
890
890
|
const MAX_RECONNECT_DELAY = 3e4;
|
|
891
|
+
let reconnectAttempt = 0;
|
|
891
892
|
function connect() {
|
|
892
893
|
if (closed) return;
|
|
893
894
|
if (typeof EventSource !== "undefined") {
|
|
894
895
|
es = new EventSource(url);
|
|
895
896
|
es.onmessage = (e) => {
|
|
896
|
-
reconnectDelay
|
|
897
|
+
if (reconnectDelay !== 1e3) {
|
|
898
|
+
reconnectDelay = 1e3;
|
|
899
|
+
reconnectAttempt = 0;
|
|
900
|
+
callbacks.on_reconnect?.(reconnectAttempt);
|
|
901
|
+
}
|
|
897
902
|
try {
|
|
898
903
|
const data = JSON.parse(e.data);
|
|
899
904
|
if (data.type !== "connected" && data.type !== "ping") dispatch(data);
|
|
@@ -902,6 +907,7 @@ var WalletSDK = class {
|
|
|
902
907
|
};
|
|
903
908
|
es.onerror = () => {
|
|
904
909
|
if (closed) return;
|
|
910
|
+
reconnectAttempt++;
|
|
905
911
|
callbacks.on_error?.(new Error(`SSE connection error \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
|
|
906
912
|
es?.close();
|
|
907
913
|
setTimeout(() => {
|
|
@@ -916,7 +922,9 @@ var WalletSDK = class {
|
|
|
916
922
|
try {
|
|
917
923
|
const resp = await (0, import_cross_fetch.default)(url);
|
|
918
924
|
if (!resp.ok || !resp.body) throw new Error(`SSE connect failed: ${resp.status}`);
|
|
925
|
+
if (reconnectAttempt > 0) callbacks.on_reconnect?.(reconnectAttempt);
|
|
919
926
|
reconnectDelay = 1e3;
|
|
927
|
+
reconnectAttempt = 0;
|
|
920
928
|
const reader = resp.body.getReader();
|
|
921
929
|
const decoder = new TextDecoder();
|
|
922
930
|
let buf = "";
|
|
@@ -938,6 +946,7 @@ var WalletSDK = class {
|
|
|
938
946
|
}
|
|
939
947
|
} catch (e) {
|
|
940
948
|
if (closed) break;
|
|
949
|
+
reconnectAttempt++;
|
|
941
950
|
callbacks.on_error?.(new Error(`SSE dropped \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
|
|
942
951
|
await new Promise((r) => setTimeout(r, reconnectDelay));
|
|
943
952
|
reconnectDelay = Math.min(reconnectDelay * 2, MAX_RECONNECT_DELAY);
|
package/dist/index.mjs
CHANGED
|
@@ -728,12 +728,17 @@ var WalletSDK = class {
|
|
|
728
728
|
}
|
|
729
729
|
let reconnectDelay = 1e3;
|
|
730
730
|
const MAX_RECONNECT_DELAY = 3e4;
|
|
731
|
+
let reconnectAttempt = 0;
|
|
731
732
|
function connect() {
|
|
732
733
|
if (closed) return;
|
|
733
734
|
if (typeof EventSource !== "undefined") {
|
|
734
735
|
es = new EventSource(url);
|
|
735
736
|
es.onmessage = (e) => {
|
|
736
|
-
reconnectDelay
|
|
737
|
+
if (reconnectDelay !== 1e3) {
|
|
738
|
+
reconnectDelay = 1e3;
|
|
739
|
+
reconnectAttempt = 0;
|
|
740
|
+
callbacks.on_reconnect?.(reconnectAttempt);
|
|
741
|
+
}
|
|
737
742
|
try {
|
|
738
743
|
const data = JSON.parse(e.data);
|
|
739
744
|
if (data.type !== "connected" && data.type !== "ping") dispatch(data);
|
|
@@ -742,6 +747,7 @@ var WalletSDK = class {
|
|
|
742
747
|
};
|
|
743
748
|
es.onerror = () => {
|
|
744
749
|
if (closed) return;
|
|
750
|
+
reconnectAttempt++;
|
|
745
751
|
callbacks.on_error?.(new Error(`SSE connection error \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
|
|
746
752
|
es?.close();
|
|
747
753
|
setTimeout(() => {
|
|
@@ -756,7 +762,9 @@ var WalletSDK = class {
|
|
|
756
762
|
try {
|
|
757
763
|
const resp = await fetch2(url);
|
|
758
764
|
if (!resp.ok || !resp.body) throw new Error(`SSE connect failed: ${resp.status}`);
|
|
765
|
+
if (reconnectAttempt > 0) callbacks.on_reconnect?.(reconnectAttempt);
|
|
759
766
|
reconnectDelay = 1e3;
|
|
767
|
+
reconnectAttempt = 0;
|
|
760
768
|
const reader = resp.body.getReader();
|
|
761
769
|
const decoder = new TextDecoder();
|
|
762
770
|
let buf = "";
|
|
@@ -778,6 +786,7 @@ var WalletSDK = class {
|
|
|
778
786
|
}
|
|
779
787
|
} catch (e) {
|
|
780
788
|
if (closed) break;
|
|
789
|
+
reconnectAttempt++;
|
|
781
790
|
callbacks.on_error?.(new Error(`SSE dropped \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
|
|
782
791
|
await new Promise((r) => setTimeout(r, reconnectDelay));
|
|
783
792
|
reconnectDelay = Math.min(reconnectDelay * 2, MAX_RECONNECT_DELAY);
|
package/package.json
CHANGED