@kvs/storage-sync 1.1.0 → 2.1.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/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/storage.d.ts +7 -7
- package/lib/storage.js +59 -42
- package/lib/storage.js.map +1 -1
- package/module/JSONValue.js +1 -0
- package/module/storage.d.ts +7 -7
- package/module/storage.js +52 -41
- package/module/storage.js.map +1 -1
- package/package.json +10 -11
- package/CHANGELOG.md +0 -68
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasItem = exports.createIterator = exports.clearItem = exports.getItem = exports.setItem = exports.deleteItem = exports.kvsStorageSync = void 0;
|
|
3
4
|
var storage_1 = require("./storage");
|
|
4
5
|
Object.defineProperty(exports, "kvsStorageSync", { enumerable: true, get: function () { return storage_1.kvsStorageSync; } });
|
|
5
6
|
// internal
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAYmB;AAXf,yGAAA,cAAc,OAAA;AACd,WAAW;AACX,qGAAA,UAAU,OAAA;AACV,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,oGAAA,SAAS,OAAA;AACT,yGAAA,cAAc,OAAA;AACd,kGAAA,OAAO,OAAA"}
|
package/lib/storage.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { KVSSync, KVSSyncOptions, StoreNames, StoreValue } from "@kvs/types";
|
|
2
2
|
import { JsonValue } from "./JSONValue";
|
|
3
3
|
export declare type KVSStorageKey = string;
|
|
4
|
-
export declare const getItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>) => any;
|
|
5
|
-
export declare const hasItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>) => boolean;
|
|
6
|
-
export declare const setItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>, value: StoreValue<Schema, StoreNames<Schema>> | undefined) => boolean | void;
|
|
7
|
-
export declare const clearItem: (storage: Storage, kvsVersionKey: string, options: {
|
|
4
|
+
export declare const getItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => any;
|
|
5
|
+
export declare const hasItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => boolean;
|
|
6
|
+
export declare const setItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>, value: StoreValue<Schema, StoreNames<Schema>> | undefined) => boolean | void;
|
|
7
|
+
export declare const clearItem: (storage: Storage, tableName: string, kvsVersionKey: string, options: {
|
|
8
8
|
force: boolean;
|
|
9
9
|
}) => void;
|
|
10
|
-
export declare const deleteItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>) => boolean;
|
|
11
|
-
export declare function createIterator<Schema extends StorageSchema>(storage: Storage, kvsVersionKey: string): Iterator<[StoreNames<Schema>, StoreValue<Schema, StoreNames<Schema>>]>;
|
|
10
|
+
export declare const deleteItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => boolean;
|
|
11
|
+
export declare function createIterator<Schema extends StorageSchema>(storage: Storage, tableName: string, kvsVersionKey: string): Iterator<[StoreNames<Schema>, StoreValue<Schema, StoreNames<Schema>>]>;
|
|
12
12
|
export declare type StorageSchema = {
|
|
13
13
|
[index: string]: JsonValue;
|
|
14
14
|
};
|
|
@@ -17,4 +17,4 @@ export declare type KvsStorageSyncOptions<Schema extends StorageSchema> = KVSSyn
|
|
|
17
17
|
kvsVersionKey?: string;
|
|
18
18
|
storage: Storage;
|
|
19
19
|
};
|
|
20
|
-
export declare const kvsStorageSync: <Schema extends StorageSchema>(options: KvsStorageSyncOptions<Schema>) =>
|
|
20
|
+
export declare const kvsStorageSync: <Schema extends StorageSchema>(options: KvsStorageSyncOptions<Schema>) => KvsStorageSync<Schema>;
|
package/lib/storage.js
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.kvsStorageSync = exports.createIterator = exports.deleteItem = exports.clearItem = exports.setItem = exports.hasItem = exports.getItem = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
function invariant(condition, message) {
|
|
5
|
+
if (condition) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
throw new Error(message);
|
|
9
|
+
}
|
|
10
|
+
const TABLE_KEY_MARKER = ".__.";
|
|
11
|
+
const getItem = (storage, tableName, key) => {
|
|
12
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
13
|
+
const item = storage.getItem(storageKey);
|
|
17
14
|
return item !== null ? JSON.parse(item) : undefined;
|
|
18
15
|
};
|
|
19
|
-
exports.
|
|
20
|
-
|
|
16
|
+
exports.getItem = getItem;
|
|
17
|
+
const hasItem = (storage, tableName, key) => {
|
|
18
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
19
|
+
return storage.getItem(storageKey) !== null;
|
|
21
20
|
};
|
|
22
|
-
exports.
|
|
21
|
+
exports.hasItem = hasItem;
|
|
22
|
+
const setItem = (storage, tableName, key, value) => {
|
|
23
23
|
// It is difference with IndexedDB implementation.
|
|
24
24
|
// This behavior compatible with localStorage.
|
|
25
25
|
if (value === undefined) {
|
|
26
|
-
return exports.deleteItem(storage, key);
|
|
26
|
+
return (0, exports.deleteItem)(storage, tableName, key);
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
29
|
+
return storage.setItem(storageKey, JSON.stringify(value));
|
|
29
30
|
};
|
|
30
|
-
exports.
|
|
31
|
+
exports.setItem = setItem;
|
|
32
|
+
const clearItem = (storage, tableName, kvsVersionKey, options) => {
|
|
31
33
|
// TODO: kvsVersionKey is special type
|
|
32
|
-
const currentVersion = exports.getItem(storage, kvsVersionKey);
|
|
34
|
+
const currentVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
|
|
33
35
|
// clear all
|
|
34
36
|
storage.clear();
|
|
35
37
|
// if option.force is true, does not restore metadata.
|
|
@@ -38,40 +40,49 @@ exports.clearItem = (storage, kvsVersionKey, options) => {
|
|
|
38
40
|
}
|
|
39
41
|
// set kvs version again
|
|
40
42
|
if (currentVersion !== undefined) {
|
|
41
|
-
exports.setItem(storage, kvsVersionKey, currentVersion);
|
|
43
|
+
(0, exports.setItem)(storage, tableName, kvsVersionKey, currentVersion);
|
|
42
44
|
}
|
|
43
45
|
};
|
|
44
|
-
exports.
|
|
46
|
+
exports.clearItem = clearItem;
|
|
47
|
+
const deleteItem = (storage, tableName, key) => {
|
|
45
48
|
try {
|
|
46
|
-
|
|
49
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
50
|
+
storage.removeItem(storageKey);
|
|
47
51
|
return true;
|
|
48
52
|
}
|
|
49
53
|
catch (_a) {
|
|
50
54
|
return false;
|
|
51
55
|
}
|
|
52
56
|
};
|
|
53
|
-
|
|
57
|
+
exports.deleteItem = deleteItem;
|
|
58
|
+
function* createIterator(storage, tableName, kvsVersionKey) {
|
|
59
|
+
const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
|
|
54
60
|
for (let i = 0; i < storage.length; i++) {
|
|
55
61
|
const key = storage.key(i);
|
|
56
62
|
if (!key) {
|
|
57
63
|
continue;
|
|
58
64
|
}
|
|
65
|
+
// skip another storage
|
|
66
|
+
if (!key.startsWith(tableKeyPrefix)) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
59
69
|
// skip meta key
|
|
60
|
-
|
|
70
|
+
const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
|
|
71
|
+
if (keyWithoutPrefix === kvsVersionKey) {
|
|
61
72
|
continue;
|
|
62
73
|
}
|
|
63
|
-
const value = exports.getItem(storage,
|
|
64
|
-
yield [
|
|
74
|
+
const value = (0, exports.getItem)(storage, tableName, keyWithoutPrefix);
|
|
75
|
+
yield [keyWithoutPrefix, value];
|
|
65
76
|
}
|
|
66
77
|
}
|
|
67
78
|
exports.createIterator = createIterator;
|
|
68
79
|
const DEFAULT_KVS_VERSION = 1;
|
|
69
|
-
const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
80
|
+
const openStorage = ({ storage, tableName, version, kvsVersionKey, onUpgrade }) => {
|
|
70
81
|
// kvsVersionKey is special type
|
|
71
82
|
// first `oldVersion` is `0`
|
|
72
|
-
let oldVersion = exports.getItem(storage, kvsVersionKey);
|
|
83
|
+
let oldVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
|
|
73
84
|
if (oldVersion === undefined) {
|
|
74
|
-
exports.setItem(storage, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
85
|
+
(0, exports.setItem)(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
75
86
|
// first `oldVersion` is `0`
|
|
76
87
|
// https://github.com/azu/kvs/issues/8
|
|
77
88
|
oldVersion = 0;
|
|
@@ -87,33 +98,33 @@ const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
|
87
98
|
}
|
|
88
99
|
return storage;
|
|
89
100
|
};
|
|
90
|
-
const createStore = ({ storage, kvsVersionKey }) => {
|
|
101
|
+
const createStore = ({ storage, tableName, kvsVersionKey }) => {
|
|
91
102
|
const store = {
|
|
92
103
|
get(key) {
|
|
93
|
-
return exports.getItem(storage, key);
|
|
104
|
+
return (0, exports.getItem)(storage, tableName, key);
|
|
94
105
|
},
|
|
95
106
|
has(key) {
|
|
96
|
-
return exports.hasItem(storage, key);
|
|
107
|
+
return (0, exports.hasItem)(storage, tableName, key);
|
|
97
108
|
},
|
|
98
109
|
set(key, value) {
|
|
99
|
-
exports.setItem(storage, key, value);
|
|
110
|
+
(0, exports.setItem)(storage, tableName, key, value);
|
|
100
111
|
return store;
|
|
101
112
|
},
|
|
102
113
|
clear() {
|
|
103
|
-
return exports.clearItem(storage, kvsVersionKey, { force: false });
|
|
114
|
+
return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: false });
|
|
104
115
|
},
|
|
105
116
|
delete(key) {
|
|
106
|
-
return exports.deleteItem(storage, key);
|
|
117
|
+
return (0, exports.deleteItem)(storage, tableName, key);
|
|
107
118
|
},
|
|
108
119
|
dropInstance() {
|
|
109
|
-
return exports.clearItem(storage, kvsVersionKey, { force: true });
|
|
120
|
+
return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: true });
|
|
110
121
|
},
|
|
111
122
|
close() {
|
|
112
123
|
// Noop function
|
|
113
124
|
return;
|
|
114
125
|
},
|
|
115
126
|
[Symbol.iterator]() {
|
|
116
|
-
const iterator = createIterator(storage, kvsVersionKey);
|
|
127
|
+
const iterator = createIterator(storage, tableName, kvsVersionKey);
|
|
117
128
|
return {
|
|
118
129
|
next() {
|
|
119
130
|
return iterator.next();
|
|
@@ -123,11 +134,16 @@ const createStore = ({ storage, kvsVersionKey }) => {
|
|
|
123
134
|
};
|
|
124
135
|
return store;
|
|
125
136
|
};
|
|
126
|
-
|
|
137
|
+
const kvsStorageSync = (options) => {
|
|
127
138
|
var _a;
|
|
128
|
-
const { name, version, upgrade
|
|
139
|
+
const { name, version, upgrade, ...kvStorageOptions } = options;
|
|
140
|
+
invariant(typeof name === "string", "name should be string");
|
|
141
|
+
invariant(name.length > 0, "name should not be empty");
|
|
142
|
+
invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
|
|
143
|
+
invariant(typeof version === "number", `version should be number`);
|
|
129
144
|
const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
|
|
130
145
|
const storage = openStorage({
|
|
146
|
+
tableName: name,
|
|
131
147
|
storage: options.storage,
|
|
132
148
|
version: options.version,
|
|
133
149
|
onUpgrade: ({ oldVersion, newVersion, storage }) => {
|
|
@@ -135,13 +151,14 @@ exports.kvsStorageSync = (options) => {
|
|
|
135
151
|
return;
|
|
136
152
|
}
|
|
137
153
|
return options.upgrade({
|
|
138
|
-
kvs: createStore({ storage, kvsVersionKey }),
|
|
154
|
+
kvs: createStore({ storage, tableName: name, kvsVersionKey }),
|
|
139
155
|
oldVersion,
|
|
140
156
|
newVersion
|
|
141
157
|
});
|
|
142
158
|
},
|
|
143
159
|
kvsVersionKey
|
|
144
160
|
});
|
|
145
|
-
return createStore({ storage, kvsVersionKey });
|
|
161
|
+
return createStore({ storage, tableName: name, kvsVersionKey });
|
|
146
162
|
};
|
|
163
|
+
exports.kvsStorageSync = kvsStorageSync;
|
|
147
164
|
//# sourceMappingURL=storage.js.map
|
package/lib/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/module/JSONValue.js
CHANGED
package/module/storage.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { KVSSync, KVSSyncOptions, StoreNames, StoreValue } from "@kvs/types";
|
|
2
2
|
import { JsonValue } from "./JSONValue";
|
|
3
3
|
export declare type KVSStorageKey = string;
|
|
4
|
-
export declare const getItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>) => any;
|
|
5
|
-
export declare const hasItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>) => boolean;
|
|
6
|
-
export declare const setItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>, value: StoreValue<Schema, StoreNames<Schema>> | undefined) => boolean | void;
|
|
7
|
-
export declare const clearItem: (storage: Storage, kvsVersionKey: string, options: {
|
|
4
|
+
export declare const getItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => any;
|
|
5
|
+
export declare const hasItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => boolean;
|
|
6
|
+
export declare const setItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>, value: StoreValue<Schema, StoreNames<Schema>> | undefined) => boolean | void;
|
|
7
|
+
export declare const clearItem: (storage: Storage, tableName: string, kvsVersionKey: string, options: {
|
|
8
8
|
force: boolean;
|
|
9
9
|
}) => void;
|
|
10
|
-
export declare const deleteItem: <Schema extends StorageSchema>(storage: Storage, key: StoreNames<Schema>) => boolean;
|
|
11
|
-
export declare function createIterator<Schema extends StorageSchema>(storage: Storage, kvsVersionKey: string): Iterator<[StoreNames<Schema>, StoreValue<Schema, StoreNames<Schema>>]>;
|
|
10
|
+
export declare const deleteItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => boolean;
|
|
11
|
+
export declare function createIterator<Schema extends StorageSchema>(storage: Storage, tableName: string, kvsVersionKey: string): Iterator<[StoreNames<Schema>, StoreValue<Schema, StoreNames<Schema>>]>;
|
|
12
12
|
export declare type StorageSchema = {
|
|
13
13
|
[index: string]: JsonValue;
|
|
14
14
|
};
|
|
@@ -17,4 +17,4 @@ export declare type KvsStorageSyncOptions<Schema extends StorageSchema> = KVSSyn
|
|
|
17
17
|
kvsVersionKey?: string;
|
|
18
18
|
storage: Storage;
|
|
19
19
|
};
|
|
20
|
-
export declare const kvsStorageSync: <Schema extends StorageSchema>(options: KvsStorageSyncOptions<Schema>) =>
|
|
20
|
+
export declare const kvsStorageSync: <Schema extends StorageSchema>(options: KvsStorageSyncOptions<Schema>) => KvsStorageSync<Schema>;
|
package/module/storage.js
CHANGED
|
@@ -1,32 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
export const getItem = (storage, key) => {
|
|
13
|
-
const item = storage.getItem(String(key));
|
|
1
|
+
function invariant(condition, message) {
|
|
2
|
+
if (condition) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
throw new Error(message);
|
|
6
|
+
}
|
|
7
|
+
const TABLE_KEY_MARKER = ".__.";
|
|
8
|
+
export const getItem = (storage, tableName, key) => {
|
|
9
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
10
|
+
const item = storage.getItem(storageKey);
|
|
14
11
|
return item !== null ? JSON.parse(item) : undefined;
|
|
15
12
|
};
|
|
16
|
-
export const hasItem = (storage, key) => {
|
|
17
|
-
|
|
13
|
+
export const hasItem = (storage, tableName, key) => {
|
|
14
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
15
|
+
return storage.getItem(storageKey) !== null;
|
|
18
16
|
};
|
|
19
|
-
export const setItem = (storage, key, value) => {
|
|
17
|
+
export const setItem = (storage, tableName, key, value) => {
|
|
20
18
|
// It is difference with IndexedDB implementation.
|
|
21
19
|
// This behavior compatible with localStorage.
|
|
22
20
|
if (value === undefined) {
|
|
23
|
-
return deleteItem(storage, key);
|
|
21
|
+
return deleteItem(storage, tableName, key);
|
|
24
22
|
}
|
|
25
|
-
|
|
23
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
24
|
+
return storage.setItem(storageKey, JSON.stringify(value));
|
|
26
25
|
};
|
|
27
|
-
export const clearItem = (storage, kvsVersionKey, options) => {
|
|
26
|
+
export const clearItem = (storage, tableName, kvsVersionKey, options) => {
|
|
28
27
|
// TODO: kvsVersionKey is special type
|
|
29
|
-
const currentVersion = getItem(storage, kvsVersionKey);
|
|
28
|
+
const currentVersion = getItem(storage, tableName, kvsVersionKey);
|
|
30
29
|
// clear all
|
|
31
30
|
storage.clear();
|
|
32
31
|
// if option.force is true, does not restore metadata.
|
|
@@ -35,39 +34,46 @@ export const clearItem = (storage, kvsVersionKey, options) => {
|
|
|
35
34
|
}
|
|
36
35
|
// set kvs version again
|
|
37
36
|
if (currentVersion !== undefined) {
|
|
38
|
-
setItem(storage, kvsVersionKey, currentVersion);
|
|
37
|
+
setItem(storage, tableName, kvsVersionKey, currentVersion);
|
|
39
38
|
}
|
|
40
39
|
};
|
|
41
|
-
export const deleteItem = (storage, key) => {
|
|
40
|
+
export const deleteItem = (storage, tableName, key) => {
|
|
42
41
|
try {
|
|
43
|
-
|
|
42
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
43
|
+
storage.removeItem(storageKey);
|
|
44
44
|
return true;
|
|
45
45
|
}
|
|
46
46
|
catch (_a) {
|
|
47
47
|
return false;
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
export function* createIterator(storage, kvsVersionKey) {
|
|
50
|
+
export function* createIterator(storage, tableName, kvsVersionKey) {
|
|
51
|
+
const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
|
|
51
52
|
for (let i = 0; i < storage.length; i++) {
|
|
52
53
|
const key = storage.key(i);
|
|
53
54
|
if (!key) {
|
|
54
55
|
continue;
|
|
55
56
|
}
|
|
57
|
+
// skip another storage
|
|
58
|
+
if (!key.startsWith(tableKeyPrefix)) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
56
61
|
// skip meta key
|
|
57
|
-
|
|
62
|
+
const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
|
|
63
|
+
if (keyWithoutPrefix === kvsVersionKey) {
|
|
58
64
|
continue;
|
|
59
65
|
}
|
|
60
|
-
const value = getItem(storage,
|
|
61
|
-
yield [
|
|
66
|
+
const value = getItem(storage, tableName, keyWithoutPrefix);
|
|
67
|
+
yield [keyWithoutPrefix, value];
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
const DEFAULT_KVS_VERSION = 1;
|
|
65
|
-
const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
71
|
+
const openStorage = ({ storage, tableName, version, kvsVersionKey, onUpgrade }) => {
|
|
66
72
|
// kvsVersionKey is special type
|
|
67
73
|
// first `oldVersion` is `0`
|
|
68
|
-
let oldVersion = getItem(storage, kvsVersionKey);
|
|
74
|
+
let oldVersion = getItem(storage, tableName, kvsVersionKey);
|
|
69
75
|
if (oldVersion === undefined) {
|
|
70
|
-
setItem(storage, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
76
|
+
setItem(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
71
77
|
// first `oldVersion` is `0`
|
|
72
78
|
// https://github.com/azu/kvs/issues/8
|
|
73
79
|
oldVersion = 0;
|
|
@@ -83,33 +89,33 @@ const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
|
83
89
|
}
|
|
84
90
|
return storage;
|
|
85
91
|
};
|
|
86
|
-
const createStore = ({ storage, kvsVersionKey }) => {
|
|
92
|
+
const createStore = ({ storage, tableName, kvsVersionKey }) => {
|
|
87
93
|
const store = {
|
|
88
94
|
get(key) {
|
|
89
|
-
return getItem(storage, key);
|
|
95
|
+
return getItem(storage, tableName, key);
|
|
90
96
|
},
|
|
91
97
|
has(key) {
|
|
92
|
-
return hasItem(storage, key);
|
|
98
|
+
return hasItem(storage, tableName, key);
|
|
93
99
|
},
|
|
94
100
|
set(key, value) {
|
|
95
|
-
setItem(storage, key, value);
|
|
101
|
+
setItem(storage, tableName, key, value);
|
|
96
102
|
return store;
|
|
97
103
|
},
|
|
98
104
|
clear() {
|
|
99
|
-
return clearItem(storage, kvsVersionKey, { force: false });
|
|
105
|
+
return clearItem(storage, tableName, kvsVersionKey, { force: false });
|
|
100
106
|
},
|
|
101
107
|
delete(key) {
|
|
102
|
-
return deleteItem(storage, key);
|
|
108
|
+
return deleteItem(storage, tableName, key);
|
|
103
109
|
},
|
|
104
110
|
dropInstance() {
|
|
105
|
-
return clearItem(storage, kvsVersionKey, { force: true });
|
|
111
|
+
return clearItem(storage, tableName, kvsVersionKey, { force: true });
|
|
106
112
|
},
|
|
107
113
|
close() {
|
|
108
114
|
// Noop function
|
|
109
115
|
return;
|
|
110
116
|
},
|
|
111
117
|
[Symbol.iterator]() {
|
|
112
|
-
const iterator = createIterator(storage, kvsVersionKey);
|
|
118
|
+
const iterator = createIterator(storage, tableName, kvsVersionKey);
|
|
113
119
|
return {
|
|
114
120
|
next() {
|
|
115
121
|
return iterator.next();
|
|
@@ -121,9 +127,14 @@ const createStore = ({ storage, kvsVersionKey }) => {
|
|
|
121
127
|
};
|
|
122
128
|
export const kvsStorageSync = (options) => {
|
|
123
129
|
var _a;
|
|
124
|
-
const { name, version, upgrade
|
|
130
|
+
const { name, version, upgrade, ...kvStorageOptions } = options;
|
|
131
|
+
invariant(typeof name === "string", "name should be string");
|
|
132
|
+
invariant(name.length > 0, "name should not be empty");
|
|
133
|
+
invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
|
|
134
|
+
invariant(typeof version === "number", `version should be number`);
|
|
125
135
|
const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
|
|
126
136
|
const storage = openStorage({
|
|
137
|
+
tableName: name,
|
|
127
138
|
storage: options.storage,
|
|
128
139
|
version: options.version,
|
|
129
140
|
onUpgrade: ({ oldVersion, newVersion, storage }) => {
|
|
@@ -131,13 +142,13 @@ export const kvsStorageSync = (options) => {
|
|
|
131
142
|
return;
|
|
132
143
|
}
|
|
133
144
|
return options.upgrade({
|
|
134
|
-
kvs: createStore({ storage, kvsVersionKey }),
|
|
145
|
+
kvs: createStore({ storage, tableName: name, kvsVersionKey }),
|
|
135
146
|
oldVersion,
|
|
136
147
|
newVersion
|
|
137
148
|
});
|
|
138
149
|
},
|
|
139
150
|
kvsVersionKey
|
|
140
151
|
});
|
|
141
|
-
return createStore({ storage, kvsVersionKey });
|
|
152
|
+
return createStore({ storage, tableName: name, kvsVersionKey });
|
|
142
153
|
};
|
|
143
154
|
//# sourceMappingURL=storage.js.map
|
package/module/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kvs/storage-sync",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Storage(localStorage, sessionStorage) helper for KVS.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"kvs",
|
|
@@ -45,24 +45,23 @@
|
|
|
45
45
|
"trailingComma": "none"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@kvs/types": "^
|
|
48
|
+
"@kvs/types": "^2.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@jsdevtools/karma-config": "^3.1.7",
|
|
52
|
-
"@kvs/common-test-case": "^
|
|
53
|
-
"@types/mocha": "^
|
|
54
|
-
"@types/node": "^
|
|
55
|
-
"karma": "^
|
|
52
|
+
"@kvs/common-test-case": "^2.1.0",
|
|
53
|
+
"@types/mocha": "^9.0.0",
|
|
54
|
+
"@types/node": "^16.9.1",
|
|
55
|
+
"karma": "^6.3.4",
|
|
56
56
|
"karma-cli": "^2.0.0",
|
|
57
|
-
"
|
|
58
|
-
"mocha": "^8.1.1",
|
|
57
|
+
"mocha": "^9.1.1",
|
|
59
58
|
"prettier": "^2.0.5",
|
|
60
59
|
"rimraf": "^3.0.2",
|
|
61
|
-
"ts-loader": "^8.0
|
|
62
|
-
"typescript": "^
|
|
60
|
+
"ts-loader": "^8.2.0",
|
|
61
|
+
"typescript": "^4.2.4"
|
|
63
62
|
},
|
|
64
63
|
"publishConfig": {
|
|
65
64
|
"access": "public"
|
|
66
65
|
},
|
|
67
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "ac9e606e7952f1fd69b2bbf27671d068cb71ade8"
|
|
68
67
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
# [1.1.0](https://github.com/azu/kvs/compare/v1.0.0...v1.1.0) (2020-10-29)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
* **examples:** add basic example ([#14](https://github.com/azu/kvs/issues/14)) ([351215d](https://github.com/azu/kvs/commit/351215d6c04158201768036caaa6e792c72717ea))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
# [1.0.0](https://github.com/azu/kvs/compare/v0.3.1...v1.0.0) (2020-08-22)
|
|
18
|
-
|
|
19
|
-
**Note:** Version bump only for package @kvs/storage-sync
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# [0.3.0](https://github.com/azu/kvs/compare/v0.2.1...v0.3.0) (2020-08-22)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### Features
|
|
29
|
-
|
|
30
|
-
* **storage-sync:** add storage-sync package ([#11](https://github.com/azu/kvs/issues/11)) ([5748776](https://github.com/azu/kvs/commit/574877624202660c0427cd050d30e807d7bbbd26))
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## [0.2.1](https://github.com/azu/kvs/compare/v0.2.0...v0.2.1) (2020-08-22)
|
|
37
|
-
|
|
38
|
-
**Note:** Version bump only for package @kvs/storage
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
# [0.2.0](https://github.com/azu/kvs/compare/v0.1.0...v0.2.0) (2020-08-08)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### Features
|
|
48
|
-
|
|
49
|
-
* **@kvs/indexeddb:** migrate Schema Type ([ec143e2](https://github.com/azu/kvs/commit/ec143e27d174271f4ce45f657e1ae644ef01591c))
|
|
50
|
-
* **@kvs/localstorage:** migrate to Schema type ([0c84640](https://github.com/azu/kvs/commit/0c84640c1c1d28955c60ca83d8a01bdce936d9ef))
|
|
51
|
-
* **storage:** use Schema interface ([2560aae](https://github.com/azu/kvs/commit/2560aae28d642c8f2e8ee5920dc1cc15f7c8c3f6))
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# 0.1.0 (2020-08-08)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### Bug Fixes
|
|
61
|
-
|
|
62
|
-
* add deps ([b72e91a](https://github.com/azu/kvs/commit/b72e91aaa2487d69d44200ef0a11cc0b5f8fb904))
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
### Features
|
|
66
|
-
|
|
67
|
-
* **@kvs/node-localstorage:** add node implementation ([5160012](https://github.com/azu/kvs/commit/516001286c96ac85cb54d55fbba62549d6d7eb0e))
|
|
68
|
-
* add `close()` to interface ([a269d1d](https://github.com/azu/kvs/commit/a269d1dda6ce63388771e6fa4d897a26f284b72c))
|