@luvio/durable-store-idb 0.138.13 → 0.139.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.
@@ -44,14 +44,14 @@ async function getDb(dbName, createIfNotExist) {
44
44
  request.onupgradeneeded = () => request.result.createObjectStore(COMMON_STORE_NAME);
45
45
  return idbRequestToPromise(request);
46
46
  }
47
- // eslint-disable-next-line no-undef
48
47
  function getStore(db, transactionMode) {
49
48
  return db.transaction(COMMON_STORE_NAME, transactionMode).objectStore(COMMON_STORE_NAME);
50
49
  }
51
- // eslint-disable-next-line no-undef
52
50
  function get(keys, db) {
53
51
  const store = getStore(db, 'readonly');
54
- return Promise.all(keys.map((key) => idbRequestToPromise(store.get(key))));
52
+ return Promise.all(keys.map((key) => idbRequestToPromise(store.get(key)).then((value) => {
53
+ return { key, value };
54
+ })));
55
55
  }
56
56
  async function getAll(db) {
57
57
  const store = getStore(db, 'readonly');
@@ -65,7 +65,6 @@ function set(entries, db) {
65
65
  entries.forEach((entry) => store.put(entry.value, entry.key));
66
66
  return idbTransactionToPromise(store.transaction);
67
67
  }
68
- // eslint-disable-next-line no-undef
69
68
  function del(keys, db) {
70
69
  const store = getStore(db, 'readwrite');
71
70
  keys.forEach((key) => store.delete(key));
@@ -110,10 +109,9 @@ class IndexedDbDurableStore {
110
109
  const rows = await get(entryIds, db);
111
110
  const returnEntries = {};
112
111
  for (let i = 0, len = rows.length; i < len; i++) {
113
- const row = rows[i];
114
- const key = entryIds[i];
115
- if (row !== undefined) {
116
- returnEntries[key] = row;
112
+ const { key, value } = rows[i];
113
+ if (value !== undefined) {
114
+ returnEntries[key] = value;
117
115
  }
118
116
  }
119
117
  return returnEntries;
@@ -2,13 +2,13 @@
2
2
  * Helper methods to make working with IDB more promise-based. Also simplifies
3
3
  * IDB schema concepts to just having a single "kvp" store per DB.
4
4
  */
5
- export type KeyValue<T = unknown> = {
6
- key: IDBValidKey;
5
+ export type KeyValue<T = unknown, KeyType extends IDBValidKey = IDBValidKey> = {
6
+ key: KeyType;
7
7
  value: T;
8
8
  };
9
9
  export declare function getDb(dbName: string, createIfNotExist: boolean): Promise<IDBDatabase | undefined>;
10
- export declare function get<T = unknown>(keys: IDBValidKey[], db: IDBDatabase): Promise<T[]>;
11
- export declare function getAll<T = unknown>(db: IDBDatabase): Promise<KeyValue<T>[]>;
10
+ export declare function get<T = unknown, KeyType extends IDBValidKey = IDBValidKey>(keys: KeyType[], db: IDBDatabase): Promise<KeyValue<T, KeyType>[]>;
11
+ export declare function getAll<T = unknown, KeyType extends IDBValidKey = IDBValidKey>(db: IDBDatabase): Promise<KeyValue<T, KeyType>[]>;
12
12
  export declare function set<T = unknown>(entries: KeyValue<T>[], db: IDBDatabase): Promise<void>;
13
- export declare function del(keys: IDBValidKey[], db: IDBDatabase): Promise<void>;
13
+ export declare function del<KeyType extends IDBValidKey = IDBValidKey>(keys: KeyType[], db: IDBDatabase): Promise<void>;
14
14
  export declare function clear(db: IDBDatabase): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luvio/durable-store-idb",
3
- "version": "0.138.13",
3
+ "version": "0.139.0",
4
4
  "description": "IndexedDB-based implementation of the Luvio DurableStore",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,7 +23,7 @@
23
23
  "watch": "yarn build --watch"
24
24
  },
25
25
  "devDependencies": {
26
- "@luvio/environments": "^0.138.13",
26
+ "@luvio/environments": "^0.139.0",
27
27
  "fake-indexeddb": "^4.0.1"
28
28
  },
29
29
  "volta": {