@monterosa/sdk-enmasse-kit 0.18.2 → 0.18.3

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.js CHANGED
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var sdkUtil = require('@monterosa/sdk-util');
4
+ var sdkStorageKit = require('@monterosa/sdk-storage-kit');
5
+ var sdkLauncherKit = require('@monterosa/sdk-launcher-kit');
4
6
 
5
7
  const ARG_OVERRIDE_METHODS = 'enmasse_override_methods';
6
8
  const ARG_DEBUG = 'enmasse_debug';
@@ -56,7 +58,7 @@ const ENMASSE_OVERRIDE_METHODS = getSettingForMethods();
56
58
  const ENMASSE_DEBUG = getSettingFor(ARG_DEBUG);
57
59
  const ENMASSE_CONFIG = getSettingFor(ARG_CONFIG);
58
60
 
59
- var version = "0.18.2";
61
+ var version = "0.18.3";
60
62
 
61
63
  /* eslint no-bitwise: "off" */
62
64
 
@@ -1695,25 +1697,78 @@ const Enmasse = (() => {
1695
1697
  * Private methods
1696
1698
  */
1697
1699
 
1698
- const storeSession = (id) => {
1699
- if (sdkUtil.checkAvailability()) {
1700
- sdkUtil.setItem(PARAM_SESSION_ID, id);
1700
+ const storeSession = async (id) => {
1701
+ try {
1702
+ await sdkStorageKit.storageWrite(PARAM_SESSION_ID, id);
1703
+ } catch (err) {
1704
+ console.error(
1705
+ `Failed to persist session to shared storage: ${sdkUtil.getErrorMessage(err)}`,
1706
+ );
1701
1707
  }
1702
1708
  };
1703
1709
 
1704
- const recoverSession = () => {
1705
- if (sdkUtil.checkAvailability()) {
1706
- return sdkUtil.getItem(PARAM_SESSION_ID);
1710
+ const restoreSession = async () => {
1711
+ let restoredId = null;
1712
+
1713
+ // Read session from shared storage
1714
+ try {
1715
+ restoredId = await sdkStorageKit.storageRead(PARAM_SESSION_ID);
1716
+ } catch (err) {
1717
+ console.error(
1718
+ `Failed to read session from shared storage: ${sdkUtil.getErrorMessage(err)}`,
1719
+ );
1720
+ }
1721
+
1722
+ if (restoredId !== null) {
1723
+ return restoredId;
1707
1724
  }
1708
1725
 
1709
- return null;
1726
+ /**
1727
+ * Further down is a special case when we try to restore session id from the
1728
+ * local storage and save it to the shared storage. This could happen in
1729
+ * previous versions of the SDK when we didn't have a shared storage.
1730
+ */
1731
+
1732
+ if (sdkLauncherKit.getParentApplication() === null) {
1733
+ return null;
1734
+ }
1735
+
1736
+ try {
1737
+ restoredId = sdkUtil.getItem(PARAM_SESSION_ID);
1738
+ } catch (err) {
1739
+ console.error(
1740
+ `Failed to read local session during migration: ${sdkUtil.getErrorMessage(
1741
+ err,
1742
+ )}`,
1743
+ );
1744
+ }
1745
+
1746
+ if (restoredId === null) {
1747
+ return null;
1748
+ }
1749
+
1750
+ try {
1751
+ await sdkStorageKit.storageWrite(PARAM_SESSION_ID, restoredId);
1752
+ } catch (err) {
1753
+ console.error(
1754
+ `Failed to persist session to shared storage during migration: ${sdkUtil.getErrorMessage(
1755
+ err,
1756
+ )}`,
1757
+ );
1758
+ }
1759
+
1760
+ return restoredId;
1710
1761
  };
1711
1762
 
1712
- const resetSession = () => {
1763
+ const resetSession = async () => {
1713
1764
  sessionId = null;
1714
1765
 
1715
- if (sdkUtil.checkAvailability()) {
1716
- sdkUtil.removeItem(PARAM_SESSION_ID);
1766
+ try {
1767
+ await sdkStorageKit.storageRemove(PARAM_SESSION_ID);
1768
+ } catch (err) {
1769
+ console.error(
1770
+ `Failed to remove session from shared storage: ${sdkUtil.getErrorMessage(err)}`,
1771
+ );
1717
1772
  }
1718
1773
  };
1719
1774
 
@@ -1858,7 +1913,7 @@ const Enmasse = (() => {
1858
1913
  }
1859
1914
  };
1860
1915
 
1861
- const handleConnectionManagerMessage = (message) => {
1916
+ const handleConnectionManagerMessage = async (message) => {
1862
1917
  log(
1863
1918
  TYPE_PROTOCOL,
1864
1919
  'Enmasse::handleConnectionManagerMessage',
@@ -1886,7 +1941,7 @@ const Enmasse = (() => {
1886
1941
 
1887
1942
  if (sessionId === null) {
1888
1943
  [sessionId] = data.body;
1889
- storeSession(sessionId);
1944
+ await storeSession(sessionId);
1890
1945
  }
1891
1946
 
1892
1947
  setTime(time);
@@ -1950,6 +2005,16 @@ const Enmasse = (() => {
1950
2005
  self.send(channel, 'avgcounter', data);
1951
2006
  };
1952
2007
 
2008
+ /**
2009
+ * @internal
2010
+ */
2011
+ self.PARAM_SESSION_ID = PARAM_SESSION_ID;
2012
+
2013
+ /**
2014
+ * @internal
2015
+ */
2016
+ self.resetSession = resetSession;
2017
+
1953
2018
  /*
1954
2019
  * Public methods
1955
2020
  */
@@ -2028,7 +2093,7 @@ const Enmasse = (() => {
2028
2093
  // config file is passed either as GET parameter or via constructor
2029
2094
  configFile = !ENMASSE_CONFIG ? config.config || null : ENMASSE_CONFIG;
2030
2095
  info = config.info || [];
2031
- sessionId = recoverSession();
2096
+ sessionId = await restoreSession();
2032
2097
 
2033
2098
  if (typeof config.forceSecure === 'boolean') {
2034
2099
  forceSecure = config.forceSecure;
@@ -2041,7 +2106,7 @@ const Enmasse = (() => {
2041
2106
 
2042
2107
  // If session id has invalid format
2043
2108
  if (sessionId !== null && !validateSession(sessionId)) {
2044
- resetSession();
2109
+ await resetSession();
2045
2110
  }
2046
2111
 
2047
2112
  queue = new Queue({