@cloudparse/up-miniapps-sdk 0.6.1 → 0.6.2

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.cjs CHANGED
@@ -3711,7 +3711,7 @@ var RoutingService = {
3711
3711
  };
3712
3712
 
3713
3713
  // package.json
3714
- var version = "0.6.1";
3714
+ var version = "0.6.2";
3715
3715
 
3716
3716
  // src/sdk.ts
3717
3717
  function deepFreeze(obj) {
@@ -5377,6 +5377,13 @@ function createWsService(options) {
5377
5377
  let reconnectTimeout = null;
5378
5378
  let reconnectDelay = 1e3;
5379
5379
  let isConnecting = false;
5380
+ let status = "closed";
5381
+ const statusListeners = /* @__PURE__ */ new Set();
5382
+ const setStatus = (next) => {
5383
+ if (status === next) return;
5384
+ status = next;
5385
+ for (const cb of statusListeners) cb(status);
5386
+ };
5380
5387
  const getWsUrl = () => options.baseUrl || options.api.wsUrl || "";
5381
5388
  const sendAction = (action, channelId) => {
5382
5389
  if (ws?.readyState === WebSocket.OPEN) {
@@ -5395,6 +5402,7 @@ function createWsService(options) {
5395
5402
  return;
5396
5403
  }
5397
5404
  isConnecting = true;
5405
+ setStatus("connecting");
5398
5406
  try {
5399
5407
  const wsUrl = getWsUrl();
5400
5408
  if (!wsUrl) {
@@ -5402,6 +5410,7 @@ function createWsService(options) {
5402
5410
  "[WS] No WebSocket backend URL available, connection delayed."
5403
5411
  );
5404
5412
  isConnecting = false;
5413
+ setStatus("closed");
5405
5414
  return;
5406
5415
  }
5407
5416
  let authParams = {};
@@ -5417,6 +5426,7 @@ function createWsService(options) {
5417
5426
  } else {
5418
5427
  console.warn("[WS] No auth available, connection delayed.");
5419
5428
  isConnecting = false;
5429
+ setStatus("closed");
5420
5430
  return;
5421
5431
  }
5422
5432
  const params = new URLSearchParams({ ...options.query, ...authParams });
@@ -5424,6 +5434,7 @@ function createWsService(options) {
5424
5434
  ws = new WebSocket(query ? `${wsUrl}?${query}` : wsUrl);
5425
5435
  ws.onopen = () => {
5426
5436
  isConnecting = false;
5437
+ setStatus("open");
5427
5438
  reconnectDelay = 1e3;
5428
5439
  if (channelField) {
5429
5440
  for (const channelId of subscriptions.keys()) {
@@ -5450,6 +5461,7 @@ function createWsService(options) {
5450
5461
  };
5451
5462
  ws.onclose = () => {
5452
5463
  isConnecting = false;
5464
+ setStatus("closed");
5453
5465
  scheduleReconnect();
5454
5466
  };
5455
5467
  ws.onerror = (err) => {
@@ -5460,6 +5472,7 @@ function createWsService(options) {
5460
5472
  } catch (err) {
5461
5473
  console.error("[WS] Failed to establish connection:", err);
5462
5474
  isConnecting = false;
5475
+ setStatus("closed");
5463
5476
  scheduleReconnect();
5464
5477
  }
5465
5478
  };
@@ -5473,6 +5486,15 @@ function createWsService(options) {
5473
5486
  ws.close();
5474
5487
  ws = null;
5475
5488
  }
5489
+ setStatus("closed");
5490
+ };
5491
+ const getStatus = () => status;
5492
+ const onStatusChange = (callback) => {
5493
+ statusListeners.add(callback);
5494
+ callback(status);
5495
+ return () => {
5496
+ statusListeners.delete(callback);
5497
+ };
5476
5498
  };
5477
5499
  const subscribe = (channelId, callback) => {
5478
5500
  const isNewChannel = !subscriptions.has(channelId);
@@ -5498,9 +5520,9 @@ function createWsService(options) {
5498
5520
  };
5499
5521
  };
5500
5522
  if (channelField) {
5501
- return { connect, disconnect, onMessage, subscribe };
5523
+ return { connect, disconnect, onMessage, subscribe, getStatus, onStatusChange };
5502
5524
  }
5503
- return { connect, disconnect, onMessage };
5525
+ return { connect, disconnect, onMessage, getStatus, onStatusChange };
5504
5526
  }
5505
5527
 
5506
5528
  // src/index.ts