web-manager 3.2.48 → 3.2.49

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.
Files changed (2) hide show
  1. package/lib/storage.js +47 -12
  2. package/package.json +2 -2
package/lib/storage.js CHANGED
@@ -1,38 +1,73 @@
1
1
  /*
2
2
  */
3
3
  var utilities = require('./utilities.js');
4
- var support;
5
4
  var pseudoStorage = {};
6
5
 
7
6
  function Storage(storageObj) {
8
7
  this.storage = storageObj;
9
8
  }
10
9
 
11
- Storage.get = function(path, def, options) {
10
+ Storage.get = function (path, def) {
11
+ // Setup the usable storage object
12
+ var usableStorage;
13
+
14
+ // Setup the path and default value
12
15
  path = path || '';
16
+ // def = typeof def === 'undefined' ? {} : def;
17
+ // Important that defaults to undefined
18
+ // Because if default is empty obj, then a path to an undefined value like 'a.b.c' (assuming c is undefined) will return empty obj instead of undefined
19
+ def = typeof def === 'undefined' ? undefined : def;
13
20
 
21
+ // Try to parse the localStorage object
14
22
  try {
15
- return utilities.get(JSON.parse(window.localStorage.getItem('_manager')) || {}, path, def);
23
+ usableStorage = JSON.parse(window.localStorage.getItem('_manager') || '{}');
16
24
  } catch (e) {
17
- return utilities.get(pseudoStorage, path, def)
25
+ usableStorage = pseudoStorage;
26
+ }
27
+
28
+ // If there's no path, return the entire storage object
29
+ if (!path) {
30
+ return usableStorage || def;
18
31
  }
32
+
33
+ // Return the value at the path
34
+ return utilities.get(usableStorage, path, def);
19
35
  }
20
36
 
21
- Storage.set = function(path, value, options) {
22
- var existing;
37
+ Storage.set = function (path, value) {
38
+ // Setup the usable storage object
39
+ var usableStorage;
40
+
41
+ // Setup the path and default value
42
+ path = path || '';
43
+ value = typeof value === 'undefined' ? undefined : value;
44
+
45
+ // Try to parse the localStorage object
46
+ try {
47
+ usableStorage = Storage.get();
48
+ } catch (e) {
49
+ usableStorage = pseudoStorage;
50
+ }
51
+
52
+ // If there's no path, return the entire storage object
53
+ if (!path) {
54
+ usableStorage = value || {};
55
+ } else {
56
+ // Set the value at the path
57
+ utilities.set(usableStorage, path, value);
58
+ }
23
59
 
60
+ // Try to set the localStorage object
24
61
  try {
25
- existing = Storage.get('', {});
26
- utilities.set(existing, path, value);
27
- window.localStorage.setItem('_manager', JSON.stringify(existing));
62
+ window.localStorage.setItem('_manager', JSON.stringify(usableStorage));
28
63
  } catch (e) {
29
- utilities.set(pseudoStorage, path, value)
64
+ pseudoStorage = usableStorage;
30
65
  }
31
66
 
32
- return existing;
67
+ return usableStorage;
33
68
  }
34
69
 
35
- Storage.clear = function(options) {
70
+ Storage.clear = function () {
36
71
  try {
37
72
  window.localStorage.setItem('_manager', '{}');
38
73
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-manager",
3
- "version": "3.2.48",
3
+ "version": "3.2.49",
4
4
  "description": "Easily access important variables such as the query string, current domain, and current page in a single object.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -33,7 +33,7 @@
33
33
  }
34
34
  },
35
35
  "dependencies": {
36
- "@sentry/browser": "^7.110.1",
36
+ "@sentry/browser": "^7.112.2",
37
37
  "cookieconsent": "^3.1.1",
38
38
  "firebase": "^9.23.0",
39
39
  "lazysizes": "^5.3.2"