@@ -11,6 +11,45 @@ package org.scalajs.dom.raw
11
11
12
12
import scala .scalajs .js
13
13
import scala .scalajs .js .annotation ._
14
+ import scala .scalajs .js .|
15
+
16
+ /**
17
+ * IndexedDB transaction mode
18
+ * Provides constants for IDB Transaction modes
19
+ * These constants have been removed from browser support
20
+ * and replaced by String values
21
+ */
22
+ @ js.native
23
+ sealed trait IDBTransactionMode extends js.Any
24
+
25
+ object IDBTransactionMode {
26
+
27
+ /**
28
+ * Allows data to be read but not changed.
29
+ * It is the default transaction mode.
30
+ *
31
+ * MDN
32
+ */
33
+ val READ_ONLY = " readonly" .asInstanceOf [IDBTransactionMode ]
34
+
35
+ /**
36
+ * Allows any operation to be performed, including ones that delete and create object
37
+ * stores and indexes. This mode is for updating the version number of transactions
38
+ * that were started using the setVersion() method of IDBDatabase objects.
39
+ * Transactions of this mode cannot run concurrently with other transactions.
40
+ *
41
+ * MDN
42
+ */
43
+ val VERSION_CHANGE = " versionchange" .asInstanceOf [IDBTransactionMode ]
44
+
45
+ /**
46
+ * Allows reading and writing of data in existing data stores to be changed.
47
+ *
48
+ * MDN
49
+ */
50
+ val READ_WRITE = " readwrite" .asInstanceOf [IDBTransactionMode ]
51
+
52
+ }
14
53
15
54
/**
16
55
* The IDBObjectStore interface of the IndexedDB API represents an object store in
@@ -86,8 +125,25 @@ class IDBObjectStore extends js.Object {
86
125
*/
87
126
def put (value : js.Any , key : js.Any = js.native): IDBRequest = js.native
88
127
89
- def openCursor (range : js.Any = js.native,
90
- direction : String = js.native): IDBRequest = js.native
128
+ /**
129
+ * The method sets the position of the cursor to the appropriate record,
130
+ * based on the specified direction.
131
+ *
132
+ * MDN
133
+ */
134
+ def openCursor (range : js.UndefOr [IDBKeyRange | js.Any ] = js.undefined,
135
+ direction : js.UndefOr [
136
+ IDBCursorDirection ] = js.undefined): IDBRequest = js.native
137
+
138
+ /**
139
+ * The method sets the position of the cursor to the appropriate key,
140
+ * based on the specified direction.
141
+ *
142
+ * MDN
143
+ */
144
+ def openKeyCursor (range : js.UndefOr [IDBKeyRange | js.Any ] = js.undefined,
145
+ direction : js.UndefOr [
146
+ IDBCursorDirection ] = js.undefined): IDBRequest = js.native
91
147
92
148
/**
93
149
* Note that this method must be called only from a VersionChange transaction mode
@@ -113,6 +169,32 @@ class IDBObjectStore extends js.Object {
113
169
*/
114
170
def get (key : js.Any ): IDBRequest = js.native
115
171
172
+ /**
173
+ * If a value is successfully found, then a structured clone of it is created and set as
174
+ * the result of the request object.
175
+ *
176
+ * MDN
177
+ */
178
+ def getAll (query : js.UndefOr [IDBKeyRange | js.Any ] = js.undefined,
179
+ count : js.UndefOr [Int ] = js.undefined): IDBRequest = js.native
180
+
181
+ /**
182
+ * If a value is successfully found, then a structured clone of it is created and set as
183
+ * the result of the request object.
184
+ *
185
+ * MDN
186
+ */
187
+ def getAllKeys (query : js.UndefOr [IDBKeyRange | js.Any ] = js.undefined,
188
+ count : js.UndefOr [Int ] = js.undefined): IDBRequest = js.native
189
+
190
+ /**
191
+ * If a value is successfully found, then a structured clone of it is created and set as
192
+ * the result of the request object.
193
+ *
194
+ * MDN
195
+ */
196
+ def getKey (key : js.Any ): IDBRequest = js.native
197
+
116
198
/**
117
199
* returns an IDBRequest object, and, in a separate thread, deletes the current
118
200
* object store.
@@ -230,7 +312,7 @@ class IDBIndex extends js.Object {
230
312
* MDN
231
313
*/
232
314
def openKeyCursor (range : IDBKeyRange = js.native,
233
- direction : String = js.native): IDBRequest = js.native
315
+ direction : IDBCursorDirection = js.native): IDBRequest = js.native
234
316
235
317
/**
236
318
* Returns an IDBRequest object, and, in a separate thread, finds either the value in
@@ -248,7 +330,7 @@ class IDBIndex extends js.Object {
248
330
* MDN
249
331
*/
250
332
def openCursor (range : IDBKeyRange = js.native,
251
- direction : String = js.native): IDBRequest = js.native
333
+ direction : IDBCursorDirection = js.native): IDBRequest = js.native
252
334
}
253
335
254
336
/**
@@ -282,7 +364,7 @@ class IDBCursor extends js.Object {
282
364
*
283
365
* MDN
284
366
*/
285
- def direction : String = js.native
367
+ def direction : IDBCursorDirection = js.native
286
368
287
369
/**
288
370
* Returns the key for the record at the cursor's position. If the cursor is outside its
@@ -336,13 +418,45 @@ class IDBCursor extends js.Object {
336
418
}
337
419
338
420
@ js.native
339
- @ JSGlobal
340
- object IDBCursor extends js.Object {
421
+ sealed trait IDBCursorDirection extends js.Any
422
+
423
+ object IDBCursorDirection {
424
+
425
+ /**
426
+ * The cursor shows all records, including duplicates.
427
+ * It starts at the upper bound of the key range and moves downwards
428
+ * (monotonically decreasing in the order of keys).
429
+ *
430
+ * MDN
431
+ */
432
+ val PREV = " prev" .asInstanceOf [IDBCursorDirection ]
341
433
342
- val PREV : String = js.native
343
- val PREV_NO_DUPLICATE : String = js.native
344
- val NEXT : String = js.native
345
- val NEXT_NO_DUPLICATE : String = js.native
434
+ /**
435
+ * The cursor shows all records, excluding duplicates.
436
+ * If multiple records exist with the same key, only the first one iterated is retrieved.
437
+ * It starts at the upper bound of the key range and moves downwards.
438
+ *
439
+ * MDN
440
+ */
441
+ val PREV_UNIQUE = " prevunique" .asInstanceOf [IDBCursorDirection ]
442
+
443
+ /**
444
+ * The cursor shows all records, including duplicates.
445
+ * It starts at the lower bound of the key range and moves upwards
446
+ * (monotonically increasing in the order of keys).
447
+ *
448
+ * MDN
449
+ */
450
+ val NEXT = " next" .asInstanceOf [IDBCursorDirection ]
451
+
452
+ /**
453
+ * The cursor shows all records, excluding duplicates.
454
+ * If multiple records exist with the same key, only the first one iterated is retrieved.
455
+ * It starts at the lower bound of the key range and moves upwards.
456
+ *
457
+ * MDN
458
+ */
459
+ val NEXT_UNIQUE = " nextunique" .asInstanceOf [IDBCursorDirection ]
346
460
}
347
461
348
462
/**
@@ -476,7 +590,7 @@ class IDBTransaction extends EventTarget {
476
590
*
477
591
* MDN
478
592
*/
479
- def mode : String = js.native
593
+ def mode : IDBTransactionMode = js.native
480
594
481
595
/**
482
596
* Returns a DOMException indicating the type of error that occured when there is an
@@ -520,35 +634,6 @@ class IDBTransaction extends EventTarget {
520
634
def objectStore (name : String ): IDBObjectStore = js.native
521
635
}
522
636
523
- @ js.native
524
- @ JSGlobal
525
- object IDBTransaction extends js.Object {
526
-
527
- /**
528
- * Allows data to be read but not changed.
529
- *
530
- * MDN
531
- */
532
- val READ_ONLY : String = js.native
533
-
534
- /**
535
- * Allows any operation to be performed, including ones that delete and create object
536
- * stores and indexes. This mode is for updating the version number of transactions
537
- * that were started using the setVersion() method of IDBDatabase objects.
538
- * Transactions of this mode cannot run concurrently with other transactions.
539
- *
540
- * MDN
541
- */
542
- val VERSION_CHANGE : String = js.native
543
-
544
- /**
545
- * Allows reading and writing of data in existing data stores to be changed.
546
- *
547
- * MDN
548
- */
549
- val READ_WRITE : String = js.native
550
- }
551
-
552
637
/**
553
638
* The IDBDatabase interface of the IndexedDB API provides asynchronous access
554
639
* to a connection to a database. Use it to create, manipulate, and delete
@@ -643,7 +728,7 @@ class IDBDatabase extends EventTarget {
643
728
* MDN
644
729
*/
645
730
def transaction (storeNames : js.Any ,
646
- mode : String = js.native): IDBTransaction = js.native
731
+ mode : IDBTransactionMode = js.native): IDBTransaction = js.native
647
732
648
733
/**
649
734
* As with createObjectStore, this method can be called only within a versionchange
0 commit comments