@legendapp/state 1.6.4 → 1.7.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/CHANGELOG.md +26 -1
- package/package.json +1 -1
- package/persist-plugins/local-storage.d.ts +10 -1
- package/persist-plugins/local-storage.js +20 -8
- package/persist-plugins/local-storage.js.map +1 -1
- package/persist-plugins/local-storage.mjs +20 -9
- package/persist-plugins/local-storage.mjs.map +1 -1
- package/src/persist-plugins/local-storage.d.ts +10 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
## 1.7.0
|
|
2
|
+
|
|
3
|
+
- Feat: Add `ObservablePersistSessionStorage`. -By @minorgod https://github.com/LegendApp/legend-state/pull/164
|
|
4
|
+
|
|
5
|
+
## 1.6.4
|
|
6
|
+
|
|
7
|
+
- Types: `Selector` now allows `ObservableEvent`
|
|
8
|
+
- Types: `ObservableWriteable` was not exactly correct after the change to add Promise to `set`
|
|
9
|
+
|
|
10
|
+
## 1.6.3
|
|
11
|
+
|
|
12
|
+
- Fix: `useObservableNextRouter` was throwing warnings on some route changes
|
|
13
|
+
- Fix: `enableDirectPeek` set now matches normal set behavior with promise and function extraction and all
|
|
14
|
+
- Types: Package is now built in TypeScript strict mode
|
|
15
|
+
|
|
16
|
+
## 1.6.2
|
|
17
|
+
|
|
18
|
+
- Types: Improved types of Computed, Memo, and the babel transform
|
|
19
|
+
- Types: Improved handling of null and undefined in observables
|
|
20
|
+
|
|
21
|
+
## 1.6.1
|
|
22
|
+
|
|
23
|
+
- Types: Improve handling of optional properties in observable constructor
|
|
24
|
+
- Types: Add missing Promise type in set function
|
|
25
|
+
|
|
1
26
|
## 1.6.0
|
|
2
27
|
|
|
3
28
|
- Feat: `set` automatically unwraps promises
|
|
@@ -9,7 +34,7 @@
|
|
|
9
34
|
## 1.5.0
|
|
10
35
|
|
|
11
36
|
- Feat: add Reactive components, with configuration for React and React Native, to replace Legend components
|
|
12
|
-
- Fix: Improved types of useObservableQuery -By @sheldon-welinga
|
|
37
|
+
- Fix: Improved types of useObservableQuery -By @sheldon-welinga https://github.com/LegendApp/legend-state/pull/146
|
|
13
38
|
- Fix: babel transform was breaking Memo/Computed with observable child
|
|
14
39
|
|
|
15
40
|
## 1.4.0
|
package/package.json
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Change, ObservablePersistLocal, PersistMetadata } from '@legendapp/state';
|
|
2
|
-
|
|
2
|
+
declare class ObservablePersistLocalStorageBase implements ObservablePersistLocal {
|
|
3
3
|
private data;
|
|
4
|
+
private storage;
|
|
5
|
+
constructor(storage: Storage);
|
|
4
6
|
getTable(table: string): any;
|
|
5
7
|
getMetadata(table: string): PersistMetadata;
|
|
6
8
|
get(table: string, id: string): any;
|
|
@@ -11,3 +13,10 @@ export declare class ObservablePersistLocalStorage implements ObservablePersistL
|
|
|
11
13
|
private setValue;
|
|
12
14
|
private save;
|
|
13
15
|
}
|
|
16
|
+
export declare class ObservablePersistLocalStorage extends ObservablePersistLocalStorageBase {
|
|
17
|
+
constructor();
|
|
18
|
+
}
|
|
19
|
+
export declare class ObservablePersistSessionStorage extends ObservablePersistLocalStorageBase {
|
|
20
|
+
constructor();
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
var state = require('@legendapp/state');
|
|
4
4
|
|
|
5
5
|
const MetadataSuffix = '__m';
|
|
6
|
-
class
|
|
7
|
-
constructor() {
|
|
6
|
+
class ObservablePersistLocalStorageBase {
|
|
7
|
+
constructor(storage) {
|
|
8
8
|
this.data = {};
|
|
9
|
+
this.storage = storage;
|
|
9
10
|
}
|
|
10
11
|
getTable(table) {
|
|
11
|
-
if (typeof
|
|
12
|
+
if (typeof this.storage === 'undefined')
|
|
12
13
|
return undefined;
|
|
13
14
|
if (this.data[table] === undefined) {
|
|
14
15
|
try {
|
|
15
|
-
const value =
|
|
16
|
+
const value = this.storage.getItem(table);
|
|
16
17
|
this.data[table] = value ? JSON.parse(value) : undefined;
|
|
17
18
|
}
|
|
18
19
|
catch (_a) {
|
|
@@ -43,7 +44,7 @@ class ObservablePersistLocalStorage {
|
|
|
43
44
|
}
|
|
44
45
|
deleteTable(table) {
|
|
45
46
|
delete this.data[table];
|
|
46
|
-
|
|
47
|
+
this.storage.removeItem(table);
|
|
47
48
|
}
|
|
48
49
|
deleteMetadata(table) {
|
|
49
50
|
this.deleteTable(table + MetadataSuffix);
|
|
@@ -54,17 +55,28 @@ class ObservablePersistLocalStorage {
|
|
|
54
55
|
this.save(table);
|
|
55
56
|
}
|
|
56
57
|
save(table) {
|
|
57
|
-
if (typeof
|
|
58
|
+
if (typeof this.storage === 'undefined')
|
|
58
59
|
return;
|
|
59
60
|
const v = this.data[table];
|
|
60
61
|
if (v !== undefined && v !== null) {
|
|
61
|
-
|
|
62
|
+
this.storage.setItem(table, JSON.stringify(v));
|
|
62
63
|
}
|
|
63
64
|
else {
|
|
64
|
-
|
|
65
|
+
this.storage.removeItem(table);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
}
|
|
69
|
+
class ObservablePersistLocalStorage extends ObservablePersistLocalStorageBase {
|
|
70
|
+
constructor() {
|
|
71
|
+
super(localStorage);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class ObservablePersistSessionStorage extends ObservablePersistLocalStorageBase {
|
|
75
|
+
constructor() {
|
|
76
|
+
super(sessionStorage);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
68
79
|
|
|
69
80
|
exports.ObservablePersistLocalStorage = ObservablePersistLocalStorage;
|
|
81
|
+
exports.ObservablePersistSessionStorage = ObservablePersistSessionStorage;
|
|
70
82
|
//# sourceMappingURL=local-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-storage.js","sources":["../../../../src/persist-plugins/local-storage.ts"],"sourcesContent":[null],"names":["setAtPath"],"mappings":";;;;AAGA,MAAM,cAAc,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"local-storage.js","sources":["../../../../src/persist-plugins/local-storage.ts"],"sourcesContent":[null],"names":["setAtPath"],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { setAtPath } from '@legendapp/state';
|
|
2
2
|
|
|
3
3
|
const MetadataSuffix = '__m';
|
|
4
|
-
class
|
|
5
|
-
constructor() {
|
|
4
|
+
class ObservablePersistLocalStorageBase {
|
|
5
|
+
constructor(storage) {
|
|
6
6
|
this.data = {};
|
|
7
|
+
this.storage = storage;
|
|
7
8
|
}
|
|
8
9
|
getTable(table) {
|
|
9
|
-
if (typeof
|
|
10
|
+
if (typeof this.storage === 'undefined')
|
|
10
11
|
return undefined;
|
|
11
12
|
if (this.data[table] === undefined) {
|
|
12
13
|
try {
|
|
13
|
-
const value =
|
|
14
|
+
const value = this.storage.getItem(table);
|
|
14
15
|
this.data[table] = value ? JSON.parse(value) : undefined;
|
|
15
16
|
}
|
|
16
17
|
catch (_a) {
|
|
@@ -41,7 +42,7 @@ class ObservablePersistLocalStorage {
|
|
|
41
42
|
}
|
|
42
43
|
deleteTable(table) {
|
|
43
44
|
delete this.data[table];
|
|
44
|
-
|
|
45
|
+
this.storage.removeItem(table);
|
|
45
46
|
}
|
|
46
47
|
deleteMetadata(table) {
|
|
47
48
|
this.deleteTable(table + MetadataSuffix);
|
|
@@ -52,17 +53,27 @@ class ObservablePersistLocalStorage {
|
|
|
52
53
|
this.save(table);
|
|
53
54
|
}
|
|
54
55
|
save(table) {
|
|
55
|
-
if (typeof
|
|
56
|
+
if (typeof this.storage === 'undefined')
|
|
56
57
|
return;
|
|
57
58
|
const v = this.data[table];
|
|
58
59
|
if (v !== undefined && v !== null) {
|
|
59
|
-
|
|
60
|
+
this.storage.setItem(table, JSON.stringify(v));
|
|
60
61
|
}
|
|
61
62
|
else {
|
|
62
|
-
|
|
63
|
+
this.storage.removeItem(table);
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
}
|
|
67
|
+
class ObservablePersistLocalStorage extends ObservablePersistLocalStorageBase {
|
|
68
|
+
constructor() {
|
|
69
|
+
super(localStorage);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
class ObservablePersistSessionStorage extends ObservablePersistLocalStorageBase {
|
|
73
|
+
constructor() {
|
|
74
|
+
super(sessionStorage);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
66
77
|
|
|
67
|
-
export { ObservablePersistLocalStorage };
|
|
78
|
+
export { ObservablePersistLocalStorage, ObservablePersistSessionStorage };
|
|
68
79
|
//# sourceMappingURL=local-storage.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-storage.mjs","sources":["../../../../src/persist-plugins/local-storage.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA,MAAM,cAAc,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"local-storage.mjs","sources":["../../../../src/persist-plugins/local-storage.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Change, ObservablePersistLocal, PersistMetadata } from '@legendapp/state';
|
|
2
|
-
|
|
2
|
+
declare class ObservablePersistLocalStorageBase implements ObservablePersistLocal {
|
|
3
3
|
private data;
|
|
4
|
+
private storage;
|
|
5
|
+
constructor(storage: Storage);
|
|
4
6
|
getTable(table: string): any;
|
|
5
7
|
getMetadata(table: string): PersistMetadata;
|
|
6
8
|
get(table: string, id: string): any;
|
|
@@ -11,3 +13,10 @@ export declare class ObservablePersistLocalStorage implements ObservablePersistL
|
|
|
11
13
|
private setValue;
|
|
12
14
|
private save;
|
|
13
15
|
}
|
|
16
|
+
export declare class ObservablePersistLocalStorage extends ObservablePersistLocalStorageBase {
|
|
17
|
+
constructor();
|
|
18
|
+
}
|
|
19
|
+
export declare class ObservablePersistSessionStorage extends ObservablePersistLocalStorageBase {
|
|
20
|
+
constructor();
|
|
21
|
+
}
|
|
22
|
+
export {};
|