@xylabs/indexed-db 7.0.8 → 8.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.
Files changed (104) hide show
  1. package/README.md +1 -864
  2. package/dist/browser/index.d.ts +1 -11
  3. package/dist/browser/index.d.ts.map +1 -1
  4. package/dist/browser/index.mjs +2 -277
  5. package/dist/browser/index.mjs.map +4 -4
  6. package/dist/browser/model.d.ts +1 -2
  7. package/dist/browser/model.d.ts.map +1 -1
  8. package/dist/browser/model.mjs +2 -0
  9. package/dist/browser/model.mjs.map +3 -3
  10. package/dist/neutral/index.d.ts +1 -11
  11. package/dist/neutral/index.d.ts.map +1 -1
  12. package/dist/neutral/index.mjs +2 -277
  13. package/dist/neutral/index.mjs.map +4 -4
  14. package/dist/neutral/model.d.ts +1 -2
  15. package/dist/neutral/model.d.ts.map +1 -1
  16. package/dist/neutral/model.mjs +2 -0
  17. package/dist/neutral/model.mjs.map +3 -3
  18. package/dist/node/index.d.ts +1 -11
  19. package/dist/node/index.d.ts.map +1 -1
  20. package/dist/node/index.mjs +2 -277
  21. package/dist/node/index.mjs.map +4 -4
  22. package/dist/node/model.d.ts +1 -2
  23. package/dist/node/model.d.ts.map +1 -1
  24. package/dist/node/model.mjs +2 -0
  25. package/dist/node/model.mjs.map +3 -3
  26. package/package.json +7 -12
  27. package/dist/browser/IndexDescription.d.ts +0 -31
  28. package/dist/browser/IndexDescription.d.ts.map +0 -1
  29. package/dist/browser/IndexedDbKeyValueStore.d.ts +0 -40
  30. package/dist/browser/IndexedDbKeyValueStore.d.ts.map +0 -1
  31. package/dist/browser/ObjectStore.d.ts +0 -17
  32. package/dist/browser/ObjectStore.d.ts.map +0 -1
  33. package/dist/browser/checkDbNeedsUpgrade.d.ts +0 -11
  34. package/dist/browser/checkDbNeedsUpgrade.d.ts.map +0 -1
  35. package/dist/browser/checkStoreNeedsUpgrade.d.ts +0 -13
  36. package/dist/browser/checkStoreNeedsUpgrade.d.ts.map +0 -1
  37. package/dist/browser/createStoreDuringUpgrade.d.ts +0 -12
  38. package/dist/browser/createStoreDuringUpgrade.d.ts.map +0 -1
  39. package/dist/browser/dbMutex.d.ts +0 -14
  40. package/dist/browser/dbMutex.d.ts.map +0 -1
  41. package/dist/browser/getExistingIndexes.d.ts +0 -12
  42. package/dist/browser/getExistingIndexes.d.ts.map +0 -1
  43. package/dist/browser/withDb.d.ts +0 -16
  44. package/dist/browser/withDb.d.ts.map +0 -1
  45. package/dist/browser/withDbByVersion.d.ts +0 -17
  46. package/dist/browser/withDbByVersion.d.ts.map +0 -1
  47. package/dist/browser/withReadOnlyStore.d.ts +0 -14
  48. package/dist/browser/withReadOnlyStore.d.ts.map +0 -1
  49. package/dist/browser/withReadWriteStore.d.ts +0 -14
  50. package/dist/browser/withReadWriteStore.d.ts.map +0 -1
  51. package/dist/browser/withStore.d.ts +0 -18
  52. package/dist/browser/withStore.d.ts.map +0 -1
  53. package/dist/neutral/IndexDescription.d.ts +0 -31
  54. package/dist/neutral/IndexDescription.d.ts.map +0 -1
  55. package/dist/neutral/IndexedDbKeyValueStore.d.ts +0 -40
  56. package/dist/neutral/IndexedDbKeyValueStore.d.ts.map +0 -1
  57. package/dist/neutral/ObjectStore.d.ts +0 -17
  58. package/dist/neutral/ObjectStore.d.ts.map +0 -1
  59. package/dist/neutral/checkDbNeedsUpgrade.d.ts +0 -11
  60. package/dist/neutral/checkDbNeedsUpgrade.d.ts.map +0 -1
  61. package/dist/neutral/checkStoreNeedsUpgrade.d.ts +0 -13
  62. package/dist/neutral/checkStoreNeedsUpgrade.d.ts.map +0 -1
  63. package/dist/neutral/createStoreDuringUpgrade.d.ts +0 -12
  64. package/dist/neutral/createStoreDuringUpgrade.d.ts.map +0 -1
  65. package/dist/neutral/dbMutex.d.ts +0 -14
  66. package/dist/neutral/dbMutex.d.ts.map +0 -1
  67. package/dist/neutral/getExistingIndexes.d.ts +0 -12
  68. package/dist/neutral/getExistingIndexes.d.ts.map +0 -1
  69. package/dist/neutral/withDb.d.ts +0 -16
  70. package/dist/neutral/withDb.d.ts.map +0 -1
  71. package/dist/neutral/withDbByVersion.d.ts +0 -17
  72. package/dist/neutral/withDbByVersion.d.ts.map +0 -1
  73. package/dist/neutral/withReadOnlyStore.d.ts +0 -14
  74. package/dist/neutral/withReadOnlyStore.d.ts.map +0 -1
  75. package/dist/neutral/withReadWriteStore.d.ts +0 -14
  76. package/dist/neutral/withReadWriteStore.d.ts.map +0 -1
  77. package/dist/neutral/withStore.d.ts +0 -18
  78. package/dist/neutral/withStore.d.ts.map +0 -1
  79. package/dist/node/IndexDescription.d.ts +0 -31
  80. package/dist/node/IndexDescription.d.ts.map +0 -1
  81. package/dist/node/IndexedDbKeyValueStore.d.ts +0 -40
  82. package/dist/node/IndexedDbKeyValueStore.d.ts.map +0 -1
  83. package/dist/node/ObjectStore.d.ts +0 -17
  84. package/dist/node/ObjectStore.d.ts.map +0 -1
  85. package/dist/node/checkDbNeedsUpgrade.d.ts +0 -11
  86. package/dist/node/checkDbNeedsUpgrade.d.ts.map +0 -1
  87. package/dist/node/checkStoreNeedsUpgrade.d.ts +0 -13
  88. package/dist/node/checkStoreNeedsUpgrade.d.ts.map +0 -1
  89. package/dist/node/createStoreDuringUpgrade.d.ts +0 -12
  90. package/dist/node/createStoreDuringUpgrade.d.ts.map +0 -1
  91. package/dist/node/dbMutex.d.ts +0 -14
  92. package/dist/node/dbMutex.d.ts.map +0 -1
  93. package/dist/node/getExistingIndexes.d.ts +0 -12
  94. package/dist/node/getExistingIndexes.d.ts.map +0 -1
  95. package/dist/node/withDb.d.ts +0 -16
  96. package/dist/node/withDb.d.ts.map +0 -1
  97. package/dist/node/withDbByVersion.d.ts +0 -17
  98. package/dist/node/withDbByVersion.d.ts.map +0 -1
  99. package/dist/node/withReadOnlyStore.d.ts +0 -14
  100. package/dist/node/withReadOnlyStore.d.ts.map +0 -1
  101. package/dist/node/withReadWriteStore.d.ts +0 -14
  102. package/dist/node/withReadWriteStore.d.ts.map +0 -1
  103. package/dist/node/withStore.d.ts +0 -18
  104. 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
- [![npm][npm-badge]][npm-link]
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.