@merkur/plugin-session-storage 0.32.0 → 0.33.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/lib/index.cjs CHANGED
@@ -7,11 +7,11 @@ const KEY_PREFIX_SEPARATOR = '__';
7
7
  function setKeyPrefix(
8
8
  widget,
9
9
  additionalWords = [],
10
- defaultWords = ['widget', widget.name, widget.version]
10
+ defaultWords = ['widget', widget.name, widget.version],
11
11
  ) {
12
12
  const words = [...defaultWords, ...additionalWords].filter(Boolean);
13
13
  const prefix = `${KEY_PREFIX_SEPARATOR}${words.join(
14
- KEY_PREFIX_SEPARATOR
14
+ KEY_PREFIX_SEPARATOR,
15
15
  )}${KEY_PREFIX_SEPARATOR}`;
16
16
 
17
17
  widget.$in.sessionStorage.keyPrefix = prefix;
@@ -20,10 +20,7 @@ function setKeyPrefix(
20
20
  function sessionStoragePlugin() {
21
21
  return {
22
22
  async setup(widget) {
23
- widget = {
24
- ...sessionStorageAPI(),
25
- ...widget,
26
- };
23
+ core.assignMissingKeys(widget, sessionStorageAPI());
27
24
 
28
25
  widget.$in.sessionStorage = {};
29
26
  setKeyPrefix(widget);
@@ -56,12 +53,14 @@ function sessionStorageAPI() {
56
53
  }
57
54
 
58
55
  try {
59
- return JSON.parse(sessionStorage.getItem(keyPrefix + key))?.value;
56
+ const item = JSON.parse(sessionStorage.getItem(keyPrefix + key));
57
+
58
+ return item && typeof item === 'object' ? item.value : undefined;
60
59
  } catch (error) {
61
60
  throw new Error(
62
61
  `merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ${
63
62
  keyPrefix + key
64
- }: ${error.message}`
63
+ }: ${error.message}`,
65
64
  );
66
65
  }
67
66
  },
@@ -92,7 +91,7 @@ function sessionStorageAPI() {
92
91
  JSON.stringify({
93
92
  created: Date.now(),
94
93
  value,
95
- })
94
+ }),
96
95
  );
97
96
  } catch (error) {
98
97
  console.error(error);
package/lib/index.es9.cjs CHANGED
@@ -10,10 +10,7 @@ function setKeyPrefix(widget, additionalWords = [], defaultWords = ['widget', wi
10
10
  function sessionStoragePlugin() {
11
11
  return {
12
12
  async setup(widget) {
13
- widget = {
14
- ...sessionStorageAPI(),
15
- ...widget
16
- };
13
+ core.assignMissingKeys(widget, sessionStorageAPI());
17
14
  widget.$in.sessionStorage = {};
18
15
  setKeyPrefix(widget);
19
16
  widget.$dependencies.sessionStorage = getNativeSessionStorage();
@@ -43,8 +40,8 @@ function sessionStorageAPI() {
43
40
  return null;
44
41
  }
45
42
  try {
46
- var _JSON$parse;
47
- return (_JSON$parse = JSON.parse(sessionStorage.getItem(keyPrefix + key))) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.value;
43
+ const item = JSON.parse(sessionStorage.getItem(keyPrefix + key));
44
+ return item && typeof item === 'object' ? item.value : undefined;
48
45
  } catch (error) {
49
46
  throw new Error(`merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ${keyPrefix + key}: ${error.message}`);
50
47
  }
package/lib/index.es9.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { bindWidgetToFunctions } from '@merkur/core';
1
+ import { assignMissingKeys, bindWidgetToFunctions } from '@merkur/core';
2
2
  const KEY_PREFIX_SEPARATOR = '__';
3
3
  function setKeyPrefix(widget, additionalWords = [], defaultWords = ['widget', widget.name, widget.version]) {
4
4
  const words = [...defaultWords, ...additionalWords].filter(Boolean);
@@ -8,10 +8,7 @@ function setKeyPrefix(widget, additionalWords = [], defaultWords = ['widget', wi
8
8
  function sessionStoragePlugin() {
9
9
  return {
10
10
  async setup(widget) {
11
- widget = {
12
- ...sessionStorageAPI(),
13
- ...widget
14
- };
11
+ assignMissingKeys(widget, sessionStorageAPI());
15
12
  widget.$in.sessionStorage = {};
16
13
  setKeyPrefix(widget);
17
14
  widget.$dependencies.sessionStorage = getNativeSessionStorage();
@@ -41,8 +38,8 @@ function sessionStorageAPI() {
41
38
  return null;
42
39
  }
43
40
  try {
44
- var _JSON$parse;
45
- return (_JSON$parse = JSON.parse(sessionStorage.getItem(keyPrefix + key))) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.value;
41
+ const item = JSON.parse(sessionStorage.getItem(keyPrefix + key));
42
+ return item && typeof item === 'object' ? item.value : undefined;
46
43
  } catch (error) {
47
44
  throw new Error(`merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ${keyPrefix + key}: ${error.message}`);
48
45
  }
package/lib/index.js CHANGED
@@ -7,11 +7,11 @@ const KEY_PREFIX_SEPARATOR = '__';
7
7
  function setKeyPrefix(
8
8
  widget,
9
9
  additionalWords = [],
10
- defaultWords = ['widget', widget.name, widget.version]
10
+ defaultWords = ['widget', widget.name, widget.version],
11
11
  ) {
12
12
  const words = [...defaultWords, ...additionalWords].filter(Boolean);
13
13
  const prefix = `${KEY_PREFIX_SEPARATOR}${words.join(
14
- KEY_PREFIX_SEPARATOR
14
+ KEY_PREFIX_SEPARATOR,
15
15
  )}${KEY_PREFIX_SEPARATOR}`;
16
16
 
17
17
  widget.$in.sessionStorage.keyPrefix = prefix;
@@ -20,10 +20,7 @@ function setKeyPrefix(
20
20
  function sessionStoragePlugin() {
21
21
  return {
22
22
  async setup(widget) {
23
- widget = {
24
- ...sessionStorageAPI(),
25
- ...widget,
26
- };
23
+ core.assignMissingKeys(widget, sessionStorageAPI());
27
24
 
28
25
  widget.$in.sessionStorage = {};
29
26
  setKeyPrefix(widget);
@@ -56,12 +53,14 @@ function sessionStorageAPI() {
56
53
  }
57
54
 
58
55
  try {
59
- return JSON.parse(sessionStorage.getItem(keyPrefix + key))?.value;
56
+ const item = JSON.parse(sessionStorage.getItem(keyPrefix + key));
57
+
58
+ return item && typeof item === 'object' ? item.value : undefined;
60
59
  } catch (error) {
61
60
  throw new Error(
62
61
  `merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ${
63
62
  keyPrefix + key
64
- }: ${error.message}`
63
+ }: ${error.message}`,
65
64
  );
66
65
  }
67
66
  },
@@ -92,7 +91,7 @@ function sessionStorageAPI() {
92
91
  JSON.stringify({
93
92
  created: Date.now(),
94
93
  value,
95
- })
94
+ }),
96
95
  );
97
96
  } catch (error) {
98
97
  console.error(error);
package/lib/index.mjs CHANGED
@@ -1,15 +1,15 @@
1
- import { bindWidgetToFunctions } from '@merkur/core';
1
+ import { assignMissingKeys, bindWidgetToFunctions } from '@merkur/core';
2
2
 
3
3
  const KEY_PREFIX_SEPARATOR = '__';
4
4
 
5
5
  function setKeyPrefix(
6
6
  widget,
7
7
  additionalWords = [],
8
- defaultWords = ['widget', widget.name, widget.version]
8
+ defaultWords = ['widget', widget.name, widget.version],
9
9
  ) {
10
10
  const words = [...defaultWords, ...additionalWords].filter(Boolean);
11
11
  const prefix = `${KEY_PREFIX_SEPARATOR}${words.join(
12
- KEY_PREFIX_SEPARATOR
12
+ KEY_PREFIX_SEPARATOR,
13
13
  )}${KEY_PREFIX_SEPARATOR}`;
14
14
 
15
15
  widget.$in.sessionStorage.keyPrefix = prefix;
@@ -18,10 +18,7 @@ function setKeyPrefix(
18
18
  function sessionStoragePlugin() {
19
19
  return {
20
20
  async setup(widget) {
21
- widget = {
22
- ...sessionStorageAPI(),
23
- ...widget,
24
- };
21
+ assignMissingKeys(widget, sessionStorageAPI());
25
22
 
26
23
  widget.$in.sessionStorage = {};
27
24
  setKeyPrefix(widget);
@@ -54,12 +51,14 @@ function sessionStorageAPI() {
54
51
  }
55
52
 
56
53
  try {
57
- return JSON.parse(sessionStorage.getItem(keyPrefix + key))?.value;
54
+ const item = JSON.parse(sessionStorage.getItem(keyPrefix + key));
55
+
56
+ return item && typeof item === 'object' ? item.value : undefined;
58
57
  } catch (error) {
59
58
  throw new Error(
60
59
  `merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ${
61
60
  keyPrefix + key
62
- }: ${error.message}`
61
+ }: ${error.message}`,
63
62
  );
64
63
  }
65
64
  },
@@ -90,7 +89,7 @@ function sessionStorageAPI() {
90
89
  JSON.stringify({
91
90
  created: Date.now(),
92
91
  value,
93
- })
92
+ }),
94
93
  );
95
94
  } catch (error) {
96
95
  console.error(error);
package/lib/index.umd.js CHANGED
@@ -1 +1 @@
1
- function e(r){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(r)}!function(e,r){if("function"==typeof define&&define.amd)define("@merkur/plugin-session-storage",["exports","@merkur/core"],r);else if("undefined"!=typeof exports)r(exports,require("@merkur/core"));else{var t={exports:{}};r(t.exports,e.Merkur.Core),e.merkurPluginSessionStorage=t.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(r,t){function n(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?n(Object(t),!0).forEach((function(r){i(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):n(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function i(r,t,n){return(t=function(r){var t=function(r,t){if("object"!==e(r)||null===r)return r;var n=r[Symbol.toPrimitive];if(void 0!==n){var o=n.call(r,t||"default");if("object"!==e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(r)}(r,"string");return"symbol"===e(t)?t:String(t)}(t))in r?Object.defineProperty(r,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[t]=n,r}function s(e,r,t,n,o,i,s){try{var u=e[i](s),a=u.value}catch(e){return void t(e)}u.done?r(a):Promise.resolve(a).then(n,o)}function u(e){return function(){var r=this,t=arguments;return new Promise((function(n,o){var i=e.apply(r,t);function u(e){s(i,n,o,u,a,"next",e)}function a(e){s(i,n,o,u,a,"throw",e)}u(void 0)}))}}function a(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(!e)return;if("string"==typeof e)return c(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return c(e,r)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(r,"__esModule",{value:!0}),r.sessionStoragePlugin=function(){return{setup:function(e){return u((function*(){return(e=o(o({},{sessionStorage:{get:function(e,r){var t=e.$dependencies.sessionStorage,n=e.$in.sessionStorage.keyPrefix;if(!t)return null;try{var o;return null===(o=JSON.parse(t.getItem(n+r)))||void 0===o?void 0:o.value}catch(e){throw new Error("merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ".concat(n+r,": ").concat(e.message))}},set:function(e,r,t){var n=e.$dependencies.sessionStorage,o=e.$in.sessionStorage.keyPrefix;if(!n)return!1;try{n.setItem(o+r,JSON.stringify({created:Date.now(),value:t}))}catch(e){return console.error(e),!1}return!0},delete:function(e,r){var t=e.$dependencies.sessionStorage,n=e.$in.sessionStorage.keyPrefix;return!!t&&(t.removeItem(n+r),!0)}}}),e)).$in.sessionStorage={},l(e),e.$dependencies.sessionStorage="undefined"==typeof window?void 0:window.sessionStorage,e}))()},create:function(e){return u((function*(){return(0,t.bindWidgetToFunctions)(e,e.sessionStorage),e}))()}}},r.setKeyPrefix=l;var f="__";function l(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:["widget",e.name,e.version],n=[].concat(a(t),a(r)).filter(Boolean),o="".concat(f).concat(n.join(f)).concat(f);e.$in.sessionStorage.keyPrefix=o}}));
1
+ !function(e,n){if("function"==typeof define&&define.amd)define("@merkur/plugin-session-storage",["exports","@merkur/core"],n);else if("undefined"!=typeof exports)n(exports,require("@merkur/core"));else{var t={exports:{}};n(t.exports,e.Merkur.Core),e.merkurPluginSessionStorage=t.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e,n){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function r(e,n,t,r,o,i,s){try{var u=e[i](s),a=u.value}catch(e){return void t(e)}u.done?n(a):Promise.resolve(a).then(r,o)}function o(e){return function(){var n=this,t=arguments;return new Promise((function(o,i){var s=e.apply(n,t);function u(e){r(s,o,i,u,a,"next",e)}function a(e){r(s,o,i,u,a,"throw",e)}u(void 0)}))}}function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(!e)return;if("string"==typeof e)return s(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,n)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}Object.defineProperty(e,"__esModule",{value:!0}),e.sessionStoragePlugin=function(){return{setup:function(e){return o((function*(){return(0,n.assignMissingKeys)(e,{sessionStorage:{get:function(e,n){var r=e.$dependencies.sessionStorage,o=e.$in.sessionStorage.keyPrefix;if(!r)return null;try{var i=JSON.parse(r.getItem(o+n));return i&&"object"===t(i)?i.value:void 0}catch(e){throw new Error("merkur.plugin-session-storage.get: Failed to parse a session storage item value identified by the key ".concat(o+n,": ").concat(e.message))}},set:function(e,n,t){var r=e.$dependencies.sessionStorage,o=e.$in.sessionStorage.keyPrefix;if(!r)return!1;try{r.setItem(o+n,JSON.stringify({created:Date.now(),value:t}))}catch(e){return console.error(e),!1}return!0},delete:function(e,n){var t=e.$dependencies.sessionStorage,r=e.$in.sessionStorage.keyPrefix;return!!t&&(t.removeItem(r+n),!0)}}}),e.$in.sessionStorage={},a(e),e.$dependencies.sessionStorage="undefined"==typeof window?void 0:window.sessionStorage,e}))()},create:function(e){return o((function*(){return(0,n.bindWidgetToFunctions)(e,e.sessionStorage),e}))()}}},e.setKeyPrefix=a;var u="__";function a(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:["widget",e.name,e.version],r=[].concat(i(t),i(n)).filter(Boolean),o="".concat(u).concat(r.join(u)).concat(u);e.$in.sessionStorage.keyPrefix=o}}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkur/plugin-session-storage",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
4
4
  "description": "Merkur session storage.",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -48,10 +48,10 @@
48
48
  },
49
49
  "homepage": "https://merkur.js.org/",
50
50
  "devDependencies": {
51
- "@merkur/core": "^0.32.0"
51
+ "@merkur/core": "^0.33.0"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@merkur/core": "*"
55
55
  },
56
- "gitHead": "c45ffe12725e3c4afcf7f13869a25a96f6807055"
56
+ "gitHead": "3e88b57abfad267ac3f3b20b2ae6bf50f93f5375"
57
57
  }