@etsoo/shared 1.0.85 → 1.0.86

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.
@@ -22,12 +22,13 @@ export interface IStorage {
22
22
  * Set data
23
23
  * @param key Key name
24
24
  * @param data Data, null for removal
25
+ * @param persistance Persist the data, false will stop persistance
25
26
  */
26
- setData(key: string, data: unknown): void;
27
+ setData(key: string, data: unknown, persistance?: boolean): void;
27
28
  }
28
29
  /**
29
30
  * Storage constructor interface
30
31
  */
31
32
  export interface IStorageConstructor {
32
- new (globalFields: string[]): IStorage;
33
+ new (globalFields: string[], callback: (field: string, data: string | null) => string | null): IStorage;
33
34
  }
@@ -8,8 +8,9 @@ export declare class WindowStorage implements IStorage {
8
8
  /**
9
9
  * Constructor
10
10
  * @param globalFields Global fields
11
+ * @param callback Field and data callback
11
12
  */
12
- constructor(globalFields: string[]);
13
+ constructor(globalFields: string[], callback: (field: string, data: string | null) => string | null);
13
14
  /**
14
15
  * Get data
15
16
  * @param key Key name
@@ -30,6 +31,7 @@ export declare class WindowStorage implements IStorage {
30
31
  * Set data
31
32
  * @param key Key name
32
33
  * @param data Data, null for removal
34
+ * @param persistance Persist the data, false will stop persistance
33
35
  */
34
- setData(key: string, data: unknown): void;
36
+ setData(key: string, data: unknown, persistance?: boolean): void;
35
37
  }
@@ -11,8 +11,9 @@ class WindowStorage {
11
11
  /**
12
12
  * Constructor
13
13
  * @param globalFields Global fields
14
+ * @param callback Field and data callback
14
15
  */
15
- constructor(globalFields) {
16
+ constructor(globalFields, callback) {
16
17
  this.globalFields = globalFields;
17
18
  if (globalFields.length == 0)
18
19
  return;
@@ -22,10 +23,11 @@ class WindowStorage {
22
23
  if (firsItem)
23
24
  return;
24
25
  globalFields.forEach((field) => {
25
- const data = localStorage.getItem(field);
26
- if (data != null) {
26
+ const data = callback(field, localStorage.getItem(field));
27
+ if (data == null)
28
+ sessionStorage.removeItem(field);
29
+ else
27
30
  sessionStorage.setItem(field, data);
28
- }
29
31
  });
30
32
  }
31
33
  /**
@@ -57,10 +59,12 @@ class WindowStorage {
57
59
  * Set data
58
60
  * @param key Key name
59
61
  * @param data Data, null for removal
62
+ * @param persistance Persist the data, false will stop persistance
60
63
  */
61
- setData(key, data) {
64
+ setData(key, data, persistance) {
62
65
  StorageUtils_1.StorageUtils.setSessionData(key, data);
63
- if (this.globalFields.includes(key)) {
66
+ if (persistance ||
67
+ (persistance == null && this.globalFields.includes(key))) {
64
68
  StorageUtils_1.StorageUtils.setLocalData(key, data);
65
69
  }
66
70
  }
@@ -22,12 +22,13 @@ export interface IStorage {
22
22
  * Set data
23
23
  * @param key Key name
24
24
  * @param data Data, null for removal
25
+ * @param persistance Persist the data, false will stop persistance
25
26
  */
26
- setData(key: string, data: unknown): void;
27
+ setData(key: string, data: unknown, persistance?: boolean): void;
27
28
  }
28
29
  /**
29
30
  * Storage constructor interface
30
31
  */
31
32
  export interface IStorageConstructor {
32
- new (globalFields: string[]): IStorage;
33
+ new (globalFields: string[], callback: (field: string, data: string | null) => string | null): IStorage;
33
34
  }
@@ -8,8 +8,9 @@ export declare class WindowStorage implements IStorage {
8
8
  /**
9
9
  * Constructor
10
10
  * @param globalFields Global fields
11
+ * @param callback Field and data callback
11
12
  */
12
- constructor(globalFields: string[]);
13
+ constructor(globalFields: string[], callback: (field: string, data: string | null) => string | null);
13
14
  /**
14
15
  * Get data
15
16
  * @param key Key name
@@ -30,6 +31,7 @@ export declare class WindowStorage implements IStorage {
30
31
  * Set data
31
32
  * @param key Key name
32
33
  * @param data Data, null for removal
34
+ * @param persistance Persist the data, false will stop persistance
33
35
  */
34
- setData(key: string, data: unknown): void;
36
+ setData(key: string, data: unknown, persistance?: boolean): void;
35
37
  }
@@ -8,8 +8,9 @@ export class WindowStorage {
8
8
  /**
9
9
  * Constructor
10
10
  * @param globalFields Global fields
11
+ * @param callback Field and data callback
11
12
  */
12
- constructor(globalFields) {
13
+ constructor(globalFields, callback) {
13
14
  this.globalFields = globalFields;
14
15
  if (globalFields.length == 0)
15
16
  return;
@@ -19,10 +20,11 @@ export class WindowStorage {
19
20
  if (firsItem)
20
21
  return;
21
22
  globalFields.forEach((field) => {
22
- const data = localStorage.getItem(field);
23
- if (data != null) {
23
+ const data = callback(field, localStorage.getItem(field));
24
+ if (data == null)
25
+ sessionStorage.removeItem(field);
26
+ else
24
27
  sessionStorage.setItem(field, data);
25
- }
26
28
  });
27
29
  }
28
30
  /**
@@ -54,10 +56,12 @@ export class WindowStorage {
54
56
  * Set data
55
57
  * @param key Key name
56
58
  * @param data Data, null for removal
59
+ * @param persistance Persist the data, false will stop persistance
57
60
  */
58
- setData(key, data) {
61
+ setData(key, data, persistance) {
59
62
  StorageUtils.setSessionData(key, data);
60
- if (this.globalFields.includes(key)) {
63
+ if (persistance ||
64
+ (persistance == null && this.globalFields.includes(key))) {
61
65
  StorageUtils.setLocalData(key, data);
62
66
  }
63
67
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/shared",
3
- "version": "1.0.85",
3
+ "version": "1.0.86",
4
4
  "description": "TypeScript shared utilities and functions",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -25,13 +25,17 @@ export interface IStorage {
25
25
  * Set data
26
26
  * @param key Key name
27
27
  * @param data Data, null for removal
28
+ * @param persistance Persist the data, false will stop persistance
28
29
  */
29
- setData(key: string, data: unknown): void;
30
+ setData(key: string, data: unknown, persistance?: boolean): void;
30
31
  }
31
32
 
32
33
  /**
33
34
  * Storage constructor interface
34
35
  */
35
36
  export interface IStorageConstructor {
36
- new (globalFields: string[]): IStorage;
37
+ new (
38
+ globalFields: string[],
39
+ callback: (field: string, data: string | null) => string | null
40
+ ): IStorage;
37
41
  }
@@ -10,8 +10,12 @@ export class WindowStorage implements IStorage {
10
10
  /**
11
11
  * Constructor
12
12
  * @param globalFields Global fields
13
+ * @param callback Field and data callback
13
14
  */
14
- constructor(private globalFields: string[]) {
15
+ constructor(
16
+ private globalFields: string[],
17
+ callback: (field: string, data: string | null) => string | null
18
+ ) {
15
19
  if (globalFields.length == 0) return;
16
20
 
17
21
  // Copy global fields to session storage where first item does not exist
@@ -20,10 +24,9 @@ export class WindowStorage implements IStorage {
20
24
  if (firsItem) return;
21
25
 
22
26
  globalFields.forEach((field) => {
23
- const data = localStorage.getItem(field);
24
- if (data != null) {
25
- sessionStorage.setItem(field, data);
26
- }
27
+ const data = callback(field, localStorage.getItem(field));
28
+ if (data == null) sessionStorage.removeItem(field);
29
+ else sessionStorage.setItem(field, data);
27
30
  });
28
31
  }
29
32
 
@@ -71,10 +74,14 @@ export class WindowStorage implements IStorage {
71
74
  * Set data
72
75
  * @param key Key name
73
76
  * @param data Data, null for removal
77
+ * @param persistance Persist the data, false will stop persistance
74
78
  */
75
- setData(key: string, data: unknown) {
79
+ setData(key: string, data: unknown, persistance?: boolean) {
76
80
  StorageUtils.setSessionData(key, data);
77
- if (this.globalFields.includes(key)) {
81
+ if (
82
+ persistance ||
83
+ (persistance == null && this.globalFields.includes(key))
84
+ ) {
78
85
  StorageUtils.setLocalData(key, data);
79
86
  }
80
87
  }