@xylabs/indexed-db 7.0.8 → 8.0.1
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 -864
- package/dist/browser/index.d.ts +1 -11
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.mjs +2 -277
- package/dist/browser/index.mjs.map +4 -4
- package/dist/browser/model.d.ts +1 -2
- package/dist/browser/model.d.ts.map +1 -1
- package/dist/browser/model.mjs +2 -0
- package/dist/browser/model.mjs.map +3 -3
- package/dist/neutral/index.d.ts +1 -11
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +2 -277
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/neutral/model.d.ts +1 -2
- package/dist/neutral/model.d.ts.map +1 -1
- package/dist/neutral/model.mjs +2 -0
- package/dist/neutral/model.mjs.map +3 -3
- package/dist/node/index.d.ts +1 -11
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +2 -277
- package/dist/node/index.mjs.map +4 -4
- package/dist/node/model.d.ts +1 -2
- package/dist/node/model.d.ts.map +1 -1
- package/dist/node/model.mjs +2 -0
- package/dist/node/model.mjs.map +3 -3
- package/package.json +7 -12
- package/dist/browser/IndexDescription.d.ts +0 -31
- package/dist/browser/IndexDescription.d.ts.map +0 -1
- package/dist/browser/IndexedDbKeyValueStore.d.ts +0 -40
- package/dist/browser/IndexedDbKeyValueStore.d.ts.map +0 -1
- package/dist/browser/ObjectStore.d.ts +0 -17
- package/dist/browser/ObjectStore.d.ts.map +0 -1
- package/dist/browser/checkDbNeedsUpgrade.d.ts +0 -11
- package/dist/browser/checkDbNeedsUpgrade.d.ts.map +0 -1
- package/dist/browser/checkStoreNeedsUpgrade.d.ts +0 -13
- package/dist/browser/checkStoreNeedsUpgrade.d.ts.map +0 -1
- package/dist/browser/createStoreDuringUpgrade.d.ts +0 -12
- package/dist/browser/createStoreDuringUpgrade.d.ts.map +0 -1
- package/dist/browser/dbMutex.d.ts +0 -14
- package/dist/browser/dbMutex.d.ts.map +0 -1
- package/dist/browser/getExistingIndexes.d.ts +0 -12
- package/dist/browser/getExistingIndexes.d.ts.map +0 -1
- package/dist/browser/withDb.d.ts +0 -16
- package/dist/browser/withDb.d.ts.map +0 -1
- package/dist/browser/withDbByVersion.d.ts +0 -17
- package/dist/browser/withDbByVersion.d.ts.map +0 -1
- package/dist/browser/withReadOnlyStore.d.ts +0 -14
- package/dist/browser/withReadOnlyStore.d.ts.map +0 -1
- package/dist/browser/withReadWriteStore.d.ts +0 -14
- package/dist/browser/withReadWriteStore.d.ts.map +0 -1
- package/dist/browser/withStore.d.ts +0 -18
- package/dist/browser/withStore.d.ts.map +0 -1
- package/dist/neutral/IndexDescription.d.ts +0 -31
- package/dist/neutral/IndexDescription.d.ts.map +0 -1
- package/dist/neutral/IndexedDbKeyValueStore.d.ts +0 -40
- package/dist/neutral/IndexedDbKeyValueStore.d.ts.map +0 -1
- package/dist/neutral/ObjectStore.d.ts +0 -17
- package/dist/neutral/ObjectStore.d.ts.map +0 -1
- package/dist/neutral/checkDbNeedsUpgrade.d.ts +0 -11
- package/dist/neutral/checkDbNeedsUpgrade.d.ts.map +0 -1
- package/dist/neutral/checkStoreNeedsUpgrade.d.ts +0 -13
- package/dist/neutral/checkStoreNeedsUpgrade.d.ts.map +0 -1
- package/dist/neutral/createStoreDuringUpgrade.d.ts +0 -12
- package/dist/neutral/createStoreDuringUpgrade.d.ts.map +0 -1
- package/dist/neutral/dbMutex.d.ts +0 -14
- package/dist/neutral/dbMutex.d.ts.map +0 -1
- package/dist/neutral/getExistingIndexes.d.ts +0 -12
- package/dist/neutral/getExistingIndexes.d.ts.map +0 -1
- package/dist/neutral/withDb.d.ts +0 -16
- package/dist/neutral/withDb.d.ts.map +0 -1
- package/dist/neutral/withDbByVersion.d.ts +0 -17
- package/dist/neutral/withDbByVersion.d.ts.map +0 -1
- package/dist/neutral/withReadOnlyStore.d.ts +0 -14
- package/dist/neutral/withReadOnlyStore.d.ts.map +0 -1
- package/dist/neutral/withReadWriteStore.d.ts +0 -14
- package/dist/neutral/withReadWriteStore.d.ts.map +0 -1
- package/dist/neutral/withStore.d.ts +0 -18
- package/dist/neutral/withStore.d.ts.map +0 -1
- package/dist/node/IndexDescription.d.ts +0 -31
- package/dist/node/IndexDescription.d.ts.map +0 -1
- package/dist/node/IndexedDbKeyValueStore.d.ts +0 -40
- package/dist/node/IndexedDbKeyValueStore.d.ts.map +0 -1
- package/dist/node/ObjectStore.d.ts +0 -17
- package/dist/node/ObjectStore.d.ts.map +0 -1
- package/dist/node/checkDbNeedsUpgrade.d.ts +0 -11
- package/dist/node/checkDbNeedsUpgrade.d.ts.map +0 -1
- package/dist/node/checkStoreNeedsUpgrade.d.ts +0 -13
- package/dist/node/checkStoreNeedsUpgrade.d.ts.map +0 -1
- package/dist/node/createStoreDuringUpgrade.d.ts +0 -12
- package/dist/node/createStoreDuringUpgrade.d.ts.map +0 -1
- package/dist/node/dbMutex.d.ts +0 -14
- package/dist/node/dbMutex.d.ts.map +0 -1
- package/dist/node/getExistingIndexes.d.ts +0 -12
- package/dist/node/getExistingIndexes.d.ts.map +0 -1
- package/dist/node/withDb.d.ts +0 -16
- package/dist/node/withDb.d.ts.map +0 -1
- package/dist/node/withDbByVersion.d.ts +0 -17
- package/dist/node/withDbByVersion.d.ts.map +0 -1
- package/dist/node/withReadOnlyStore.d.ts +0 -14
- package/dist/node/withReadOnlyStore.d.ts.map +0 -1
- package/dist/node/withReadWriteStore.d.ts +0 -14
- package/dist/node/withReadWriteStore.d.ts.map +0 -1
- package/dist/node/withStore.d.ts +0 -18
- package/dist/node/withStore.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,866 +1,3 @@
|
|
|
1
|
-
[![logo][]](https://xylabs.com)
|
|
2
|
-
|
|
3
1
|
# @xylabs/indexed-db
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
[![license][license-badge]][license-link]
|
|
7
|
-
|
|
8
|
-
> Base functionality used throughout XY Labs TypeScript/JavaScript libraries
|
|
9
|
-
|
|
10
|
-
## Install
|
|
11
|
-
|
|
12
|
-
Using npm:
|
|
13
|
-
|
|
14
|
-
```sh
|
|
15
|
-
npm install {{name}}
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Using yarn:
|
|
19
|
-
|
|
20
|
-
```sh
|
|
21
|
-
yarn add {{name}}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Using pnpm:
|
|
25
|
-
|
|
26
|
-
```sh
|
|
27
|
-
pnpm add {{name}}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Using bun:
|
|
31
|
-
|
|
32
|
-
```sh
|
|
33
|
-
bun add {{name}}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
## License
|
|
38
|
-
|
|
39
|
-
See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
|
|
40
|
-
|
|
41
|
-
## Reference
|
|
42
|
-
|
|
43
|
-
### packages
|
|
44
|
-
|
|
45
|
-
### indexed-db
|
|
46
|
-
|
|
47
|
-
### .temp-typedoc
|
|
48
|
-
|
|
49
|
-
### classes
|
|
50
|
-
|
|
51
|
-
### <a id="IndexedDbKeyValueStore"></a>IndexedDbKeyValueStore
|
|
52
|
-
|
|
53
|
-
[**@xylabs/indexed-db**](#../README)
|
|
54
|
-
|
|
55
|
-
***
|
|
56
|
-
|
|
57
|
-
An IndexedDB key/value store.
|
|
58
|
-
|
|
59
|
-
## Type Parameters
|
|
60
|
-
|
|
61
|
-
### T
|
|
62
|
-
|
|
63
|
-
`T` *extends* `DBSchema`
|
|
64
|
-
|
|
65
|
-
### S
|
|
66
|
-
|
|
67
|
-
`S` *extends* `StoreNames`\<`T`\>
|
|
68
|
-
|
|
69
|
-
## Implements
|
|
70
|
-
|
|
71
|
-
- `KeyValueStore`\<`StoreValue`\<`T`, `S`\>, `StoreKey`\<`T`, `S`\>\>
|
|
72
|
-
|
|
73
|
-
## Constructors
|
|
74
|
-
|
|
75
|
-
### Constructor
|
|
76
|
-
|
|
77
|
-
```ts
|
|
78
|
-
new IndexedDbKeyValueStore<T, S>(dbName, storeName): IndexedDbKeyValueStore<T, S>;
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Parameters
|
|
82
|
-
|
|
83
|
-
#### dbName
|
|
84
|
-
|
|
85
|
-
`string`
|
|
86
|
-
|
|
87
|
-
#### storeName
|
|
88
|
-
|
|
89
|
-
`S`
|
|
90
|
-
|
|
91
|
-
### Returns
|
|
92
|
-
|
|
93
|
-
`IndexedDbKeyValueStore`\<`T`, `S`\>
|
|
94
|
-
|
|
95
|
-
## Properties
|
|
96
|
-
|
|
97
|
-
### dbName
|
|
98
|
-
|
|
99
|
-
```ts
|
|
100
|
-
readonly dbName: string;
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
The name of the IndexedDB database.
|
|
104
|
-
|
|
105
|
-
***
|
|
106
|
-
|
|
107
|
-
### storeName
|
|
108
|
-
|
|
109
|
-
```ts
|
|
110
|
-
readonly storeName: S;
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
The name of the object store within the database.
|
|
114
|
-
|
|
115
|
-
## Methods
|
|
116
|
-
|
|
117
|
-
### clear()?
|
|
118
|
-
|
|
119
|
-
```ts
|
|
120
|
-
optional clear(): Promise<void>;
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
Removes all entries from the store.
|
|
124
|
-
|
|
125
|
-
### Returns
|
|
126
|
-
|
|
127
|
-
`Promise`\<`void`\>
|
|
128
|
-
|
|
129
|
-
### Implementation of
|
|
130
|
-
|
|
131
|
-
```ts
|
|
132
|
-
KeyValueStore.clear
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
***
|
|
136
|
-
|
|
137
|
-
### delete()
|
|
138
|
-
|
|
139
|
-
```ts
|
|
140
|
-
delete(key): Promise<void>;
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
Deletes the entry with the given key.
|
|
144
|
-
|
|
145
|
-
### Parameters
|
|
146
|
-
|
|
147
|
-
#### key
|
|
148
|
-
|
|
149
|
-
`StoreKey`\<`T`, `S`\>
|
|
150
|
-
|
|
151
|
-
The key of the entry to delete
|
|
152
|
-
|
|
153
|
-
### Returns
|
|
154
|
-
|
|
155
|
-
`Promise`\<`void`\>
|
|
156
|
-
|
|
157
|
-
### Implementation of
|
|
158
|
-
|
|
159
|
-
```ts
|
|
160
|
-
KeyValueStore.delete
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
***
|
|
164
|
-
|
|
165
|
-
### get()
|
|
166
|
-
|
|
167
|
-
```ts
|
|
168
|
-
get(key): Promise<StoreValue<T, S> | undefined>;
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Retrieves the value associated with the given key.
|
|
172
|
-
|
|
173
|
-
### Parameters
|
|
174
|
-
|
|
175
|
-
#### key
|
|
176
|
-
|
|
177
|
-
`StoreKey`\<`T`, `S`\>
|
|
178
|
-
|
|
179
|
-
The key to look up
|
|
180
|
-
|
|
181
|
-
### Returns
|
|
182
|
-
|
|
183
|
-
`Promise`\<`StoreValue`\<`T`, `S`\> \| `undefined`\>
|
|
184
|
-
|
|
185
|
-
The value, or undefined if not found
|
|
186
|
-
|
|
187
|
-
### Implementation of
|
|
188
|
-
|
|
189
|
-
```ts
|
|
190
|
-
KeyValueStore.get
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
***
|
|
194
|
-
|
|
195
|
-
### keys()?
|
|
196
|
-
|
|
197
|
-
```ts
|
|
198
|
-
optional keys(): Promise<StoreKey<T, S>[]>;
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
Returns all keys in the store.
|
|
202
|
-
|
|
203
|
-
### Returns
|
|
204
|
-
|
|
205
|
-
`Promise`\<`StoreKey`\<`T`, `S`\>[]\>
|
|
206
|
-
|
|
207
|
-
### Implementation of
|
|
208
|
-
|
|
209
|
-
```ts
|
|
210
|
-
KeyValueStore.keys
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
***
|
|
214
|
-
|
|
215
|
-
### set()
|
|
216
|
-
|
|
217
|
-
```ts
|
|
218
|
-
set(key, value): Promise<void>;
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
Sets a value for the given key, creating or updating the entry.
|
|
222
|
-
|
|
223
|
-
### Parameters
|
|
224
|
-
|
|
225
|
-
#### key
|
|
226
|
-
|
|
227
|
-
`StoreKey`\<`T`, `S`\>
|
|
228
|
-
|
|
229
|
-
The key to set
|
|
230
|
-
|
|
231
|
-
#### value
|
|
232
|
-
|
|
233
|
-
`StoreValue`\<`T`, `S`\>
|
|
234
|
-
|
|
235
|
-
The value to store
|
|
236
|
-
|
|
237
|
-
### Returns
|
|
238
|
-
|
|
239
|
-
`Promise`\<`void`\>
|
|
240
|
-
|
|
241
|
-
### Implementation of
|
|
242
|
-
|
|
243
|
-
```ts
|
|
244
|
-
KeyValueStore.set
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
***
|
|
248
|
-
|
|
249
|
-
### withDb()
|
|
250
|
-
|
|
251
|
-
```ts
|
|
252
|
-
withDb<R>(callback): Promise<R>;
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
Opens the underlying IndexedDB database and passes it to the callback.
|
|
256
|
-
|
|
257
|
-
### Type Parameters
|
|
258
|
-
|
|
259
|
-
#### R
|
|
260
|
-
|
|
261
|
-
`R` = `StoreValue`\<`T`, `S`\>
|
|
262
|
-
|
|
263
|
-
### Parameters
|
|
264
|
-
|
|
265
|
-
#### callback
|
|
266
|
-
|
|
267
|
-
(`db`) => `R` \| `Promise`\<`R`\>
|
|
268
|
-
|
|
269
|
-
Function to execute with the database
|
|
270
|
-
|
|
271
|
-
### Returns
|
|
272
|
-
|
|
273
|
-
`Promise`\<`R`\>
|
|
274
|
-
|
|
275
|
-
The result of the callback
|
|
276
|
-
|
|
277
|
-
### functions
|
|
278
|
-
|
|
279
|
-
### <a id="buildStandardIndexName"></a>buildStandardIndexName
|
|
280
|
-
|
|
281
|
-
[**@xylabs/indexed-db**](#../README)
|
|
282
|
-
|
|
283
|
-
***
|
|
284
|
-
|
|
285
|
-
```ts
|
|
286
|
-
function buildStandardIndexName(index): string;
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
Given an index description, this will build the index
|
|
290
|
-
name in standard form
|
|
291
|
-
|
|
292
|
-
## Parameters
|
|
293
|
-
|
|
294
|
-
### index
|
|
295
|
-
|
|
296
|
-
[`IndexDescription`](#../interfaces/IndexDescription)
|
|
297
|
-
|
|
298
|
-
The index description
|
|
299
|
-
|
|
300
|
-
## Returns
|
|
301
|
-
|
|
302
|
-
`string`
|
|
303
|
-
|
|
304
|
-
The index name in standard form
|
|
305
|
-
|
|
306
|
-
### <a id="checkDbNeedsUpgrade"></a>checkDbNeedsUpgrade
|
|
307
|
-
|
|
308
|
-
[**@xylabs/indexed-db**](#../README)
|
|
309
|
-
|
|
310
|
-
***
|
|
311
|
-
|
|
312
|
-
```ts
|
|
313
|
-
function checkDbNeedsUpgrade(
|
|
314
|
-
dbName,
|
|
315
|
-
stores,
|
|
316
|
-
logger?): Promise<number>;
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
Checks whether any store in the database needs an upgrade and returns the appropriate version number.
|
|
320
|
-
|
|
321
|
-
## Parameters
|
|
322
|
-
|
|
323
|
-
### dbName
|
|
324
|
-
|
|
325
|
-
`string`
|
|
326
|
-
|
|
327
|
-
The name of the database to check
|
|
328
|
-
|
|
329
|
-
### stores
|
|
330
|
-
|
|
331
|
-
`Record`\<`string`, [`IndexDescription`][#../interfaces/IndexDescription]()\>
|
|
332
|
-
|
|
333
|
-
Map of store names to their expected index descriptions
|
|
334
|
-
|
|
335
|
-
### logger?
|
|
336
|
-
|
|
337
|
-
`Logger`
|
|
338
|
-
|
|
339
|
-
Optional logger for diagnostics
|
|
340
|
-
|
|
341
|
-
## Returns
|
|
342
|
-
|
|
343
|
-
`Promise`\<`number`\>
|
|
344
|
-
|
|
345
|
-
The version to open (current version + 1 if upgrade needed, otherwise current version)
|
|
346
|
-
|
|
347
|
-
### <a id="createStoreDuringUpgrade"></a>createStoreDuringUpgrade
|
|
348
|
-
|
|
349
|
-
[**@xylabs/indexed-db**](#../README)
|
|
350
|
-
|
|
351
|
-
***
|
|
352
|
-
|
|
353
|
-
```ts
|
|
354
|
-
function createStoreDuringUpgrade<DBTypes>(
|
|
355
|
-
db,
|
|
356
|
-
storeName,
|
|
357
|
-
indexes,
|
|
358
|
-
logger?): void;
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
Creates an object store with the specified indexes during a version upgrade transaction.
|
|
362
|
-
|
|
363
|
-
## Type Parameters
|
|
364
|
-
|
|
365
|
-
### DBTypes
|
|
366
|
-
|
|
367
|
-
`DBTypes` *extends* `unknown` = `unknown`
|
|
368
|
-
|
|
369
|
-
## Parameters
|
|
370
|
-
|
|
371
|
-
### db
|
|
372
|
-
|
|
373
|
-
`IDBPDatabase`\<`DBTypes`\>
|
|
374
|
-
|
|
375
|
-
The IndexedDB database instance (during upgrade)
|
|
376
|
-
|
|
377
|
-
### storeName
|
|
378
|
-
|
|
379
|
-
`StoreNames`\<`DBTypes`\>
|
|
380
|
-
|
|
381
|
-
The name of the store to create
|
|
382
|
-
|
|
383
|
-
### indexes
|
|
384
|
-
|
|
385
|
-
[`IndexDescription`][#../interfaces/IndexDescription]()
|
|
386
|
-
|
|
387
|
-
The index descriptions to create on the store
|
|
388
|
-
|
|
389
|
-
### logger?
|
|
390
|
-
|
|
391
|
-
`Logger`
|
|
392
|
-
|
|
393
|
-
Optional logger for diagnostics
|
|
394
|
-
|
|
395
|
-
## Returns
|
|
396
|
-
|
|
397
|
-
`void`
|
|
398
|
-
|
|
399
|
-
### <a id="getExistingIndexes"></a>getExistingIndexes
|
|
400
|
-
|
|
401
|
-
[**@xylabs/indexed-db**](#../README)
|
|
402
|
-
|
|
403
|
-
***
|
|
404
|
-
|
|
405
|
-
```ts
|
|
406
|
-
function getExistingIndexes<T>(
|
|
407
|
-
db,
|
|
408
|
-
storeName,
|
|
409
|
-
logger?): Promise<IndexDescription[] | null>;
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
Retrieves the existing index descriptions for a store. Accepts either a database instance or a database name.
|
|
413
|
-
|
|
414
|
-
## Type Parameters
|
|
415
|
-
|
|
416
|
-
### T
|
|
417
|
-
|
|
418
|
-
`T` *extends* `object` = `object`
|
|
419
|
-
|
|
420
|
-
## Parameters
|
|
421
|
-
|
|
422
|
-
### db
|
|
423
|
-
|
|
424
|
-
\| `string`
|
|
425
|
-
\| `IDBPDatabase`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
426
|
-
|
|
427
|
-
The IndexedDB database instance or database name
|
|
428
|
-
|
|
429
|
-
### storeName
|
|
430
|
-
|
|
431
|
-
`StoreNames`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
432
|
-
|
|
433
|
-
The name of the store to inspect
|
|
434
|
-
|
|
435
|
-
### logger?
|
|
436
|
-
|
|
437
|
-
`Logger`
|
|
438
|
-
|
|
439
|
-
Optional logger for diagnostics
|
|
440
|
-
|
|
441
|
-
## Returns
|
|
442
|
-
|
|
443
|
-
`Promise`\<[`IndexDescription`][#../interfaces/IndexDescription]() \| `null`\>
|
|
444
|
-
|
|
445
|
-
An array of index descriptions, or null if the store does not exist
|
|
446
|
-
|
|
447
|
-
### <a id="withDb"></a>withDb
|
|
448
|
-
|
|
449
|
-
[**@xylabs/indexed-db**](#../README)
|
|
450
|
-
|
|
451
|
-
***
|
|
452
|
-
|
|
453
|
-
```ts
|
|
454
|
-
function withDb<DBTypes, R>(
|
|
455
|
-
dbName,
|
|
456
|
-
callback,
|
|
457
|
-
expectedIndexes?,
|
|
458
|
-
logger?,
|
|
459
|
-
lock?): Promise<R>;
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
Opens an IndexedDB database, automatically upgrading if needed, and passes it to the callback.
|
|
463
|
-
Uses a mutex to serialize access to the same database by default.
|
|
464
|
-
|
|
465
|
-
## Type Parameters
|
|
466
|
-
|
|
467
|
-
### DBTypes
|
|
468
|
-
|
|
469
|
-
`DBTypes` *extends* `unknown` = `unknown`
|
|
470
|
-
|
|
471
|
-
### R
|
|
472
|
-
|
|
473
|
-
`R` = `object`
|
|
474
|
-
|
|
475
|
-
## Parameters
|
|
476
|
-
|
|
477
|
-
### dbName
|
|
478
|
-
|
|
479
|
-
`string`
|
|
480
|
-
|
|
481
|
-
The name of the database to open
|
|
482
|
-
|
|
483
|
-
### callback
|
|
484
|
-
|
|
485
|
-
(`db`) => `R` \| `Promise`\<`R`\>
|
|
486
|
-
|
|
487
|
-
Function to execute with the opened database
|
|
488
|
-
|
|
489
|
-
### expectedIndexes?
|
|
490
|
-
|
|
491
|
-
`Record`\<`string`, [`IndexDescription`][#../interfaces/IndexDescription]()\>
|
|
492
|
-
|
|
493
|
-
Optional map of store names to their expected indexes (triggers upgrade check)
|
|
494
|
-
|
|
495
|
-
### logger?
|
|
496
|
-
|
|
497
|
-
`Logger`
|
|
498
|
-
|
|
499
|
-
Optional logger for diagnostics
|
|
500
|
-
|
|
501
|
-
### lock?
|
|
502
|
-
|
|
503
|
-
`boolean` = `true`
|
|
504
|
-
|
|
505
|
-
Whether to use a mutex to serialize access (defaults to true)
|
|
506
|
-
|
|
507
|
-
## Returns
|
|
508
|
-
|
|
509
|
-
`Promise`\<`R`\>
|
|
510
|
-
|
|
511
|
-
The result of the callback
|
|
512
|
-
|
|
513
|
-
### <a id="withDbByVersion"></a>withDbByVersion
|
|
514
|
-
|
|
515
|
-
[**@xylabs/indexed-db**](#../README)
|
|
516
|
-
|
|
517
|
-
***
|
|
518
|
-
|
|
519
|
-
```ts
|
|
520
|
-
function withDbByVersion<DBTypes, R>(
|
|
521
|
-
dbName,
|
|
522
|
-
callback,
|
|
523
|
-
version?,
|
|
524
|
-
expectedIndexes?,
|
|
525
|
-
logger?,
|
|
526
|
-
lock?): Promise<R>;
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
Opens an IndexedDB database at a specific version, handling upgrade events, and passes it to the callback.
|
|
530
|
-
The database is automatically closed after the callback completes.
|
|
531
|
-
|
|
532
|
-
## Type Parameters
|
|
533
|
-
|
|
534
|
-
### DBTypes
|
|
535
|
-
|
|
536
|
-
`DBTypes` *extends* `unknown` = `unknown`
|
|
537
|
-
|
|
538
|
-
### R
|
|
539
|
-
|
|
540
|
-
`R` = `object`
|
|
541
|
-
|
|
542
|
-
## Parameters
|
|
543
|
-
|
|
544
|
-
### dbName
|
|
545
|
-
|
|
546
|
-
`string`
|
|
547
|
-
|
|
548
|
-
The name of the database to open
|
|
549
|
-
|
|
550
|
-
### callback
|
|
551
|
-
|
|
552
|
-
(`db`) => `R` \| `Promise`\<`R`\>
|
|
553
|
-
|
|
554
|
-
Function to execute with the opened database
|
|
555
|
-
|
|
556
|
-
### version?
|
|
557
|
-
|
|
558
|
-
`number`
|
|
559
|
-
|
|
560
|
-
Optional specific version to open (undefined for latest)
|
|
561
|
-
|
|
562
|
-
### expectedIndexes?
|
|
563
|
-
|
|
564
|
-
`Record`\<`string`, [`IndexDescription`][#../interfaces/IndexDescription]()\>
|
|
565
|
-
|
|
566
|
-
Optional map of store names to indexes to create during upgrade
|
|
567
|
-
|
|
568
|
-
### logger?
|
|
569
|
-
|
|
570
|
-
`Logger`
|
|
571
|
-
|
|
572
|
-
Optional logger for diagnostics
|
|
573
|
-
|
|
574
|
-
### lock?
|
|
575
|
-
|
|
576
|
-
`boolean` = `true`
|
|
577
|
-
|
|
578
|
-
Whether to use a mutex to serialize access (defaults to true)
|
|
579
|
-
|
|
580
|
-
## Returns
|
|
581
|
-
|
|
582
|
-
`Promise`\<`R`\>
|
|
583
|
-
|
|
584
|
-
The result of the callback
|
|
585
|
-
|
|
586
|
-
### <a id="withReadOnlyStore"></a>withReadOnlyStore
|
|
587
|
-
|
|
588
|
-
[**@xylabs/indexed-db**](#../README)
|
|
589
|
-
|
|
590
|
-
***
|
|
591
|
-
|
|
592
|
-
```ts
|
|
593
|
-
function withReadOnlyStore<T, R>(
|
|
594
|
-
db,
|
|
595
|
-
storeName,
|
|
596
|
-
callback,
|
|
597
|
-
logger?): Promise<R>;
|
|
598
|
-
```
|
|
599
|
-
|
|
600
|
-
Opens a read-only transaction on the specified store and passes it to the callback.
|
|
601
|
-
|
|
602
|
-
## Type Parameters
|
|
603
|
-
|
|
604
|
-
### T
|
|
605
|
-
|
|
606
|
-
`T` *extends* `object` = `object`
|
|
607
|
-
|
|
608
|
-
### R
|
|
609
|
-
|
|
610
|
-
`R` = `T`
|
|
611
|
-
|
|
612
|
-
## Parameters
|
|
613
|
-
|
|
614
|
-
### db
|
|
615
|
-
|
|
616
|
-
`IDBPDatabase`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
617
|
-
|
|
618
|
-
The IndexedDB database instance
|
|
619
|
-
|
|
620
|
-
### storeName
|
|
621
|
-
|
|
622
|
-
`StoreNames`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
623
|
-
|
|
624
|
-
The name of the object store to open
|
|
625
|
-
|
|
626
|
-
### callback
|
|
627
|
-
|
|
628
|
-
(`store`) => `R` \| `Promise`\<`R`\>
|
|
629
|
-
|
|
630
|
-
Function to execute with the read-only store
|
|
631
|
-
|
|
632
|
-
### logger?
|
|
633
|
-
|
|
634
|
-
`Logger`
|
|
635
|
-
|
|
636
|
-
Optional logger for diagnostics
|
|
637
|
-
|
|
638
|
-
## Returns
|
|
639
|
-
|
|
640
|
-
`Promise`\<`R`\>
|
|
641
|
-
|
|
642
|
-
The result of the callback
|
|
643
|
-
|
|
644
|
-
### <a id="withReadWriteStore"></a>withReadWriteStore
|
|
645
|
-
|
|
646
|
-
[**@xylabs/indexed-db**](#../README)
|
|
647
|
-
|
|
648
|
-
***
|
|
649
|
-
|
|
650
|
-
```ts
|
|
651
|
-
function withReadWriteStore<T, R>(
|
|
652
|
-
db,
|
|
653
|
-
storeName,
|
|
654
|
-
callback,
|
|
655
|
-
logger?): Promise<R>;
|
|
656
|
-
```
|
|
657
|
-
|
|
658
|
-
Opens a read-write transaction on the specified store and passes it to the callback.
|
|
659
|
-
|
|
660
|
-
## Type Parameters
|
|
661
|
-
|
|
662
|
-
### T
|
|
663
|
-
|
|
664
|
-
`T` *extends* `object` = `object`
|
|
665
|
-
|
|
666
|
-
### R
|
|
667
|
-
|
|
668
|
-
`R` = `T`
|
|
669
|
-
|
|
670
|
-
## Parameters
|
|
671
|
-
|
|
672
|
-
### db
|
|
673
|
-
|
|
674
|
-
`IDBPDatabase`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
675
|
-
|
|
676
|
-
The IndexedDB database instance
|
|
677
|
-
|
|
678
|
-
### storeName
|
|
679
|
-
|
|
680
|
-
`StoreNames`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
681
|
-
|
|
682
|
-
The name of the object store to open
|
|
683
|
-
|
|
684
|
-
### callback
|
|
685
|
-
|
|
686
|
-
(`store`) => `R` \| `Promise`\<`R`\>
|
|
687
|
-
|
|
688
|
-
Function to execute with the read-write store
|
|
689
|
-
|
|
690
|
-
### logger?
|
|
691
|
-
|
|
692
|
-
`Logger`
|
|
693
|
-
|
|
694
|
-
Optional logger for diagnostics
|
|
695
|
-
|
|
696
|
-
## Returns
|
|
697
|
-
|
|
698
|
-
`Promise`\<`R`\>
|
|
699
|
-
|
|
700
|
-
The result of the callback
|
|
701
|
-
|
|
702
|
-
### <a id="withStore"></a>withStore
|
|
703
|
-
|
|
704
|
-
[**@xylabs/indexed-db**](#../README)
|
|
705
|
-
|
|
706
|
-
***
|
|
707
|
-
|
|
708
|
-
```ts
|
|
709
|
-
function withStore<T, R, M>(
|
|
710
|
-
db,
|
|
711
|
-
storeName,
|
|
712
|
-
callback,
|
|
713
|
-
mode,
|
|
714
|
-
logger?): Promise<R>;
|
|
715
|
-
```
|
|
716
|
-
|
|
717
|
-
Opens a transaction on the specified store with the given mode and passes the store to the callback.
|
|
718
|
-
If the store does not exist, the callback receives null.
|
|
719
|
-
|
|
720
|
-
## Type Parameters
|
|
721
|
-
|
|
722
|
-
### T
|
|
723
|
-
|
|
724
|
-
`T` *extends* `object` = `object`
|
|
725
|
-
|
|
726
|
-
### R
|
|
727
|
-
|
|
728
|
-
`R` = `T`
|
|
729
|
-
|
|
730
|
-
### M
|
|
731
|
-
|
|
732
|
-
`M` *extends* `"readonly"` \| `"readwrite"` = `"readonly"`
|
|
733
|
-
|
|
734
|
-
## Parameters
|
|
735
|
-
|
|
736
|
-
### db
|
|
737
|
-
|
|
738
|
-
`IDBPDatabase`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
739
|
-
|
|
740
|
-
The IndexedDB database instance
|
|
741
|
-
|
|
742
|
-
### storeName
|
|
743
|
-
|
|
744
|
-
`StoreNames`\<[`ObjectStore`](#../type-aliases/ObjectStore)\<`T`\>\>
|
|
745
|
-
|
|
746
|
-
The name of the object store to open
|
|
747
|
-
|
|
748
|
-
### callback
|
|
749
|
-
|
|
750
|
-
(`store`) => `R` \| `Promise`\<`R`\>
|
|
751
|
-
|
|
752
|
-
Function to execute with the store (or null if it doesn't exist)
|
|
753
|
-
|
|
754
|
-
### mode
|
|
755
|
-
|
|
756
|
-
`M`
|
|
757
|
-
|
|
758
|
-
The transaction mode ('readonly' or 'readwrite')
|
|
759
|
-
|
|
760
|
-
### logger?
|
|
761
|
-
|
|
762
|
-
`Logger`
|
|
763
|
-
|
|
764
|
-
Optional logger for diagnostics
|
|
765
|
-
|
|
766
|
-
## Returns
|
|
767
|
-
|
|
768
|
-
`Promise`\<`R`\>
|
|
769
|
-
|
|
770
|
-
The result of the callback
|
|
771
|
-
|
|
772
|
-
### interfaces
|
|
773
|
-
|
|
774
|
-
### <a id="IndexDescription"></a>IndexDescription
|
|
775
|
-
|
|
776
|
-
[**@xylabs/indexed-db**](#../README)
|
|
777
|
-
|
|
778
|
-
***
|
|
779
|
-
|
|
780
|
-
Description of index(es) to be created on a store
|
|
781
|
-
|
|
782
|
-
## Properties
|
|
783
|
-
|
|
784
|
-
### key
|
|
785
|
-
|
|
786
|
-
```ts
|
|
787
|
-
key: Record<string, IndexDirection>;
|
|
788
|
-
```
|
|
789
|
-
|
|
790
|
-
The key(s) to index
|
|
791
|
-
|
|
792
|
-
***
|
|
793
|
-
|
|
794
|
-
### multiEntry?
|
|
795
|
-
|
|
796
|
-
```ts
|
|
797
|
-
optional multiEntry?: boolean;
|
|
798
|
-
```
|
|
799
|
-
|
|
800
|
-
Is the indexed value an array
|
|
801
|
-
|
|
802
|
-
***
|
|
803
|
-
|
|
804
|
-
### unique?
|
|
805
|
-
|
|
806
|
-
```ts
|
|
807
|
-
optional unique?: boolean;
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
If true, the index must enforce uniqueness on the key
|
|
811
|
-
|
|
812
|
-
### type-aliases
|
|
813
|
-
|
|
814
|
-
### <a id="IndexDirection"></a>IndexDirection
|
|
815
|
-
|
|
816
|
-
[**@xylabs/indexed-db**](#../README)
|
|
817
|
-
|
|
818
|
-
***
|
|
819
|
-
|
|
820
|
-
```ts
|
|
821
|
-
type IndexDirection = -1 | 1;
|
|
822
|
-
```
|
|
823
|
-
|
|
824
|
-
The index direction (1 for ascending, -1 for descending)
|
|
825
|
-
|
|
826
|
-
### <a id="ObjectStore"></a>ObjectStore
|
|
827
|
-
|
|
828
|
-
[**@xylabs/indexed-db**](#../README)
|
|
829
|
-
|
|
830
|
-
***
|
|
831
|
-
|
|
832
|
-
```ts
|
|
833
|
-
type ObjectStore<T> = Record<string, T>;
|
|
834
|
-
```
|
|
835
|
-
|
|
836
|
-
Generic IndexedDB schema type that maps store names to their value types.
|
|
837
|
-
|
|
838
|
-
## Type Parameters
|
|
839
|
-
|
|
840
|
-
### T
|
|
841
|
-
|
|
842
|
-
`T` *extends* `EmptyObject` = `EmptyObject`
|
|
843
|
-
|
|
844
|
-
### variables
|
|
845
|
-
|
|
846
|
-
### <a id="IndexSeparator"></a>IndexSeparator
|
|
847
|
-
|
|
848
|
-
[**@xylabs/indexed-db**](#../README)
|
|
849
|
-
|
|
850
|
-
***
|
|
851
|
-
|
|
852
|
-
```ts
|
|
853
|
-
const IndexSeparator: "-" = '-';
|
|
854
|
-
```
|
|
855
|
-
|
|
856
|
-
Separator used between key names when building standard index names.
|
|
857
|
-
|
|
858
|
-
## Credits
|
|
859
|
-
|
|
860
|
-
[Made with 🔥 and ❄️ by XY Labs](https://xylabs.com)
|
|
861
|
-
|
|
862
|
-
[npm-badge]: https://img.shields.io/npm/v/@xylabs/indexed-db.svg
|
|
863
|
-
[npm-link]: https://www.npmjs.com/package/@xylabs/indexed-db
|
|
864
|
-
[license-badge]: https://img.shields.io/npm/l/@xylabs/indexed-db.svg
|
|
865
|
-
[license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
|
|
866
|
-
[logo]: https://cdn.xy.company/img/brand/XYPersistentCompany_Logo_Icon_Colored.svg
|
|
3
|
+
DEPRECATED — use `@ariestools/indexed-db` instead.
|