@esportsplus/web-storage 0.1.14 → 0.1.16
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 +24 -11
- package/build/index.js +4 -9
- package/build/local/index.d.ts +10 -11
- package/build/local/index.js +19 -30
- package/build/local/types.d.ts +1 -4
- package/build/local/types.js +1 -4
- package/build/memory/index.d.ts +16 -0
- package/build/memory/index.js +51 -0
- package/package.json +1 -1
- package/src/index.ts +3 -2
- package/src/local/index.ts +25 -33
- package/src/local/types.ts +1 -3
- package/src/memory/index.ts +72 -0
- package/tsconfig.json +4 -3
package/build/index.d.ts
CHANGED
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
import local from './local';
|
|
2
|
+
import memory from './memory';
|
|
2
3
|
declare const _default: {
|
|
3
4
|
local: {
|
|
4
|
-
store: (options: import("./local/types").Options) => {
|
|
5
|
+
store: <T>(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>(data?: {} | T_2) => {
|
|
22
|
+
store: T_2;
|
|
23
|
+
all(): {} & T_2;
|
|
24
|
+
clear(): void;
|
|
25
|
+
delete(key: keyof T_2): void;
|
|
26
|
+
filter(filter: Function): Promise<{} | T_2>;
|
|
27
|
+
get(key: keyof T_2): T_2[keyof T_2];
|
|
28
|
+
only(...keys: (keyof T_2)[]): any;
|
|
29
|
+
replace(values: T_2): void;
|
|
30
|
+
set(key: keyof T_2, value: T_2[keyof T_2]): void;
|
|
18
31
|
};
|
|
19
32
|
};
|
|
20
33
|
};
|
|
21
34
|
export default _default;
|
|
22
|
-
export { local };
|
|
35
|
+
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> {
|
|
3
3
|
instance: LocalForage;
|
|
4
4
|
iterate: LocalForage['iterate'];
|
|
5
5
|
keys: LocalForage['keys'];
|
|
6
6
|
length: LocalForage['length'];
|
|
7
7
|
constructor(options: Options);
|
|
8
|
-
all(): Promise<
|
|
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: Options) => Store
|
|
18
|
+
store: <T>(options: Options) => Store<T>;
|
|
20
19
|
};
|
|
21
20
|
export default _default;
|
package/build/local/index.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
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;
|
|
@@ -12,15 +7,15 @@ class Store {
|
|
|
12
7
|
length;
|
|
13
8
|
constructor(options) {
|
|
14
9
|
let driver;
|
|
15
|
-
switch ((options.driver ||
|
|
16
|
-
case
|
|
17
|
-
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
|
-
|
|
74
|
+
export default {
|
|
86
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,16 @@
|
|
|
1
|
+
declare class Store<T> {
|
|
2
|
+
store: T;
|
|
3
|
+
constructor(data: T | {});
|
|
4
|
+
all(): {} & T;
|
|
5
|
+
clear(): void;
|
|
6
|
+
delete(key: keyof T): void;
|
|
7
|
+
filter(filter: Function): Promise<T | {}>;
|
|
8
|
+
get(key: keyof T): T[keyof T];
|
|
9
|
+
only(...keys: (keyof T)[]): any;
|
|
10
|
+
replace(values: T): void;
|
|
11
|
+
set(key: keyof T, value: T[keyof T]): void;
|
|
12
|
+
}
|
|
13
|
+
declare const _default: {
|
|
14
|
+
store: <T>(data?: {} | T) => Store<T>;
|
|
15
|
+
};
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
class Store {
|
|
2
|
+
store;
|
|
3
|
+
constructor(data) {
|
|
4
|
+
this.store = data;
|
|
5
|
+
}
|
|
6
|
+
all() {
|
|
7
|
+
return Object.assign({}, this.store);
|
|
8
|
+
}
|
|
9
|
+
clear() {
|
|
10
|
+
this.store = {};
|
|
11
|
+
}
|
|
12
|
+
delete(key) {
|
|
13
|
+
delete this.store[key];
|
|
14
|
+
}
|
|
15
|
+
async filter(filter) {
|
|
16
|
+
let s = () => {
|
|
17
|
+
stop = true;
|
|
18
|
+
}, stop = false, values = {};
|
|
19
|
+
for (let key in this.store) {
|
|
20
|
+
let value = this.store[key];
|
|
21
|
+
if (await filter({ key, stop: s, value })) {
|
|
22
|
+
values[key] = value;
|
|
23
|
+
}
|
|
24
|
+
if (stop) {
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return values;
|
|
29
|
+
}
|
|
30
|
+
get(key) {
|
|
31
|
+
return this.store[key];
|
|
32
|
+
}
|
|
33
|
+
only(...keys) {
|
|
34
|
+
let data = {};
|
|
35
|
+
for (let i = 0, n = keys.length; i < n; i++) {
|
|
36
|
+
data[keys[i]] = this.store[keys[i]];
|
|
37
|
+
}
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
replace(values) {
|
|
41
|
+
for (let key in values) {
|
|
42
|
+
this.store[key] = values[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
set(key, value) {
|
|
46
|
+
this.store[key] = value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export default {
|
|
50
|
+
store: (data = {}) => new Store(data)
|
|
51
|
+
};
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/src/local/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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> {
|
|
6
6
|
instance: LocalForage;
|
|
7
7
|
iterate: LocalForage['iterate'];
|
|
8
8
|
keys: LocalForage['keys'];
|
|
@@ -30,40 +30,40 @@ class Store {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
async all(): Promise<
|
|
34
|
-
let values:
|
|
33
|
+
async all(): Promise<T | {}> {
|
|
34
|
+
let values: T = {} as T;
|
|
35
35
|
|
|
36
36
|
await this.instance.iterate((value: any, key: string) => {
|
|
37
|
-
values[key] = value;
|
|
37
|
+
values[key as keyof T] = value;
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
return values;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
async clear()
|
|
43
|
+
async clear() {
|
|
44
44
|
await this.instance.clear();
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
async delete(...keys:
|
|
47
|
+
async delete(...keys: (keyof T)[]) {
|
|
48
48
|
if (!keys.length) {
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
for (let i = 0, n = keys.length; i < n; i++) {
|
|
53
|
-
await this.instance.removeItem(keys[i]);
|
|
53
|
+
await this.instance.removeItem(keys[i] as string);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
async filter(filter: Function): Promise<
|
|
57
|
+
async filter(filter: Function): Promise<T | {}> {
|
|
58
58
|
let s: () => void = () => {
|
|
59
59
|
stop = true;
|
|
60
60
|
},
|
|
61
61
|
stop: boolean = false,
|
|
62
|
-
values:
|
|
62
|
+
values: T = {} as T;
|
|
63
63
|
|
|
64
64
|
await this.instance.iterate((value: any, key: string, i: number) => {
|
|
65
65
|
if (filter({ i, key, stop: s, value })) {
|
|
66
|
-
values[key] = value;
|
|
66
|
+
values[key as keyof T] = value;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
// LocalForage iterate will stop once a non
|
|
@@ -76,40 +76,32 @@ class Store {
|
|
|
76
76
|
return values;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
async get(
|
|
80
|
-
|
|
81
|
-
return await this.instance.getItem(keys[0]);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return await this.filter((key: string) => keys.includes(key));
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
async has(...keys: string[]): Promise<boolean> {
|
|
88
|
-
let haystack = await this.instance.keys();
|
|
89
|
-
|
|
90
|
-
for (let i = 0, n = keys.length; i < n; i++) {
|
|
91
|
-
if (haystack.includes(keys[i])) {
|
|
92
|
-
continue;
|
|
93
|
-
}
|
|
79
|
+
async get(key: keyof T) {
|
|
80
|
+
let value: T[keyof T] | null = await this.instance.getItem(key as string);
|
|
94
81
|
|
|
95
|
-
|
|
82
|
+
if (value === null) {
|
|
83
|
+
return undefined;
|
|
96
84
|
}
|
|
97
85
|
|
|
98
|
-
return
|
|
86
|
+
return value;
|
|
99
87
|
}
|
|
100
88
|
|
|
101
|
-
async
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
89
|
+
async only(...keys: (keyof T)[]) {
|
|
90
|
+
return await this.filter((key: string) => keys.includes(key as keyof T));
|
|
91
|
+
}
|
|
105
92
|
|
|
93
|
+
async replace(values: T) {
|
|
106
94
|
for (let key in values) {
|
|
107
95
|
await this.instance.setItem(key, values[key]);
|
|
108
96
|
}
|
|
109
97
|
}
|
|
98
|
+
|
|
99
|
+
async set(key: keyof T, value: T[keyof T]) {
|
|
100
|
+
await this.instance.setItem(key as string, value);
|
|
101
|
+
}
|
|
110
102
|
}
|
|
111
103
|
|
|
112
104
|
|
|
113
105
|
export default {
|
|
114
|
-
store: (options: Options)
|
|
106
|
+
store: <T>(options: Options) => new Store<T>(options)
|
|
115
107
|
};
|
package/src/local/types.ts
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
class Store<T> {
|
|
2
|
+
store: T;
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
constructor(data: T | {}) {
|
|
6
|
+
this.store = data as T;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
all() {
|
|
11
|
+
return Object.assign({}, this.store);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
clear() {
|
|
15
|
+
this.store = {} as T;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
delete(key: keyof T) {
|
|
19
|
+
delete this.store[key];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async filter(filter: Function): Promise<T | {}> {
|
|
23
|
+
let s: () => void = () => {
|
|
24
|
+
stop = true;
|
|
25
|
+
},
|
|
26
|
+
stop: boolean = false,
|
|
27
|
+
values: T = {} as T;
|
|
28
|
+
|
|
29
|
+
for (let key in this.store) {
|
|
30
|
+
let value = this.store[key];
|
|
31
|
+
|
|
32
|
+
if (await filter({ key, stop: s, value })) {
|
|
33
|
+
values[key as keyof T] = value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (stop) {
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return values;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get(key: keyof T) {
|
|
45
|
+
return this.store[key];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
only(...keys: (keyof T)[]) {
|
|
49
|
+
let data: any = {};
|
|
50
|
+
|
|
51
|
+
for (let i = 0, n = keys.length; i < n; i++) {
|
|
52
|
+
data[keys[i]] = this.store[keys[i]];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
replace(values: T) {
|
|
59
|
+
for (let key in values) {
|
|
60
|
+
this.store[key as keyof T] = values[key];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
set(key: keyof T, value: T[keyof T]) {
|
|
65
|
+
this.store[key] = value;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
export default {
|
|
71
|
+
store: <T>(data: T | {} = {}) => new Store<T>(data)
|
|
72
|
+
};
|
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"],
|