@esportsplus/web-storage 0.1.25 → 0.1.26

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 CHANGED
@@ -1,35 +1 @@
1
- import local from './local';
2
- import memory from './memory';
3
- declare const _default: {
4
- local: {
5
- store: <T>(options: import("./local/types").Options) => {
6
- instance: LocalForage;
7
- iterate: <T_1, U>(iteratee: (value: T_1, key: string, iterationNumber: number) => U, callback?: ((err: any, result: U) => void) | undefined) => Promise<U>;
8
- keys: (callback?: ((err: any, keys: string[]) => void) | undefined) => Promise<string[]>;
9
- length: (callback?: ((err: any, numberOfKeys: number) => void) | undefined) => Promise<number>;
10
- all(): Promise<Record<string, never> | T>;
11
- clear(): Promise<void>;
12
- delete(...keys: (keyof T)[]): Promise<void>;
13
- filter(filter: Function): Promise<Record<string, never> | T>;
14
- get(key: keyof T): Promise<(T[keyof T] & {}) | undefined>;
15
- only(...keys: (keyof T)[]): Promise<Record<string, never> | 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<Record<string, never> | T_2>;
27
- get(key: keyof T_2): T_2[keyof T_2];
28
- only(...keys: (keyof T_2)[]): T_2;
29
- replace(values: T_2): void;
30
- set(key: keyof T_2, value: T_2[keyof T_2]): void;
31
- };
32
- };
33
- };
34
- export default _default;
35
- export { local, memory };
1
+ export { default as local } from './local';
package/build/index.js CHANGED
@@ -1,4 +1 @@
1
- import local from './local';
2
- import memory from './memory';
3
- export default { local, memory };
4
- export { local, memory };
1
+ export { default as local } from './local';
@@ -0,0 +1,18 @@
1
+ import { LocalForage, Options } from './types';
2
+ declare class Local<T> {
3
+ instance: LocalForage;
4
+ iterate: LocalForage['iterate'];
5
+ keys: LocalForage['keys'];
6
+ length: LocalForage['length'];
7
+ constructor(options: Options);
8
+ all(): Promise<T | Record<string, never>>;
9
+ clear(): Promise<void>;
10
+ delete(...keys: (keyof T)[]): Promise<void>;
11
+ filter(filter: Function): Promise<T | Record<string, never>>;
12
+ get(key: keyof T): Promise<(T[keyof T] & {}) | undefined>;
13
+ only(...keys: (keyof T)[]): Promise<T | Record<string, never>>;
14
+ replace(values: T): Promise<void>;
15
+ set(key: keyof T, value: T[keyof T]): Promise<void>;
16
+ }
17
+ declare const _default: <T>(options: Options) => Local<T>;
18
+ export default _default;
package/build/local.js ADDED
@@ -0,0 +1,74 @@
1
+ import { Driver } from './types';
2
+ import localforage from 'localforage';
3
+ class Local {
4
+ instance;
5
+ iterate;
6
+ keys;
7
+ length;
8
+ constructor(options) {
9
+ let driver;
10
+ switch ((options.driver || Driver.IndexedDB)) {
11
+ case Driver.LocalStorage:
12
+ driver = localforage.LOCALSTORAGE;
13
+ break;
14
+ default:
15
+ driver = localforage.INDEXEDDB;
16
+ break;
17
+ }
18
+ this.instance = localforage.createInstance(Object.assign(options, { driver, storeName: options.name }));
19
+ this.iterate = this.instance.iterate;
20
+ this.keys = this.instance.keys;
21
+ this.length = this.instance.length;
22
+ }
23
+ async all() {
24
+ let values = {};
25
+ await this.instance.iterate((value, key) => {
26
+ values[key] = value;
27
+ });
28
+ return values;
29
+ }
30
+ async clear() {
31
+ await this.instance.clear();
32
+ }
33
+ async delete(...keys) {
34
+ if (!keys.length) {
35
+ return;
36
+ }
37
+ for (let i = 0, n = keys.length; i < n; i++) {
38
+ await this.instance.removeItem(keys[i]);
39
+ }
40
+ }
41
+ async filter(filter) {
42
+ let s = () => {
43
+ stop = true;
44
+ }, stop = false, values = {};
45
+ await this.instance.iterate((value, key, i) => {
46
+ if (filter({ i, key, stop: s, value })) {
47
+ values[key] = value;
48
+ }
49
+ if (stop) {
50
+ return true;
51
+ }
52
+ });
53
+ return values;
54
+ }
55
+ async get(key) {
56
+ let value = await this.instance.getItem(key);
57
+ if (value === null) {
58
+ return undefined;
59
+ }
60
+ return value;
61
+ }
62
+ async only(...keys) {
63
+ return await this.filter((key) => keys.includes(key));
64
+ }
65
+ async replace(values) {
66
+ for (let key in values) {
67
+ await this.instance.setItem(key, values[key]);
68
+ }
69
+ }
70
+ async set(key, value) {
71
+ await this.instance.setItem(key, value);
72
+ }
73
+ }
74
+ export default (options) => new Local(options);
@@ -0,0 +1,14 @@
1
+ import localforage from 'localforage';
2
+ declare enum Driver {
3
+ IndexedDB = 0,
4
+ LocalStorage = 1
5
+ }
6
+ type LocalForage = typeof localforage;
7
+ type Options = {
8
+ description?: string;
9
+ driver?: string | string[];
10
+ name: string;
11
+ size?: number;
12
+ version?: number;
13
+ };
14
+ export { Driver, LocalForage, Options };
package/build/types.js ADDED
@@ -0,0 +1,7 @@
1
+ var Driver;
2
+ (function (Driver) {
3
+ Driver[Driver["IndexedDB"] = 0] = "IndexedDB";
4
+ Driver[Driver["LocalStorage"] = 1] = "LocalStorage";
5
+ })(Driver || (Driver = {}));
6
+ ;
7
+ export { Driver };
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "description": "Web storage utility",
7
7
  "devDependencies": {
8
- "@esportsplus/webpack": "^0.0.80"
8
+ "@esportsplus/webpack": "^0.0.81"
9
9
  },
10
10
  "main": "build/index.js",
11
11
  "name": "@esportsplus/web-storage",
@@ -17,5 +17,5 @@
17
17
  "prepublishOnly": "npm run build"
18
18
  },
19
19
  "types": "build/index.d.ts",
20
- "version": "0.1.25"
20
+ "version": "0.1.26"
21
21
  }
package/src/index.ts CHANGED
@@ -1,6 +1 @@
1
- import local from './local';
2
- import memory from './memory';
3
-
4
-
5
- export default { local, memory };
6
- export { local, memory };
1
+ export { default as local } from './local';
@@ -2,7 +2,7 @@ import { Driver, LocalForage, Options } from './types';
2
2
  import localforage from 'localforage';
3
3
 
4
4
 
5
- class Store<T> {
5
+ class Local<T> {
6
6
  instance: LocalForage;
7
7
  iterate: LocalForage['iterate'];
8
8
  keys: LocalForage['keys'];
@@ -102,6 +102,4 @@ class Store<T> {
102
102
  }
103
103
 
104
104
 
105
- export default {
106
- store: <T>(options: Options) => new Store<T>(options)
107
- };
105
+ export default <T>(options: Options) => new Local<T>(options);
File without changes
@@ -1,72 +0,0 @@
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 | Record<string, never>> {
23
- let s: VoidFunction = () => {
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: T = {} as T;
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
- };