@esportsplus/web-storage 0.1.13 → 0.1.15
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/build/index.d.ts +25 -11
- package/build/index.js +4 -9
- package/build/local/index.d.ts +11 -12
- package/build/local/index.js +22 -33
- package/build/local/types.d.ts +3 -3
- package/build/local/types.js +1 -4
- package/build/memory/index.d.ts +17 -0
- package/build/memory/index.js +53 -0
- package/package.json +1 -1
- package/src/index.ts +3 -2
- package/src/local/index.ts +28 -37
- package/src/local/types.ts +2 -2
- package/src/memory/index.ts +74 -0
- package/tsconfig.json +4 -3
package/build/index.d.ts
CHANGED
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
import local from './local';
|
|
2
|
+
import memory from './memory';
|
|
2
3
|
declare const _default: {
|
|
3
4
|
local: {
|
|
4
|
-
store: (options
|
|
5
|
+
store: <T extends object>(options: import("./local/types").Options) => {
|
|
5
6
|
instance: LocalForage;
|
|
6
|
-
iterate: <
|
|
7
|
+
iterate: <T_1, U>(iteratee: (value: T_1, key: string, iterationNumber: number) => U, callback?: ((err: any, result: U) => void) | undefined) => Promise<U>;
|
|
7
8
|
keys: (callback?: ((err: any, keys: string[]) => void) | undefined) => Promise<string[]>;
|
|
8
9
|
length: (callback?: ((err: any, numberOfKeys: number) => void) | undefined) => Promise<number>;
|
|
9
|
-
all(): Promise<
|
|
10
|
+
all(): Promise<{} | T>;
|
|
10
11
|
clear(): Promise<void>;
|
|
11
|
-
delete(...keys:
|
|
12
|
-
filter(filter: Function): Promise<
|
|
13
|
-
get(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
delete(...keys: (keyof T)[]): Promise<void>;
|
|
13
|
+
filter(filter: Function): Promise<{} | T>;
|
|
14
|
+
get(key: keyof T): Promise<(T[keyof T] & {}) | undefined>;
|
|
15
|
+
only(...keys: (keyof T)[]): Promise<{} | T>;
|
|
16
|
+
replace(values: T): Promise<void>;
|
|
17
|
+
set(key: keyof T, value: T[keyof T]): Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
memory: {
|
|
21
|
+
store: <T_2 extends object>(data?: {} | T_2) => {
|
|
22
|
+
defaults: {} | T_2;
|
|
23
|
+
store: {} | T_2;
|
|
24
|
+
all(): {} | ({} & T_2);
|
|
25
|
+
clear(): void;
|
|
26
|
+
delete(key: never): void;
|
|
27
|
+
filter(filter: Function): Promise<{} | T_2>;
|
|
28
|
+
get(key: never): ({} | T_2)[never];
|
|
29
|
+
only(...keys: never[]): any;
|
|
30
|
+
replace(values: {} | T_2): void;
|
|
31
|
+
set(key: never, value: ({} | T_2)[never]): void;
|
|
18
32
|
};
|
|
19
33
|
};
|
|
20
34
|
};
|
|
21
35
|
export default _default;
|
|
22
|
-
export { local };
|
|
36
|
+
export { local, memory };
|
package/build/index.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.local = void 0;
|
|
7
|
-
const local_1 = __importDefault(require("./local"));
|
|
8
|
-
exports.local = local_1.default;
|
|
9
|
-
exports.default = { local: local_1.default };
|
|
1
|
+
import local from './local';
|
|
2
|
+
import memory from './memory';
|
|
3
|
+
export default { local, memory };
|
|
4
|
+
export { local, memory };
|
package/build/local/index.d.ts
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare class Store {
|
|
1
|
+
import { Options } from './types';
|
|
2
|
+
declare class Store<T extends object> {
|
|
3
3
|
instance: LocalForage;
|
|
4
4
|
iterate: LocalForage['iterate'];
|
|
5
5
|
keys: LocalForage['keys'];
|
|
6
6
|
length: LocalForage['length'];
|
|
7
|
-
constructor(options
|
|
8
|
-
all(): Promise<
|
|
7
|
+
constructor(options: Options);
|
|
8
|
+
all(): Promise<T | {}>;
|
|
9
9
|
clear(): Promise<void>;
|
|
10
|
-
delete(...keys:
|
|
11
|
-
filter(filter: Function): Promise<
|
|
12
|
-
get(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}): Promise<void>;
|
|
10
|
+
delete(...keys: (keyof T)[]): Promise<void>;
|
|
11
|
+
filter(filter: Function): Promise<T | {}>;
|
|
12
|
+
get(key: keyof T): Promise<(T[keyof T] & {}) | undefined>;
|
|
13
|
+
only(...keys: (keyof T)[]): Promise<{} | T>;
|
|
14
|
+
replace(values: T): Promise<void>;
|
|
15
|
+
set(key: keyof T, value: T[keyof T]): Promise<void>;
|
|
17
16
|
}
|
|
18
17
|
declare const _default: {
|
|
19
|
-
store: (options
|
|
18
|
+
store: <T extends object>(options: Options) => Store<T>;
|
|
20
19
|
};
|
|
21
20
|
export default _default;
|
package/build/local/index.js
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const types_1 = require("./types");
|
|
7
|
-
const localforage_1 = __importDefault(require("localforage"));
|
|
1
|
+
import { Driver } from './types';
|
|
2
|
+
import localforage from 'localforage';
|
|
8
3
|
class Store {
|
|
9
4
|
instance;
|
|
10
5
|
iterate;
|
|
11
6
|
keys;
|
|
12
7
|
length;
|
|
13
|
-
constructor(options
|
|
14
|
-
let driver
|
|
15
|
-
switch ((options.driver ||
|
|
16
|
-
case
|
|
17
|
-
driver =
|
|
8
|
+
constructor(options) {
|
|
9
|
+
let driver;
|
|
10
|
+
switch ((options.driver || Driver.IndexedDB)) {
|
|
11
|
+
case Driver.LocalStorage:
|
|
12
|
+
driver = localforage.LOCALSTORAGE;
|
|
18
13
|
break;
|
|
19
14
|
default:
|
|
20
|
-
driver =
|
|
15
|
+
driver = localforage.INDEXEDDB;
|
|
21
16
|
break;
|
|
22
17
|
}
|
|
23
|
-
this.instance =
|
|
18
|
+
this.instance = localforage.createInstance(Object.assign(options, { driver, storeName: options.name }));
|
|
24
19
|
this.iterate = this.instance.iterate;
|
|
25
20
|
this.keys = this.instance.keys;
|
|
26
21
|
this.length = this.instance.length;
|
|
@@ -57,31 +52,25 @@ class Store {
|
|
|
57
52
|
});
|
|
58
53
|
return values;
|
|
59
54
|
}
|
|
60
|
-
async get(
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
async get(key) {
|
|
56
|
+
let value = await this.instance.getItem(key);
|
|
57
|
+
if (value === null) {
|
|
58
|
+
return undefined;
|
|
63
59
|
}
|
|
64
|
-
return
|
|
60
|
+
return value;
|
|
65
61
|
}
|
|
66
|
-
async
|
|
67
|
-
|
|
68
|
-
for (let i = 0, n = keys.length; i < n; i++) {
|
|
69
|
-
if (haystack.includes(keys[i])) {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
return true;
|
|
62
|
+
async only(...keys) {
|
|
63
|
+
return await this.filter((key) => keys.includes(key));
|
|
75
64
|
}
|
|
76
|
-
async
|
|
77
|
-
if (!Object.keys(values).length) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
65
|
+
async replace(values) {
|
|
80
66
|
for (let key in values) {
|
|
81
67
|
await this.instance.setItem(key, values[key]);
|
|
82
68
|
}
|
|
83
69
|
}
|
|
70
|
+
async set(key, value) {
|
|
71
|
+
await this.instance.setItem(key, value);
|
|
72
|
+
}
|
|
84
73
|
}
|
|
85
|
-
|
|
86
|
-
store: (options
|
|
74
|
+
export default {
|
|
75
|
+
store: (options) => new Store(options)
|
|
87
76
|
};
|
package/build/local/types.d.ts
CHANGED
package/build/local/types.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Driver = void 0;
|
|
4
1
|
var Driver;
|
|
5
2
|
(function (Driver) {
|
|
6
3
|
Driver[Driver["IndexedDB"] = 0] = "IndexedDB";
|
|
7
4
|
Driver[Driver["LocalStorage"] = 1] = "LocalStorage";
|
|
8
5
|
})(Driver || (Driver = {}));
|
|
9
|
-
exports.Driver = Driver;
|
|
10
6
|
;
|
|
7
|
+
export { Driver };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare class Store<T extends object> {
|
|
2
|
+
defaults: T;
|
|
3
|
+
store: T;
|
|
4
|
+
constructor(defaults: T);
|
|
5
|
+
all(): {} & T;
|
|
6
|
+
clear(): void;
|
|
7
|
+
delete(key: keyof T): void;
|
|
8
|
+
filter(filter: Function): Promise<T | {}>;
|
|
9
|
+
get(key: keyof T): T[keyof T];
|
|
10
|
+
only(...keys: (keyof T)[]): any;
|
|
11
|
+
replace(values: T): void;
|
|
12
|
+
set(key: keyof T, value: T[keyof T]): void;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: {
|
|
15
|
+
store: <T extends object>(data?: {} | T) => Store<{} | T>;
|
|
16
|
+
};
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
class Store {
|
|
2
|
+
defaults;
|
|
3
|
+
store;
|
|
4
|
+
constructor(defaults) {
|
|
5
|
+
this.defaults = defaults;
|
|
6
|
+
this.store = this.defaults;
|
|
7
|
+
}
|
|
8
|
+
all() {
|
|
9
|
+
return Object.assign({}, this.store);
|
|
10
|
+
}
|
|
11
|
+
clear() {
|
|
12
|
+
this.store = this.defaults;
|
|
13
|
+
}
|
|
14
|
+
delete(key) {
|
|
15
|
+
delete this.store[key];
|
|
16
|
+
}
|
|
17
|
+
async filter(filter) {
|
|
18
|
+
let s = () => {
|
|
19
|
+
stop = true;
|
|
20
|
+
}, stop = false, values = {};
|
|
21
|
+
for (let key in this.store) {
|
|
22
|
+
let value = this.store[key];
|
|
23
|
+
if (await filter({ key, stop: s, value })) {
|
|
24
|
+
values[key] = value;
|
|
25
|
+
}
|
|
26
|
+
if (stop) {
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return values;
|
|
31
|
+
}
|
|
32
|
+
get(key) {
|
|
33
|
+
return this.store[key];
|
|
34
|
+
}
|
|
35
|
+
only(...keys) {
|
|
36
|
+
let data = {};
|
|
37
|
+
for (let i = 0, n = keys.length; i < n; i++) {
|
|
38
|
+
data[keys[i]] = this.store[keys[i]];
|
|
39
|
+
}
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
replace(values) {
|
|
43
|
+
for (let key in values) {
|
|
44
|
+
this.store[key] = values[key];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
set(key, value) {
|
|
48
|
+
this.store[key] = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export default {
|
|
52
|
+
store: (data = {}) => new Store(data)
|
|
53
|
+
};
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/src/local/index.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { Driver,
|
|
1
|
+
import { Driver, Options } from './types';
|
|
2
2
|
import localforage from 'localforage';
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class Store {
|
|
5
|
+
class Store<T extends object> {
|
|
6
6
|
instance: LocalForage;
|
|
7
7
|
iterate: LocalForage['iterate'];
|
|
8
8
|
keys: LocalForage['keys'];
|
|
9
9
|
length: LocalForage['length'];
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
constructor(options:
|
|
13
|
-
let driver
|
|
14
|
-
name = options.name || 'store';
|
|
12
|
+
constructor(options: Options) {
|
|
13
|
+
let driver;
|
|
15
14
|
|
|
16
15
|
switch ((options.driver || Driver.IndexedDB) as Driver) {
|
|
17
16
|
case Driver.LocalStorage:
|
|
@@ -23,7 +22,7 @@ class Store {
|
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
this.instance = localforage.createInstance(
|
|
26
|
-
Object.assign(options, { driver,
|
|
25
|
+
Object.assign(options, { driver, storeName: options.name })
|
|
27
26
|
);
|
|
28
27
|
this.iterate = this.instance.iterate;
|
|
29
28
|
this.keys = this.instance.keys;
|
|
@@ -31,40 +30,40 @@ class Store {
|
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
|
|
34
|
-
async all(): Promise<
|
|
35
|
-
let values:
|
|
33
|
+
async all(): Promise<T | {}> {
|
|
34
|
+
let values: T = {} as T;
|
|
36
35
|
|
|
37
36
|
await this.instance.iterate((value: any, key: string) => {
|
|
38
|
-
values[key] = value;
|
|
37
|
+
values[key as keyof T] = value;
|
|
39
38
|
});
|
|
40
39
|
|
|
41
40
|
return values;
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
async clear()
|
|
43
|
+
async clear() {
|
|
45
44
|
await this.instance.clear();
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
async delete(...keys:
|
|
47
|
+
async delete(...keys: (keyof T)[]) {
|
|
49
48
|
if (!keys.length) {
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
for (let i = 0, n = keys.length; i < n; i++) {
|
|
54
|
-
await this.instance.removeItem(keys[i]);
|
|
53
|
+
await this.instance.removeItem(keys[i] as string);
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
56
|
|
|
58
|
-
async filter(filter: Function): Promise<
|
|
57
|
+
async filter(filter: Function): Promise<T | {}> {
|
|
59
58
|
let s: () => void = () => {
|
|
60
59
|
stop = true;
|
|
61
60
|
},
|
|
62
61
|
stop: boolean = false,
|
|
63
|
-
values:
|
|
62
|
+
values: T = {} as T;
|
|
64
63
|
|
|
65
64
|
await this.instance.iterate((value: any, key: string, i: number) => {
|
|
66
65
|
if (filter({ i, key, stop: s, value })) {
|
|
67
|
-
values[key] = value;
|
|
66
|
+
values[key as keyof T] = value;
|
|
68
67
|
}
|
|
69
68
|
|
|
70
69
|
// LocalForage iterate will stop once a non
|
|
@@ -77,40 +76,32 @@ class Store {
|
|
|
77
76
|
return values;
|
|
78
77
|
}
|
|
79
78
|
|
|
80
|
-
async get(
|
|
81
|
-
|
|
82
|
-
return await this.instance.getItem(keys[0]);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return await this.filter((key: string) => keys.includes(key));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
async has(...keys: string[]): Promise<boolean> {
|
|
89
|
-
let haystack = await this.instance.keys();
|
|
90
|
-
|
|
91
|
-
for (let i = 0, n = keys.length; i < n; i++) {
|
|
92
|
-
if (haystack.includes(keys[i])) {
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
79
|
+
async get(key: keyof T) {
|
|
80
|
+
let value: T[keyof T] | null = await this.instance.getItem(key as string);
|
|
95
81
|
|
|
96
|
-
|
|
82
|
+
if (value === null) {
|
|
83
|
+
return undefined;
|
|
97
84
|
}
|
|
98
85
|
|
|
99
|
-
return
|
|
86
|
+
return value;
|
|
100
87
|
}
|
|
101
88
|
|
|
102
|
-
async
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
89
|
+
async only(...keys: (keyof T)[]) {
|
|
90
|
+
return await this.filter((key: string) => keys.includes(key as keyof T));
|
|
91
|
+
}
|
|
106
92
|
|
|
93
|
+
async replace(values: T) {
|
|
107
94
|
for (let key in values) {
|
|
108
95
|
await this.instance.setItem(key, values[key]);
|
|
109
96
|
}
|
|
110
97
|
}
|
|
98
|
+
|
|
99
|
+
async set(key: keyof T, value: T[keyof T]) {
|
|
100
|
+
await this.instance.setItem(key as string, value);
|
|
101
|
+
}
|
|
111
102
|
}
|
|
112
103
|
|
|
113
104
|
|
|
114
105
|
export default {
|
|
115
|
-
store: (options:
|
|
106
|
+
store: <T extends object>(options: Options) => new Store<T>(options)
|
|
116
107
|
};
|
package/src/local/types.ts
CHANGED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
class Store<T extends object> {
|
|
2
|
+
defaults: T;
|
|
3
|
+
store: T;
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
constructor(defaults: T) {
|
|
7
|
+
this.defaults = defaults;
|
|
8
|
+
this.store = this.defaults;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
all() {
|
|
13
|
+
return Object.assign({}, this.store);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
clear() {
|
|
17
|
+
this.store = this.defaults;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
delete(key: keyof T) {
|
|
21
|
+
delete this.store[key];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async filter(filter: Function): Promise<T | {}> {
|
|
25
|
+
let s: () => void = () => {
|
|
26
|
+
stop = true;
|
|
27
|
+
},
|
|
28
|
+
stop: boolean = false,
|
|
29
|
+
values: T = {} as T;
|
|
30
|
+
|
|
31
|
+
for (let key in this.store) {
|
|
32
|
+
let value = this.store[key];
|
|
33
|
+
|
|
34
|
+
if (await filter({ key, stop: s, value })) {
|
|
35
|
+
values[key as keyof T] = value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (stop) {
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return values;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get(key: keyof T) {
|
|
47
|
+
return this.store[key];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
only(...keys: (keyof T)[]) {
|
|
51
|
+
let data: any = {};
|
|
52
|
+
|
|
53
|
+
for (let i = 0, n = keys.length; i < n; i++) {
|
|
54
|
+
data[keys[i]] = this.store[keys[i]];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return data;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
replace(values: T) {
|
|
61
|
+
for (let key in values) {
|
|
62
|
+
this.store[key as keyof T] = values[key];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
set(key: keyof T, value: T[keyof T]) {
|
|
67
|
+
this.store[key] = value;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
export default {
|
|
73
|
+
store: <T extends object>(data: T | {} = {}) => new Store(data)
|
|
74
|
+
};
|
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"allowJs": true,
|
|
4
|
+
"allowSyntheticDefaultImports": true,
|
|
4
5
|
"alwaysStrict": true,
|
|
5
6
|
"baseUrl": "src",
|
|
6
7
|
"declaration": true,
|
|
7
8
|
"declarationDir": "./build",
|
|
8
|
-
"lib": ["dom", "
|
|
9
|
-
"module": "
|
|
9
|
+
"lib": ["dom", "esnext"],
|
|
10
|
+
"module": "esnext",
|
|
10
11
|
"moduleResolution": "node",
|
|
11
12
|
"noUnusedLocals": true,
|
|
12
13
|
"noUnusedParameters": true,
|
|
@@ -17,7 +18,7 @@
|
|
|
17
18
|
"removeComments": true,
|
|
18
19
|
"resolveJsonModule": true,
|
|
19
20
|
"strict": true,
|
|
20
|
-
"target": "
|
|
21
|
+
"target": "esnext"
|
|
21
22
|
},
|
|
22
23
|
"exclude": ["node_modules"],
|
|
23
24
|
"include": ["src"],
|