@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 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 [@kvs/storage-sync] is sync version.
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":";;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
@@ -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
- exports.getItem = (storage, key) => {
16
- const item = storage.getItem(String(key));
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.hasItem = (storage, key) => {
20
- return storage.getItem(String(key)) !== null;
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.setItem = (storage, key, value) => {
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
- return storage.setItem(String(key), JSON.stringify(value));
39
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
40
+ return storage.setItem(storageKey, JSON.stringify(value));
29
41
  };
30
- exports.clearItem = (storage, kvsVersionKey, options) => {
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.deleteItem = (storage, key) => {
57
+ exports.clearItem = clearItem;
58
+ const deleteItem = (storage, tableName, key) => {
45
59
  try {
46
- storage.removeItem(String(key));
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
- function* createIterator(storage, kvsVersionKey) {
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
- if (key === kvsVersionKey) {
81
+ const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
82
+ if (keyWithoutPrefix === kvsVersionKey) {
61
83
  continue;
62
84
  }
63
- const value = exports.getItem(storage, key);
64
- yield [key, value];
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
- exports.kvsStorageSync = (options) => {
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
@@ -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
@@ -9,24 +9,34 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- export const getItem = (storage, key) => {
13
- const item = storage.getItem(String(key));
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
- return storage.getItem(String(key)) !== null;
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
- return storage.setItem(String(key), JSON.stringify(value));
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
- storage.removeItem(String(key));
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
- if (key === kvsVersionKey) {
73
+ const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
74
+ if (keyWithoutPrefix === kvsVersionKey) {
58
75
  continue;
59
76
  }
60
- const value = getItem(storage, key);
61
- yield [key, value];
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
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kvs/storage-sync",
3
- "version": "0.3.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
- "prepublish": "npm run clean && npm run build",
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.3.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.3.0",
53
- "@types/mocha": "^8.0.1",
54
- "@types/node": "^14.0.27",
55
- "karma": "^5.1.1",
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
- "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": "29ecd5a079ce0698ae822cc87344cf33532bad1e"
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))