@kvs/storage 1.2.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/lib/storage.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import type { KVS, KVSOptions, 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
  };
package/lib/storage.js CHANGED
@@ -21,27 +21,37 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.kvsStorage = exports.createIterator = exports.deleteItem = exports.clearItem = exports.setItem = exports.hasItem = exports.getItem = void 0;
24
- const getItem = (storage, key) => {
25
- const item = storage.getItem(String(key));
24
+ function invariant(condition, message) {
25
+ if (condition) {
26
+ return;
27
+ }
28
+ throw new Error(message);
29
+ }
30
+ const TABLE_KEY_MARKER = ".__.";
31
+ const getItem = (storage, tableName, key) => {
32
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
33
+ const item = storage.getItem(storageKey);
26
34
  return item !== null ? JSON.parse(item) : undefined;
27
35
  };
28
36
  exports.getItem = getItem;
29
- const hasItem = (storage, key) => {
30
- return storage.getItem(String(key)) !== null;
37
+ const hasItem = (storage, tableName, key) => {
38
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
39
+ return storage.getItem(storageKey) !== null;
31
40
  };
32
41
  exports.hasItem = hasItem;
33
- const setItem = (storage, key, value) => {
42
+ const setItem = (storage, tableName, key, value) => {
34
43
  // It is difference with IndexedDB implementation.
35
44
  // This behavior compatible with localStorage.
36
45
  if (value === undefined) {
37
- return exports.deleteItem(storage, key);
46
+ return (0, exports.deleteItem)(storage, tableName, key);
38
47
  }
39
- return storage.setItem(String(key), JSON.stringify(value));
48
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
49
+ return storage.setItem(storageKey, JSON.stringify(value));
40
50
  };
41
51
  exports.setItem = setItem;
42
- const clearItem = (storage, kvsVersionKey, options) => {
52
+ const clearItem = (storage, tableName, kvsVersionKey, options) => {
43
53
  // TODO: kvsVersionKey is special type
44
- const currentVersion = exports.getItem(storage, kvsVersionKey);
54
+ const currentVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
45
55
  // clear all
46
56
  storage.clear();
47
57
  // if option.force is true, does not restore metadata.
@@ -50,13 +60,14 @@ const clearItem = (storage, kvsVersionKey, options) => {
50
60
  }
51
61
  // set kvs version again
52
62
  if (currentVersion !== undefined) {
53
- exports.setItem(storage, kvsVersionKey, currentVersion);
63
+ (0, exports.setItem)(storage, tableName, kvsVersionKey, currentVersion);
54
64
  }
55
65
  };
56
66
  exports.clearItem = clearItem;
57
- const deleteItem = (storage, key) => {
67
+ const deleteItem = (storage, tableName, key) => {
68
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
58
69
  try {
59
- storage.removeItem(String(key));
70
+ storage.removeItem(storageKey);
60
71
  return true;
61
72
  }
62
73
  catch (_a) {
@@ -64,28 +75,34 @@ const deleteItem = (storage, key) => {
64
75
  }
65
76
  };
66
77
  exports.deleteItem = deleteItem;
67
- function* createIterator(storage, kvsVersionKey) {
78
+ function* createIterator(storage, tableName, kvsVersionKey) {
79
+ const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
68
80
  for (let i = 0; i < storage.length; i++) {
69
81
  const key = storage.key(i);
70
82
  if (!key) {
71
83
  continue;
72
84
  }
85
+ // skip another storage
86
+ if (!key.startsWith(tableKeyPrefix)) {
87
+ continue;
88
+ }
73
89
  // skip meta key
74
- if (key === kvsVersionKey) {
90
+ const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
91
+ if (keyWithoutPrefix === kvsVersionKey) {
75
92
  continue;
76
93
  }
77
- const value = exports.getItem(storage, key);
78
- yield [key, value];
94
+ const value = (0, exports.getItem)(storage, tableName, keyWithoutPrefix);
95
+ yield [keyWithoutPrefix, value];
79
96
  }
80
97
  }
81
98
  exports.createIterator = createIterator;
82
99
  const DEFAULT_KVS_VERSION = 1;
83
- const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => __awaiter(void 0, void 0, void 0, function* () {
100
+ const openStorage = ({ storage, version, tableName, kvsVersionKey, onUpgrade }) => __awaiter(void 0, void 0, void 0, function* () {
84
101
  // kvsVersionKey is special type
85
102
  // first `oldVersion` is `0`
86
- let oldVersion = exports.getItem(storage, kvsVersionKey);
103
+ let oldVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
87
104
  if (oldVersion === undefined) {
88
- exports.setItem(storage, kvsVersionKey, DEFAULT_KVS_VERSION);
105
+ (0, exports.setItem)(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
89
106
  // first `oldVersion` is `0`
90
107
  // https://github.com/azu/kvs/issues/8
91
108
  oldVersion = 0;
@@ -102,22 +119,22 @@ const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => __awaite
102
119
  }
103
120
  return storage;
104
121
  });
105
- const createStore = ({ storage, kvsVersionKey }) => {
122
+ const createStore = ({ tableName, storage, kvsVersionKey }) => {
106
123
  const store = {
107
124
  get(key) {
108
125
  return Promise.resolve().then(() => {
109
- return exports.getItem(storage, key);
126
+ return (0, exports.getItem)(storage, tableName, key);
110
127
  });
111
128
  },
112
129
  has(key) {
113
130
  return Promise.resolve().then(() => {
114
- return exports.hasItem(storage, key);
131
+ return (0, exports.hasItem)(storage, tableName, key);
115
132
  });
116
133
  },
117
134
  set(key, value) {
118
135
  return Promise.resolve()
119
136
  .then(() => {
120
- return exports.setItem(storage, key, value);
137
+ return (0, exports.setItem)(storage, tableName, key, value);
121
138
  })
122
139
  .then(() => {
123
140
  return store;
@@ -125,17 +142,17 @@ const createStore = ({ storage, kvsVersionKey }) => {
125
142
  },
126
143
  clear() {
127
144
  return Promise.resolve().then(() => {
128
- return exports.clearItem(storage, kvsVersionKey, { force: false });
145
+ return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: false });
129
146
  });
130
147
  },
131
148
  delete(key) {
132
149
  return Promise.resolve().then(() => {
133
- return exports.deleteItem(storage, key);
150
+ return (0, exports.deleteItem)(storage, tableName, key);
134
151
  });
135
152
  },
136
153
  dropInstance() {
137
154
  return Promise.resolve().then(() => {
138
- return exports.clearItem(storage, kvsVersionKey, { force: true });
155
+ return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: true });
139
156
  });
140
157
  },
141
158
  close() {
@@ -143,7 +160,7 @@ const createStore = ({ storage, kvsVersionKey }) => {
143
160
  return Promise.resolve();
144
161
  },
145
162
  [Symbol.asyncIterator]() {
146
- const iterator = createIterator(storage, kvsVersionKey);
163
+ const iterator = createIterator(storage, tableName, kvsVersionKey);
147
164
  return {
148
165
  next() {
149
166
  return Promise.resolve().then(() => {
@@ -158,23 +175,28 @@ const createStore = ({ storage, kvsVersionKey }) => {
158
175
  const kvsStorage = (options) => __awaiter(void 0, void 0, void 0, function* () {
159
176
  var _a;
160
177
  const { name, version, upgrade } = options, kvStorageOptions = __rest(options, ["name", "version", "upgrade"]);
178
+ invariant(typeof name === "string", "name should be string");
179
+ invariant(name.length > 0, "name should not be empty");
180
+ invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
181
+ invariant(typeof version === "number", `version should be number`);
161
182
  const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
162
183
  const storage = yield openStorage({
163
184
  storage: options.storage,
164
185
  version: options.version,
186
+ tableName: name,
165
187
  onUpgrade: ({ oldVersion, newVersion, storage }) => {
166
188
  if (!options.upgrade) {
167
189
  return;
168
190
  }
169
191
  return options.upgrade({
170
- kvs: createStore({ storage, kvsVersionKey }),
192
+ kvs: createStore({ tableName: name, storage, kvsVersionKey }),
171
193
  oldVersion,
172
194
  newVersion
173
195
  });
174
196
  },
175
197
  kvsVersionKey
176
198
  });
177
- return createStore({ storage, kvsVersionKey });
199
+ return createStore({ tableName: name, storage, kvsVersionKey });
178
200
  });
179
201
  exports.kvsStorage = kvsStorage;
180
202
  //# 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,14 +1,14 @@
1
1
  import type { KVS, KVSOptions, 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
  };
package/module/storage.js CHANGED
@@ -18,24 +18,34 @@ var __rest = (this && this.__rest) || function (s, e) {
18
18
  }
19
19
  return t;
20
20
  };
21
- export const getItem = (storage, key) => {
22
- const item = storage.getItem(String(key));
21
+ function invariant(condition, message) {
22
+ if (condition) {
23
+ return;
24
+ }
25
+ throw new Error(message);
26
+ }
27
+ const TABLE_KEY_MARKER = ".__.";
28
+ export const getItem = (storage, tableName, key) => {
29
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
30
+ const item = storage.getItem(storageKey);
23
31
  return item !== null ? JSON.parse(item) : undefined;
24
32
  };
25
- export const hasItem = (storage, key) => {
26
- return storage.getItem(String(key)) !== null;
33
+ export const hasItem = (storage, tableName, key) => {
34
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
35
+ return storage.getItem(storageKey) !== null;
27
36
  };
28
- export const setItem = (storage, key, value) => {
37
+ export const setItem = (storage, tableName, key, value) => {
29
38
  // It is difference with IndexedDB implementation.
30
39
  // This behavior compatible with localStorage.
31
40
  if (value === undefined) {
32
- return deleteItem(storage, key);
41
+ return deleteItem(storage, tableName, key);
33
42
  }
34
- return storage.setItem(String(key), JSON.stringify(value));
43
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
44
+ return storage.setItem(storageKey, JSON.stringify(value));
35
45
  };
36
- export const clearItem = (storage, kvsVersionKey, options) => {
46
+ export const clearItem = (storage, tableName, kvsVersionKey, options) => {
37
47
  // TODO: kvsVersionKey is special type
38
- const currentVersion = getItem(storage, kvsVersionKey);
48
+ const currentVersion = getItem(storage, tableName, kvsVersionKey);
39
49
  // clear all
40
50
  storage.clear();
41
51
  // if option.force is true, does not restore metadata.
@@ -44,39 +54,46 @@ export const clearItem = (storage, kvsVersionKey, options) => {
44
54
  }
45
55
  // set kvs version again
46
56
  if (currentVersion !== undefined) {
47
- setItem(storage, kvsVersionKey, currentVersion);
57
+ setItem(storage, tableName, kvsVersionKey, currentVersion);
48
58
  }
49
59
  };
50
- export const deleteItem = (storage, key) => {
60
+ export const deleteItem = (storage, tableName, key) => {
61
+ const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
51
62
  try {
52
- storage.removeItem(String(key));
63
+ storage.removeItem(storageKey);
53
64
  return true;
54
65
  }
55
66
  catch (_a) {
56
67
  return false;
57
68
  }
58
69
  };
59
- export function* createIterator(storage, kvsVersionKey) {
70
+ export function* createIterator(storage, tableName, kvsVersionKey) {
71
+ const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
60
72
  for (let i = 0; i < storage.length; i++) {
61
73
  const key = storage.key(i);
62
74
  if (!key) {
63
75
  continue;
64
76
  }
77
+ // skip another storage
78
+ if (!key.startsWith(tableKeyPrefix)) {
79
+ continue;
80
+ }
65
81
  // skip meta key
66
- if (key === kvsVersionKey) {
82
+ const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
83
+ if (keyWithoutPrefix === kvsVersionKey) {
67
84
  continue;
68
85
  }
69
- const value = getItem(storage, key);
70
- yield [key, value];
86
+ const value = getItem(storage, tableName, keyWithoutPrefix);
87
+ yield [keyWithoutPrefix, value];
71
88
  }
72
89
  }
73
90
  const DEFAULT_KVS_VERSION = 1;
74
- const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => __awaiter(void 0, void 0, void 0, function* () {
91
+ const openStorage = ({ storage, version, tableName, kvsVersionKey, onUpgrade }) => __awaiter(void 0, void 0, void 0, function* () {
75
92
  // kvsVersionKey is special type
76
93
  // first `oldVersion` is `0`
77
- let oldVersion = getItem(storage, kvsVersionKey);
94
+ let oldVersion = getItem(storage, tableName, kvsVersionKey);
78
95
  if (oldVersion === undefined) {
79
- setItem(storage, kvsVersionKey, DEFAULT_KVS_VERSION);
96
+ setItem(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
80
97
  // first `oldVersion` is `0`
81
98
  // https://github.com/azu/kvs/issues/8
82
99
  oldVersion = 0;
@@ -93,22 +110,22 @@ const openStorage = ({ storage, version, kvsVersionKey, onUpgrade }) => __awaite
93
110
  }
94
111
  return storage;
95
112
  });
96
- const createStore = ({ storage, kvsVersionKey }) => {
113
+ const createStore = ({ tableName, storage, kvsVersionKey }) => {
97
114
  const store = {
98
115
  get(key) {
99
116
  return Promise.resolve().then(() => {
100
- return getItem(storage, key);
117
+ return getItem(storage, tableName, key);
101
118
  });
102
119
  },
103
120
  has(key) {
104
121
  return Promise.resolve().then(() => {
105
- return hasItem(storage, key);
122
+ return hasItem(storage, tableName, key);
106
123
  });
107
124
  },
108
125
  set(key, value) {
109
126
  return Promise.resolve()
110
127
  .then(() => {
111
- return setItem(storage, key, value);
128
+ return setItem(storage, tableName, key, value);
112
129
  })
113
130
  .then(() => {
114
131
  return store;
@@ -116,17 +133,17 @@ const createStore = ({ storage, kvsVersionKey }) => {
116
133
  },
117
134
  clear() {
118
135
  return Promise.resolve().then(() => {
119
- return clearItem(storage, kvsVersionKey, { force: false });
136
+ return clearItem(storage, tableName, kvsVersionKey, { force: false });
120
137
  });
121
138
  },
122
139
  delete(key) {
123
140
  return Promise.resolve().then(() => {
124
- return deleteItem(storage, key);
141
+ return deleteItem(storage, tableName, key);
125
142
  });
126
143
  },
127
144
  dropInstance() {
128
145
  return Promise.resolve().then(() => {
129
- return clearItem(storage, kvsVersionKey, { force: true });
146
+ return clearItem(storage, tableName, kvsVersionKey, { force: true });
130
147
  });
131
148
  },
132
149
  close() {
@@ -134,7 +151,7 @@ const createStore = ({ storage, kvsVersionKey }) => {
134
151
  return Promise.resolve();
135
152
  },
136
153
  [Symbol.asyncIterator]() {
137
- const iterator = createIterator(storage, kvsVersionKey);
154
+ const iterator = createIterator(storage, tableName, kvsVersionKey);
138
155
  return {
139
156
  next() {
140
157
  return Promise.resolve().then(() => {
@@ -149,22 +166,27 @@ const createStore = ({ storage, kvsVersionKey }) => {
149
166
  export const kvsStorage = (options) => __awaiter(void 0, void 0, void 0, function* () {
150
167
  var _a;
151
168
  const { name, version, upgrade } = options, kvStorageOptions = __rest(options, ["name", "version", "upgrade"]);
169
+ invariant(typeof name === "string", "name should be string");
170
+ invariant(name.length > 0, "name should not be empty");
171
+ invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
172
+ invariant(typeof version === "number", `version should be number`);
152
173
  const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
153
174
  const storage = yield openStorage({
154
175
  storage: options.storage,
155
176
  version: options.version,
177
+ tableName: name,
156
178
  onUpgrade: ({ oldVersion, newVersion, storage }) => {
157
179
  if (!options.upgrade) {
158
180
  return;
159
181
  }
160
182
  return options.upgrade({
161
- kvs: createStore({ storage, kvsVersionKey }),
183
+ kvs: createStore({ tableName: name, storage, kvsVersionKey }),
162
184
  oldVersion,
163
185
  newVersion
164
186
  });
165
187
  },
166
188
  kvsVersionKey
167
189
  });
168
- return createStore({ storage, kvsVersionKey });
190
+ return createStore({ tableName: name, storage, kvsVersionKey });
169
191
  });
170
192
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,MAAM,CAAC,MAAM,OAAO,GAAG,CAA+B,OAAgB,EAAE,GAAuB,EAAE,EAAE;IAC/F,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,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,GAAuB,EAAE,EAAE;IAC/F,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;AACjD,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,OAAgB,EAChB,GAAuB,EACvB,KAAyD,EAC3D,EAAE;IACA,kDAAkD;IAClD,8CAA8C;IAC9C,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KACnC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,aAAqB,EAAE,OAA2B,EAAE,EAAE;IAC9F,sCAAsC;IACtC,MAAM,cAAc,GAAuB,OAAO,CAAM,OAAO,EAAE,aAAa,CAAC,CAAC;IAChF,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,aAAa,EAAE,cAAc,CAAC,CAAC;KACxD;AACL,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CAA+B,OAAgB,EAAE,GAAuB,EAAW,EAAE;IAC3G,IAAI;QACA,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;KACf;IAAC,WAAM;QACJ,OAAO,KAAK,CAAC;KAChB;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,CAAC,CAAC,cAAc,CAC3B,OAAgB,EAChB,aAAqB;IAErB,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,gBAAgB;QAChB,IAAI,GAAG,KAAK,aAAa,EAAE;YACvB,SAAS;SACZ;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACtB;AACL,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,WAAW,GAAG,CAAO,EACvB,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EAcZ,EAAE,EAAE;IACD,gCAAgC;IAChC,4BAA4B;IAC5B,IAAI,UAAU,GAAG,OAAO,CAAM,OAAO,EAAE,aAAa,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,SAAS,EAAE;QAC1B,OAAO,CAAM,OAAO,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAC1D,4BAA4B;QAC5B,sCAAsC;QACtC,UAAU,GAAG,CAAC,CAAC;KAClB;IACD,qCAAqC;IACrC,IAAI,UAAU,KAAK,OAAO,EAAE;QACxB,OAAO,OAAO,CAAC,OAAO,CAClB,SAAS,CAAC;YACN,UAAU;YACV,UAAU,EAAE,OAAO;YACnB,OAAO;SACV,CAAC,CACL,CAAC,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;KACN;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA,CAAC;AACF,MAAM,WAAW,GAAG,CAA+B,EAC/C,OAAO,EACP,aAAa,EAIhB,EAAE,EAAE;IACD,MAAM,KAAK,GAAuB;QAC9B,GAAG,CAA+B,GAAM;YACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/B,OAAO,OAAO,CAAS,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACP,CAAC;QACD,GAAG,CAAC,GAAuB;YACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/B,OAAO,OAAO,CAAS,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACP,CAAC;QACD,GAAG,CAA+B,GAAM,EAAE,KAAwC;YAC9E,OAAO,OAAO,CAAC,OAAO,EAAE;iBACnB,IAAI,CAAC,GAAG,EAAE;gBACP,OAAO,OAAO,CAAS,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACP,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;QACX,CAAC;QACD,KAAK;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/B,OAAO,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,CAAC,GAAuB;YAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/B,OAAO,UAAU,CAAS,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACP,CAAC;QACD,YAAY;YACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/B,OAAO,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACP,CAAC;QACD,KAAK;YACD,gBAAgB;YAChB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YAClB,MAAM,QAAQ,GAAG,cAAc,CAAS,OAAO,EAAE,aAAa,CAAC,CAAC;YAChE,OAAO;gBACH,IAAI;oBACA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC/B,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;IACF,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,OAAkC,EACP,EAAE;;IAC7B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAA0B,OAAO,EAA5B,gBAAgB,UAAK,OAAO,EAAzD,8BAA+C,CAAU,CAAC;IAChE,MAAM,aAAa,GAAG,MAAA,gBAAgB,CAAC,aAAa,mCAAI,iBAAiB,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAC9B,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,aAAa,EAAE,CAAC;gBAC5C,UAAU;gBACV,UAAU;aACb,CAAC,CAAC;QACP,CAAC;QACD,aAAa;KAChB,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AACnD,CAAC,CAAA,CAAC"}
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",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "description": "Storage(localStorage, sessionStorage) helper for KVS.",
5
5
  "keywords": [
6
6
  "kvs",
@@ -45,23 +45,22 @@
45
45
  "trailingComma": "none"
46
46
  },
47
47
  "dependencies": {
48
- "@kvs/types": "^1.2.0"
48
+ "@kvs/types": "^2.0.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@jsdevtools/karma-config": "^3.1.7",
52
- "@types/mocha": "^8.0.1",
53
- "@types/node": "^14.0.27",
54
- "karma": "^5.1.1",
52
+ "@types/mocha": "^9.0.0",
53
+ "@types/node": "^16.9.1",
54
+ "karma": "^6.3.4",
55
55
  "karma-cli": "^2.0.0",
56
- "lerna": "^3.22.1",
57
- "mocha": "^8.1.1",
56
+ "mocha": "^9.1.1",
58
57
  "prettier": "^2.0.5",
59
58
  "rimraf": "^3.0.2",
60
- "ts-loader": "^8.1.0",
59
+ "ts-loader": "^8.2.0",
61
60
  "typescript": "^4.2.4"
62
61
  },
63
62
  "publishConfig": {
64
63
  "access": "public"
65
64
  },
66
- "gitHead": "63a9bf838e8efa7690163d28476edd90e2c6b94c"
65
+ "gitHead": "b43dd2fdbefe4ee5714d0690b2f8f576dc8c1417"
67
66
  }
package/CHANGELOG.md DELETED
@@ -1,92 +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.2.0](https://github.com/azu/kvs/compare/v1.1.0...v1.2.0) (2021-04-17)
7
-
8
-
9
- ### Features
10
-
11
- * **types:** Use Key Remapping in Mapped Types. ([#17](https://github.com/azu/kvs/issues/17)) ([7c099be](https://github.com/azu/kvs/commit/7c099be4ae39adedba78d111574347395e024362))
12
-
13
-
14
- ### BREAKING CHANGES
15
-
16
- * **types:** require TypeScript 4.1+
17
-
18
- It aims to support to following schema:
19
-
20
- ```ts
21
- const storage = kvs<{
22
- [index: string]: string;
23
- }>;
24
- ```
25
-
26
-
27
-
28
-
29
-
30
- # [1.1.0](https://github.com/azu/kvs/compare/v1.0.0...v1.1.0) (2020-10-29)
31
-
32
-
33
- ### Features
34
-
35
- * **examples:** add basic example ([#14](https://github.com/azu/kvs/issues/14)) ([351215d](https://github.com/azu/kvs/commit/351215d6c04158201768036caaa6e792c72717ea))
36
-
37
-
38
-
39
-
40
-
41
- # [1.0.0](https://github.com/azu/kvs/compare/v0.3.1...v1.0.0) (2020-08-22)
42
-
43
- **Note:** Version bump only for package @kvs/storage
44
-
45
-
46
-
47
-
48
-
49
- # [0.3.0](https://github.com/azu/kvs/compare/v0.2.1...v0.3.0) (2020-08-22)
50
-
51
-
52
- ### Features
53
-
54
- * **storage-sync:** add storage-sync package ([#11](https://github.com/azu/kvs/issues/11)) ([5748776](https://github.com/azu/kvs/commit/574877624202660c0427cd050d30e807d7bbbd26))
55
-
56
-
57
-
58
-
59
-
60
- ## [0.2.1](https://github.com/azu/kvs/compare/v0.2.0...v0.2.1) (2020-08-22)
61
-
62
- **Note:** Version bump only for package @kvs/storage
63
-
64
-
65
-
66
-
67
-
68
- # [0.2.0](https://github.com/azu/kvs/compare/v0.1.0...v0.2.0) (2020-08-08)
69
-
70
-
71
- ### Features
72
-
73
- * **@kvs/indexeddb:** migrate Schema Type ([ec143e2](https://github.com/azu/kvs/commit/ec143e27d174271f4ce45f657e1ae644ef01591c))
74
- * **@kvs/localstorage:** migrate to Schema type ([0c84640](https://github.com/azu/kvs/commit/0c84640c1c1d28955c60ca83d8a01bdce936d9ef))
75
- * **storage:** use Schema interface ([2560aae](https://github.com/azu/kvs/commit/2560aae28d642c8f2e8ee5920dc1cc15f7c8c3f6))
76
-
77
-
78
-
79
-
80
-
81
- # 0.1.0 (2020-08-08)
82
-
83
-
84
- ### Bug Fixes
85
-
86
- * add deps ([b72e91a](https://github.com/azu/kvs/commit/b72e91aaa2487d69d44200ef0a11cc0b5f8fb904))
87
-
88
-
89
- ### Features
90
-
91
- * **@kvs/node-localstorage:** add node implementation ([5160012](https://github.com/azu/kvs/commit/516001286c96ac85cb54d55fbba62549d6d7eb0e))
92
- * add `close()` to interface ([a269d1d](https://github.com/azu/kvs/commit/a269d1dda6ce63388771e6fa4d897a26f284b72c))