@kvs/storage-sync 0.3.0 → 2.0.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/README.md +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/storage.d.ts +7 -7
- package/lib/storage.js +58 -30
- package/lib/storage.js.map +1 -1
- package/module/JSONValue.js +1 -0
- package/module/storage.d.ts +7 -7
- package/module/storage.js +51 -29
- package/module/storage.js.map +1 -1
- package/package.json +11 -12
- package/CHANGELOG.md +0 -49
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Storage-like for KVS.
|
|
|
4
4
|
|
|
5
5
|
You can inject Storage object like localStorage, sessionStorage to this storage.
|
|
6
6
|
|
|
7
|
-
[@kvs/storage] is async version, but
|
|
7
|
+
[@kvs/storage](https://github.com/azu/kvs/tree/master/packages/storage) is async version, but `@kvs/storage-sync` is sync version.
|
|
8
8
|
|
|
9
9
|
## Feature
|
|
10
10
|
|
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
|
@@ -12,24 +12,37 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.kvsStorageSync = exports.createIterator = exports.deleteItem = exports.clearItem = exports.setItem = exports.hasItem = exports.getItem = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
function invariant(condition, message) {
|
|
16
|
+
if (condition) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
throw new Error(message);
|
|
20
|
+
}
|
|
21
|
+
const TABLE_KEY_MARKER = ".__.";
|
|
22
|
+
const getItem = (storage, tableName, key) => {
|
|
23
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
24
|
+
const item = storage.getItem(storageKey);
|
|
17
25
|
return item !== null ? JSON.parse(item) : undefined;
|
|
18
26
|
};
|
|
19
|
-
exports.
|
|
20
|
-
|
|
27
|
+
exports.getItem = getItem;
|
|
28
|
+
const hasItem = (storage, tableName, key) => {
|
|
29
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
30
|
+
return storage.getItem(storageKey) !== null;
|
|
21
31
|
};
|
|
22
|
-
exports.
|
|
32
|
+
exports.hasItem = hasItem;
|
|
33
|
+
const setItem = (storage, tableName, key, value) => {
|
|
23
34
|
// It is difference with IndexedDB implementation.
|
|
24
35
|
// This behavior compatible with localStorage.
|
|
25
36
|
if (value === undefined) {
|
|
26
|
-
return exports.deleteItem(storage, key);
|
|
37
|
+
return (0, exports.deleteItem)(storage, tableName, key);
|
|
27
38
|
}
|
|
28
|
-
|
|
39
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
40
|
+
return storage.setItem(storageKey, JSON.stringify(value));
|
|
29
41
|
};
|
|
30
|
-
exports.
|
|
42
|
+
exports.setItem = setItem;
|
|
43
|
+
const clearItem = (storage, tableName, kvsVersionKey, options) => {
|
|
31
44
|
// TODO: kvsVersionKey is special type
|
|
32
|
-
const currentVersion = exports.getItem(storage, kvsVersionKey);
|
|
45
|
+
const currentVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
|
|
33
46
|
// clear all
|
|
34
47
|
storage.clear();
|
|
35
48
|
// if option.force is true, does not restore metadata.
|
|
@@ -38,40 +51,49 @@ exports.clearItem = (storage, kvsVersionKey, options) => {
|
|
|
38
51
|
}
|
|
39
52
|
// set kvs version again
|
|
40
53
|
if (currentVersion !== undefined) {
|
|
41
|
-
exports.setItem(storage, kvsVersionKey, currentVersion);
|
|
54
|
+
(0, exports.setItem)(storage, tableName, kvsVersionKey, currentVersion);
|
|
42
55
|
}
|
|
43
56
|
};
|
|
44
|
-
exports.
|
|
57
|
+
exports.clearItem = clearItem;
|
|
58
|
+
const deleteItem = (storage, tableName, key) => {
|
|
45
59
|
try {
|
|
46
|
-
|
|
60
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
61
|
+
storage.removeItem(storageKey);
|
|
47
62
|
return true;
|
|
48
63
|
}
|
|
49
64
|
catch (_a) {
|
|
50
65
|
return false;
|
|
51
66
|
}
|
|
52
67
|
};
|
|
53
|
-
|
|
68
|
+
exports.deleteItem = deleteItem;
|
|
69
|
+
function* createIterator(storage, tableName, kvsVersionKey) {
|
|
70
|
+
const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
|
|
54
71
|
for (let i = 0; i < storage.length; i++) {
|
|
55
72
|
const key = storage.key(i);
|
|
56
73
|
if (!key) {
|
|
57
74
|
continue;
|
|
58
75
|
}
|
|
76
|
+
// skip another storage
|
|
77
|
+
if (!key.startsWith(tableKeyPrefix)) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
59
80
|
// skip meta key
|
|
60
|
-
|
|
81
|
+
const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
|
|
82
|
+
if (keyWithoutPrefix === kvsVersionKey) {
|
|
61
83
|
continue;
|
|
62
84
|
}
|
|
63
|
-
const value = exports.getItem(storage,
|
|
64
|
-
yield [
|
|
85
|
+
const value = (0, exports.getItem)(storage, tableName, keyWithoutPrefix);
|
|
86
|
+
yield [keyWithoutPrefix, value];
|
|
65
87
|
}
|
|
66
88
|
}
|
|
67
89
|
exports.createIterator = createIterator;
|
|
68
90
|
const DEFAULT_KVS_VERSION = 1;
|
|
69
|
-
const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
91
|
+
const openStorage = ({ storage, tableName, version, kvsVersionKey, onUpgrade }) => {
|
|
70
92
|
// kvsVersionKey is special type
|
|
71
93
|
// first `oldVersion` is `0`
|
|
72
|
-
let oldVersion = exports.getItem(storage, kvsVersionKey);
|
|
94
|
+
let oldVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
|
|
73
95
|
if (oldVersion === undefined) {
|
|
74
|
-
exports.setItem(storage, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
96
|
+
(0, exports.setItem)(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
75
97
|
// first `oldVersion` is `0`
|
|
76
98
|
// https://github.com/azu/kvs/issues/8
|
|
77
99
|
oldVersion = 0;
|
|
@@ -87,33 +109,33 @@ const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
|
87
109
|
}
|
|
88
110
|
return storage;
|
|
89
111
|
};
|
|
90
|
-
const createStore = ({ storage, kvsVersionKey }) => {
|
|
112
|
+
const createStore = ({ storage, tableName, kvsVersionKey }) => {
|
|
91
113
|
const store = {
|
|
92
114
|
get(key) {
|
|
93
|
-
return exports.getItem(storage, key);
|
|
115
|
+
return (0, exports.getItem)(storage, tableName, key);
|
|
94
116
|
},
|
|
95
117
|
has(key) {
|
|
96
|
-
return exports.hasItem(storage, key);
|
|
118
|
+
return (0, exports.hasItem)(storage, tableName, key);
|
|
97
119
|
},
|
|
98
120
|
set(key, value) {
|
|
99
|
-
exports.setItem(storage, key, value);
|
|
121
|
+
(0, exports.setItem)(storage, tableName, key, value);
|
|
100
122
|
return store;
|
|
101
123
|
},
|
|
102
124
|
clear() {
|
|
103
|
-
return exports.clearItem(storage, kvsVersionKey, { force: false });
|
|
125
|
+
return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: false });
|
|
104
126
|
},
|
|
105
127
|
delete(key) {
|
|
106
|
-
return exports.deleteItem(storage, key);
|
|
128
|
+
return (0, exports.deleteItem)(storage, tableName, key);
|
|
107
129
|
},
|
|
108
130
|
dropInstance() {
|
|
109
|
-
return exports.clearItem(storage, kvsVersionKey, { force: true });
|
|
131
|
+
return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: true });
|
|
110
132
|
},
|
|
111
133
|
close() {
|
|
112
134
|
// Noop function
|
|
113
135
|
return;
|
|
114
136
|
},
|
|
115
137
|
[Symbol.iterator]() {
|
|
116
|
-
const iterator = createIterator(storage, kvsVersionKey);
|
|
138
|
+
const iterator = createIterator(storage, tableName, kvsVersionKey);
|
|
117
139
|
return {
|
|
118
140
|
next() {
|
|
119
141
|
return iterator.next();
|
|
@@ -123,11 +145,16 @@ const createStore = ({ storage, kvsVersionKey }) => {
|
|
|
123
145
|
};
|
|
124
146
|
return store;
|
|
125
147
|
};
|
|
126
|
-
|
|
148
|
+
const kvsStorageSync = (options) => {
|
|
127
149
|
var _a;
|
|
128
150
|
const { name, version, upgrade } = options, kvStorageOptions = __rest(options, ["name", "version", "upgrade"]);
|
|
151
|
+
invariant(typeof name === "string", "name should be string");
|
|
152
|
+
invariant(name.length > 0, "name should not be empty");
|
|
153
|
+
invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
|
|
154
|
+
invariant(typeof version === "number", `version should be number`);
|
|
129
155
|
const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
|
|
130
156
|
const storage = openStorage({
|
|
157
|
+
tableName: name,
|
|
131
158
|
storage: options.storage,
|
|
132
159
|
version: options.version,
|
|
133
160
|
onUpgrade: ({ oldVersion, newVersion, storage }) => {
|
|
@@ -135,13 +162,14 @@ exports.kvsStorageSync = (options) => {
|
|
|
135
162
|
return;
|
|
136
163
|
}
|
|
137
164
|
return options.upgrade({
|
|
138
|
-
kvs: createStore({ storage, kvsVersionKey }),
|
|
165
|
+
kvs: createStore({ storage, tableName: name, kvsVersionKey }),
|
|
139
166
|
oldVersion,
|
|
140
167
|
newVersion
|
|
141
168
|
});
|
|
142
169
|
},
|
|
143
170
|
kvsVersionKey
|
|
144
171
|
});
|
|
145
|
-
return createStore({ storage, kvsVersionKey });
|
|
172
|
+
return createStore({ storage, tableName: name, kvsVersionKey });
|
|
146
173
|
};
|
|
174
|
+
exports.kvsStorageSync = kvsStorageSync;
|
|
147
175
|
//# 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
|
@@ -9,24 +9,34 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
function invariant(condition, message) {
|
|
13
|
+
if (condition) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
throw new Error(message);
|
|
17
|
+
}
|
|
18
|
+
const TABLE_KEY_MARKER = ".__.";
|
|
19
|
+
export const getItem = (storage, tableName, key) => {
|
|
20
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
21
|
+
const item = storage.getItem(storageKey);
|
|
14
22
|
return item !== null ? JSON.parse(item) : undefined;
|
|
15
23
|
};
|
|
16
|
-
export const hasItem = (storage, key) => {
|
|
17
|
-
|
|
24
|
+
export const hasItem = (storage, tableName, key) => {
|
|
25
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
26
|
+
return storage.getItem(storageKey) !== null;
|
|
18
27
|
};
|
|
19
|
-
export const setItem = (storage, key, value) => {
|
|
28
|
+
export const setItem = (storage, tableName, key, value) => {
|
|
20
29
|
// It is difference with IndexedDB implementation.
|
|
21
30
|
// This behavior compatible with localStorage.
|
|
22
31
|
if (value === undefined) {
|
|
23
|
-
return deleteItem(storage, key);
|
|
32
|
+
return deleteItem(storage, tableName, key);
|
|
24
33
|
}
|
|
25
|
-
|
|
34
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
35
|
+
return storage.setItem(storageKey, JSON.stringify(value));
|
|
26
36
|
};
|
|
27
|
-
export const clearItem = (storage, kvsVersionKey, options) => {
|
|
37
|
+
export const clearItem = (storage, tableName, kvsVersionKey, options) => {
|
|
28
38
|
// TODO: kvsVersionKey is special type
|
|
29
|
-
const currentVersion = getItem(storage, kvsVersionKey);
|
|
39
|
+
const currentVersion = getItem(storage, tableName, kvsVersionKey);
|
|
30
40
|
// clear all
|
|
31
41
|
storage.clear();
|
|
32
42
|
// if option.force is true, does not restore metadata.
|
|
@@ -35,39 +45,46 @@ export const clearItem = (storage, kvsVersionKey, options) => {
|
|
|
35
45
|
}
|
|
36
46
|
// set kvs version again
|
|
37
47
|
if (currentVersion !== undefined) {
|
|
38
|
-
setItem(storage, kvsVersionKey, currentVersion);
|
|
48
|
+
setItem(storage, tableName, kvsVersionKey, currentVersion);
|
|
39
49
|
}
|
|
40
50
|
};
|
|
41
|
-
export const deleteItem = (storage, key) => {
|
|
51
|
+
export const deleteItem = (storage, tableName, key) => {
|
|
42
52
|
try {
|
|
43
|
-
|
|
53
|
+
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
|
|
54
|
+
storage.removeItem(storageKey);
|
|
44
55
|
return true;
|
|
45
56
|
}
|
|
46
57
|
catch (_a) {
|
|
47
58
|
return false;
|
|
48
59
|
}
|
|
49
60
|
};
|
|
50
|
-
export function* createIterator(storage, kvsVersionKey) {
|
|
61
|
+
export function* createIterator(storage, tableName, kvsVersionKey) {
|
|
62
|
+
const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
|
|
51
63
|
for (let i = 0; i < storage.length; i++) {
|
|
52
64
|
const key = storage.key(i);
|
|
53
65
|
if (!key) {
|
|
54
66
|
continue;
|
|
55
67
|
}
|
|
68
|
+
// skip another storage
|
|
69
|
+
if (!key.startsWith(tableKeyPrefix)) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
56
72
|
// skip meta key
|
|
57
|
-
|
|
73
|
+
const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
|
|
74
|
+
if (keyWithoutPrefix === kvsVersionKey) {
|
|
58
75
|
continue;
|
|
59
76
|
}
|
|
60
|
-
const value = getItem(storage,
|
|
61
|
-
yield [
|
|
77
|
+
const value = getItem(storage, tableName, keyWithoutPrefix);
|
|
78
|
+
yield [keyWithoutPrefix, value];
|
|
62
79
|
}
|
|
63
80
|
}
|
|
64
81
|
const DEFAULT_KVS_VERSION = 1;
|
|
65
|
-
const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
82
|
+
const openStorage = ({ storage, tableName, version, kvsVersionKey, onUpgrade }) => {
|
|
66
83
|
// kvsVersionKey is special type
|
|
67
84
|
// first `oldVersion` is `0`
|
|
68
|
-
let oldVersion = getItem(storage, kvsVersionKey);
|
|
85
|
+
let oldVersion = getItem(storage, tableName, kvsVersionKey);
|
|
69
86
|
if (oldVersion === undefined) {
|
|
70
|
-
setItem(storage, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
87
|
+
setItem(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
|
|
71
88
|
// first `oldVersion` is `0`
|
|
72
89
|
// https://github.com/azu/kvs/issues/8
|
|
73
90
|
oldVersion = 0;
|
|
@@ -83,33 +100,33 @@ const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => {
|
|
|
83
100
|
}
|
|
84
101
|
return storage;
|
|
85
102
|
};
|
|
86
|
-
const createStore = ({ storage, kvsVersionKey }) => {
|
|
103
|
+
const createStore = ({ storage, tableName, kvsVersionKey }) => {
|
|
87
104
|
const store = {
|
|
88
105
|
get(key) {
|
|
89
|
-
return getItem(storage, key);
|
|
106
|
+
return getItem(storage, tableName, key);
|
|
90
107
|
},
|
|
91
108
|
has(key) {
|
|
92
|
-
return hasItem(storage, key);
|
|
109
|
+
return hasItem(storage, tableName, key);
|
|
93
110
|
},
|
|
94
111
|
set(key, value) {
|
|
95
|
-
setItem(storage, key, value);
|
|
112
|
+
setItem(storage, tableName, key, value);
|
|
96
113
|
return store;
|
|
97
114
|
},
|
|
98
115
|
clear() {
|
|
99
|
-
return clearItem(storage, kvsVersionKey, { force: false });
|
|
116
|
+
return clearItem(storage, tableName, kvsVersionKey, { force: false });
|
|
100
117
|
},
|
|
101
118
|
delete(key) {
|
|
102
|
-
return deleteItem(storage, key);
|
|
119
|
+
return deleteItem(storage, tableName, key);
|
|
103
120
|
},
|
|
104
121
|
dropInstance() {
|
|
105
|
-
return clearItem(storage, kvsVersionKey, { force: true });
|
|
122
|
+
return clearItem(storage, tableName, kvsVersionKey, { force: true });
|
|
106
123
|
},
|
|
107
124
|
close() {
|
|
108
125
|
// Noop function
|
|
109
126
|
return;
|
|
110
127
|
},
|
|
111
128
|
[Symbol.iterator]() {
|
|
112
|
-
const iterator = createIterator(storage, kvsVersionKey);
|
|
129
|
+
const iterator = createIterator(storage, tableName, kvsVersionKey);
|
|
113
130
|
return {
|
|
114
131
|
next() {
|
|
115
132
|
return iterator.next();
|
|
@@ -122,8 +139,13 @@ const createStore = ({ storage, kvsVersionKey }) => {
|
|
|
122
139
|
export const kvsStorageSync = (options) => {
|
|
123
140
|
var _a;
|
|
124
141
|
const { name, version, upgrade } = options, kvStorageOptions = __rest(options, ["name", "version", "upgrade"]);
|
|
142
|
+
invariant(typeof name === "string", "name should be string");
|
|
143
|
+
invariant(name.length > 0, "name should not be empty");
|
|
144
|
+
invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
|
|
145
|
+
invariant(typeof version === "number", `version should be number`);
|
|
125
146
|
const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
|
|
126
147
|
const storage = openStorage({
|
|
148
|
+
tableName: name,
|
|
127
149
|
storage: options.storage,
|
|
128
150
|
version: options.version,
|
|
129
151
|
onUpgrade: ({ oldVersion, newVersion, storage }) => {
|
|
@@ -131,13 +153,13 @@ export const kvsStorageSync = (options) => {
|
|
|
131
153
|
return;
|
|
132
154
|
}
|
|
133
155
|
return options.upgrade({
|
|
134
|
-
kvs: createStore({ storage, kvsVersionKey }),
|
|
156
|
+
kvs: createStore({ storage, tableName: name, kvsVersionKey }),
|
|
135
157
|
oldVersion,
|
|
136
158
|
newVersion
|
|
137
159
|
});
|
|
138
160
|
},
|
|
139
161
|
kvsVersionKey
|
|
140
162
|
});
|
|
141
|
-
return createStore({ storage, kvsVersionKey });
|
|
163
|
+
return createStore({ storage, tableName: name, kvsVersionKey });
|
|
142
164
|
};
|
|
143
165
|
//# 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": "0.
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Storage(localStorage, sessionStorage) helper for KVS.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"kvs",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"build": "tsc -p . && tsc --project ./tsconfig.module.json",
|
|
35
35
|
"clean": "rimraf lib/ module/",
|
|
36
36
|
"prettier": "prettier --write \"**/*.{js,jsx,ts,tsx,css}\"",
|
|
37
|
-
"
|
|
37
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
38
38
|
"test": "karma start --single-run",
|
|
39
39
|
"watch": "tsc -p . --watch"
|
|
40
40
|
},
|
|
@@ -45,24 +45,23 @@
|
|
|
45
45
|
"trailingComma": "none"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@kvs/types": "^0.
|
|
48
|
+
"@kvs/types": "^2.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@jsdevtools/karma-config": "^3.1.7",
|
|
52
|
-
"@kvs/common-test-case": "^0.
|
|
53
|
-
"@types/mocha": "^
|
|
54
|
-
"@types/node": "^
|
|
55
|
-
"karma": "^
|
|
52
|
+
"@kvs/common-test-case": "^2.0.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": "b43dd2fdbefe4ee5714d0690b2f8f576dc8c1417"
|
|
68
67
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,49 +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
|
-
# [0.3.0](https://github.com/azu/kvs/compare/v0.2.1...v0.3.0) (2020-08-22)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
* **storage-sync:** add storage-sync package ([#11](https://github.com/azu/kvs/issues/11)) ([5748776](https://github.com/azu/kvs/commit/574877624202660c0427cd050d30e807d7bbbd26))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## [0.2.1](https://github.com/azu/kvs/compare/v0.2.0...v0.2.1) (2020-08-22)
|
|
18
|
-
|
|
19
|
-
**Note:** Version bump only for package @kvs/storage
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# [0.2.0](https://github.com/azu/kvs/compare/v0.1.0...v0.2.0) (2020-08-08)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### Features
|
|
29
|
-
|
|
30
|
-
* **@kvs/indexeddb:** migrate Schema Type ([ec143e2](https://github.com/azu/kvs/commit/ec143e27d174271f4ce45f657e1ae644ef01591c))
|
|
31
|
-
* **@kvs/localstorage:** migrate to Schema type ([0c84640](https://github.com/azu/kvs/commit/0c84640c1c1d28955c60ca83d8a01bdce936d9ef))
|
|
32
|
-
* **storage:** use Schema interface ([2560aae](https://github.com/azu/kvs/commit/2560aae28d642c8f2e8ee5920dc1cc15f7c8c3f6))
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# 0.1.0 (2020-08-08)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### Bug Fixes
|
|
42
|
-
|
|
43
|
-
* add deps ([b72e91a](https://github.com/azu/kvs/commit/b72e91aaa2487d69d44200ef0a11cc0b5f8fb904))
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
### Features
|
|
47
|
-
|
|
48
|
-
* **@kvs/node-localstorage:** add node implementation ([5160012](https://github.com/azu/kvs/commit/516001286c96ac85cb54d55fbba62549d6d7eb0e))
|
|
49
|
-
* add `close()` to interface ([a269d1d](https://github.com/azu/kvs/commit/a269d1dda6ce63388771e6fa4d897a26f284b72c))
|