@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 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":";;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"}
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>) => KVSSync<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
- exports.getItem = (storage, key) => {
16
- const item = storage.getItem(String(key));
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.hasItem = (storage, key) => {
20
- return storage.getItem(String(key)) !== null;
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.setItem = (storage, key, value) => {
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
- return storage.setItem(String(key), JSON.stringify(value));
28
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
29
+ return storage.setItem(storageKey, JSON.stringify(value));
29
30
  };
30
- exports.clearItem = (storage, kvsVersionKey, options) => {
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.deleteItem = (storage, key) => {
46
+ exports.clearItem = clearItem;
47
+ const deleteItem = (storage, tableName, key) => {
45
48
  try {
46
- storage.removeItem(String(key));
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
- function* createIterator(storage, kvsVersionKey) {
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
- if (key === kvsVersionKey) {
70
+ const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
71
+ if (keyWithoutPrefix === kvsVersionKey) {
61
72
  continue;
62
73
  }
63
- const value = exports.getItem(storage, key);
64
- yield [key, value];
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
- exports.kvsStorageSync = (options) => {
137
+ const kvsStorageSync = (options) => {
127
138
  var _a;
128
- const { name, version, upgrade } = options, kvStorageOptions = __rest(options, ["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
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=JSONValue.js.map
@@ -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>) => KVSSync<Schema>;
20
+ export declare const kvsStorageSync: <Schema extends StorageSchema>(options: KvsStorageSyncOptions<Schema>) => KvsStorageSync<Schema>;
package/module/storage.js CHANGED
@@ -1,32 +1,31 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
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
- return storage.getItem(String(key)) !== null;
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
- return storage.setItem(String(key), JSON.stringify(value));
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
- storage.removeItem(String(key));
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
- if (key === kvsVersionKey) {
62
+ const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
63
+ if (keyWithoutPrefix === kvsVersionKey) {
58
64
  continue;
59
65
  }
60
- const value = getItem(storage, key);
61
- yield [key, value];
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 } = options, kvStorageOptions = __rest(options, ["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
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAGA,SAAS,SAAS,CAAC,SAAc,EAAE,OAAe;IAC9C,IAAI,SAAS,EAAE;QACX,OAAO;KACV;IACD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAGD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,CAA+B,OAAgB,EAAE,SAAiB,EAAE,GAAuB,EAAE,EAAE;IAClH,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAG,CAA+B,OAAgB,EAAE,SAAiB,EAAE,GAAuB,EAAE,EAAE;IAClH,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACnE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AAChD,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,OAAgB,EAChB,SAAiB,EACjB,GAAuB,EACvB,KAAyD,EAC3D,EAAE;IACA,kDAAkD;IAClD,8CAA8C;IAC9C,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;KAC9C;IACD,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACnE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,SAAiB,EAAE,aAAqB,EAAE,OAA2B,EAAE,EAAE;IACjH,sCAAsC;IACtC,MAAM,cAAc,GAAuB,OAAO,CAAM,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3F,YAAY;IACZ,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,sDAAsD;IACtD,IAAI,OAAO,CAAC,KAAK,EAAE;QACf,OAAO;KACV;IACD,wBAAwB;IACxB,IAAI,cAAc,KAAK,SAAS,EAAE;QAC9B,OAAO,CAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;KACnE;AACL,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,OAAgB,EAChB,SAAiB,EACjB,GAAuB,EAChB,EAAE;IACT,IAAI;QACA,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;KACf;IAAC,WAAM;QACJ,OAAO,KAAK,CAAC;KAChB;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,CAAC,CAAC,cAAc,CAC3B,OAAgB,EAChB,SAAiB,EACjB,aAAqB;IAErB,MAAM,cAAc,GAAG,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAmC,CAAC;QAC7D,IAAI,CAAC,GAAG,EAAE;YACN,SAAS;SACZ;QACD,uBAAuB;QACvB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YACjC,SAAS;SACZ;QACD,gBAAgB;QAChB,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,gBAAgB,KAAK,aAAa,EAAE;YACpC,SAAS;SACZ;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC5D,MAAM,CAAC,gBAAsC,EAAE,KAAK,CAAC,CAAC;KACzD;AACL,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,WAAW,GAAG,CAAC,EACjB,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,EACb,SAAS,EAeZ,EAAE,EAAE;IACD,gCAAgC;IAChC,4BAA4B;IAC5B,IAAI,UAAU,GAAG,OAAO,CAAM,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACjE,IAAI,UAAU,KAAK,SAAS,EAAE;QAC1B,OAAO,CAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QACrE,4BAA4B;QAC5B,sCAAsC;QACtC,UAAU,GAAG,CAAC,CAAC;KAClB;IACD,qCAAqC;IACrC,IAAI,UAAU,KAAK,OAAO,EAAE;QACxB,SAAS,CAAC;YACN,UAAU;YACV,UAAU,EAAE,OAAO;YACnB,OAAO;SACV,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAA+B,EAC/C,OAAO,EACP,SAAS,EACT,aAAa,EAKhB,EAA0B,EAAE;IACzB,MAAM,KAAK,GAA2B;QAClC,GAAG,CAA+B,GAAM;YACpC,OAAO,OAAO,CAAS,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,GAAuB;YACvB,OAAO,OAAO,CAAS,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAA+B,GAAM,EAAE,KAAwC;YAC9E,OAAO,CAAS,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK;YACD,OAAO,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,CAAC,GAAuB;YAC1B,OAAO,UAAU,CAAS,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,YAAY;YACR,OAAO,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,KAAK;YACD,gBAAgB;YAChB,OAAO;QACX,CAAC;QACD,CAAC,MAAM,CAAC,QAAQ,CAAC;YACb,MAAM,QAAQ,GAAG,cAAc,CAAS,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAC3E,OAAO;gBACH,IAAI;oBACA,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;IACF,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,OAAsC,EAChB,EAAE;;IACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAChE,SAAS,CAAC,OAAO,IAAI,KAAK,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC7D,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACvD,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,wBAAwB,gBAAgB,0BAA0B,CAAC,CAAC;IAChH,SAAS,CAAC,OAAO,OAAO,KAAK,QAAQ,EAAE,0BAA0B,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,MAAA,gBAAgB,CAAC,aAAa,mCAAI,iBAAiB,CAAC;IAC1E,MAAM,OAAO,GAAG,WAAW,CAAC;QACxB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAClB,OAAO;aACV;YACD,OAAO,OAAO,CAAC,OAAO,CAAC;gBACnB,GAAG,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;gBAC7D,UAAU;gBACV,UAAU;aACb,CAAC,CAAC;QACP,CAAC;QACD,aAAa;KAChB,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kvs/storage-sync",
3
- "version": "1.1.0",
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": "^1.1.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": "^1.1.0",
53
- "@types/mocha": "^8.0.1",
54
- "@types/node": "^14.0.27",
55
- "karma": "^5.1.1",
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
- "lerna": "^3.22.1",
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.2",
62
- "typescript": "^3.9.7"
60
+ "ts-loader": "^8.2.0",
61
+ "typescript": "^4.2.4"
63
62
  },
64
63
  "publishConfig": {
65
64
  "access": "public"
66
65
  },
67
- "gitHead": "8059a1e365484eab697477640c0dc7257d899db5"
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))