@@ -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.
@@ -221,7 +303,7 @@ class IDBIndex extends js.Object {
221
303
* MDN
222
304
*/
223
305
def openKeyCursor (range : IDBKeyRange = js.native,
224
- direction : String = js.native): IDBRequest = js.native
306
+ direction : IDBCursorDirection = js.native): IDBRequest = js.native
225
307
226
308
/**
227
309
* Returns an IDBRequest object, and, in a separate thread, finds either the value in
@@ -239,7 +321,7 @@ class IDBIndex extends js.Object {
239
321
* MDN
240
322
*/
241
323
def openCursor (range : IDBKeyRange = js.native,
242
- direction : String = js.native): IDBRequest = js.native
324
+ direction : IDBCursorDirection = js.native): IDBRequest = js.native
243
325
}
244
326
245
327
/**
@@ -273,7 +355,7 @@ class IDBCursor extends js.Object {
273
355
*
274
356
* MDN
275
357
*/
276
- def direction : String = js.native
358
+ def direction : IDBCursorDirection = js.native
277
359
278
360
/**
279
361
* Returns the key for the record at the cursor's position. If the cursor is outside its
@@ -327,13 +409,45 @@ class IDBCursor extends js.Object {
327
409
}
328
410
329
411
@ js.native
330
- @ JSGlobal
331
- object IDBCursor extends js.Object {
412
+ sealed trait IDBCursorDirection extends js.Any
413
+
414
+ object IDBCursorDirection {
415
+
416
+ /**
417
+ * The cursor shows all records, including duplicates.
418
+ * It starts at the upper bound of the key range and moves downwards
419
+ * (monotonically decreasing in the order of keys).
420
+ *
421
+ * MDN
422
+ */
423
+ val PREV = " prev" .asInstanceOf [IDBCursorDirection ]
332
424
333
- val PREV : String = js.native
334
- val PREV_NO_DUPLICATE : String = js.native
335
- val NEXT : String = js.native
336
- val NEXT_NO_DUPLICATE : String = js.native
425
+ /**
426
+ * The cursor shows all records, excluding duplicates.
427
+ * If multiple records exist with the same key, only the first one iterated is retrieved.
428
+ * It starts at the upper bound of the key range and moves downwards.
429
+ *
430
+ * MDN
431
+ */
432
+ val PREV_UNIQUE = " prevunique" .asInstanceOf [IDBCursorDirection ]
433
+
434
+ /**
435
+ * The cursor shows all records, including duplicates.
436
+ * It starts at the lower bound of the key range and moves upwards
437
+ * (monotonically increasing in the order of keys).
438
+ *
439
+ * MDN
440
+ */
441
+ val NEXT = " next" .asInstanceOf [IDBCursorDirection ]
442
+
443
+ /**
444
+ * The cursor shows all records, excluding duplicates.
445
+ * If multiple records exist with the same key, only the first one iterated is retrieved.
446
+ * It starts at the lower bound of the key range and moves upwards.
447
+ *
448
+ * MDN
449
+ */
450
+ val NEXT_UNIQUE = " nextunique" .asInstanceOf [IDBCursorDirection ]
337
451
}
338
452
339
453
/**
@@ -486,7 +600,7 @@ class IDBTransaction extends EventTarget {
486
600
*
487
601
* MDN
488
602
*/
489
- def mode : String = js.native
603
+ def mode : IDBTransactionMode = js.native
490
604
491
605
/**
492
606
* The error returned in the event of an unsuccessful transaction. Null if the
@@ -533,35 +647,6 @@ class IDBTransaction extends EventTarget {
533
647
def objectStore (name : String ): IDBObjectStore = js.native
534
648
}
535
649
536
- @ js.native
537
- @ JSGlobal
538
- object IDBTransaction extends js.Object {
539
-
540
- /**
541
- * Allows data to be read but not changed.
542
- *
543
- * MDN
544
- */
545
- val READ_ONLY : String = js.native
546
-
547
- /**
548
- * Allows any operation to be performed, including ones that delete and create object
549
- * stores and indexes. This mode is for updating the version number of transactions
550
- * that were started using the setVersion() method of IDBDatabase objects.
551
- * Transactions of this mode cannot run concurrently with other transactions.
552
- *
553
- * MDN
554
- */
555
- val VERSION_CHANGE : String = js.native
556
-
557
- /**
558
- * Allows reading and writing of data in existing data stores to be changed.
559
- *
560
- * MDN
561
- */
562
- val READ_WRITE : String = js.native
563
- }
564
-
565
650
/**
566
651
* The IDBDatabase interface of the IndexedDB API provides asynchronous access
567
652
* to a connection to a database. Use it to create, manipulate, and delete
@@ -648,7 +733,7 @@ class IDBDatabase extends EventTarget {
648
733
* MDN
649
734
*/
650
735
def transaction (storeNames : js.Any ,
651
- mode : String = js.native): IDBTransaction = js.native
736
+ mode : IDBTransactionMode = js.native): IDBTransaction = js.native
652
737
653
738
/**
654
739
* As with createObjectStore, this method can be called only within a versionchange
0 commit comments