All Downloads are FREE. Search and download functionalities are using the official Maven repository.

elemental2.indexeddb.IDBIndex Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2018 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package elemental2.indexeddb;

import elemental2.core.ArrayBuffer;
import elemental2.core.ArrayBufferView;
import elemental2.core.JsArray;
import elemental2.core.JsDate;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsType;
import jsinterop.base.Js;

@JsType(isNative = true, namespace = JsPackage.GLOBAL)
public class IDBIndex {
  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface CountKeyUnionType {
    @JsOverlay
    static IDBIndex.CountKeyUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface GetAllKeysQueryUnionType {
    @JsOverlay
    static IDBIndex.GetAllKeysQueryUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface GetAllQueryUnionType {
    @JsOverlay
    static IDBIndex.GetAllQueryUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface GetKeyKeyUnionType {
    @JsOverlay
    static IDBIndex.GetKeyKeyUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface GetKeyUnionType {
    @JsOverlay
    static IDBIndex.GetKeyUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface OpenCursorRangeUnionType {
    @JsOverlay
    static IDBIndex.OpenCursorRangeUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  @JsType(isNative = true, name = "?", namespace = JsPackage.GLOBAL)
  public interface OpenKeyCursorRangeUnionType {
    @JsOverlay
    static IDBIndex.OpenKeyCursorRangeUnionType of(Object o) {
      return Js.cast(o);
    }

    @JsOverlay
    default ArrayBuffer asArrayBuffer() {
      return Js.cast(this);
    }

    @JsOverlay
    default ArrayBufferView asArrayBufferView() {
      return Js.cast(this);
    }

    @JsOverlay
    default double asDouble() {
      return Js.asDouble(this);
    }

    @JsOverlay
    default IDBKeyRange asIDBKeyRange() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsArray asJsArray() {
      return Js.cast(this);
    }

    @JsOverlay
    default JsDate asJsDate() {
      return Js.cast(this);
    }

    @JsOverlay
    default String asString() {
      return Js.asString(this);
    }

    @JsOverlay
    default boolean isArrayBuffer() {
      return (Object) this instanceof ArrayBuffer;
    }

    @JsOverlay
    default boolean isArrayBufferView() {
      return (Object) this instanceof ArrayBufferView;
    }

    @JsOverlay
    default boolean isDouble() {
      return (Object) this instanceof Double;
    }

    @JsOverlay
    default boolean isIDBKeyRange() {
      return (Object) this instanceof IDBKeyRange;
    }

    @JsOverlay
    default boolean isJsArray() {
      return (Object) this instanceof JsArray;
    }

    @JsOverlay
    default boolean isJsDate() {
      return (Object) this instanceof JsDate;
    }

    @JsOverlay
    default boolean isString() {
      return (Object) this instanceof String;
    }
  }

  public Object keyPath;
  public boolean multiEntry;
  public String name;
  public IDBObjectStore objectStore;
  public boolean unique;

  public native IDBRequest count();

  @JsOverlay
  public final IDBRequest count(ArrayBuffer key) {
    return count(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest count(ArrayBufferView key) {
    return count(Js.uncheckedCast(key));
  }

  public native IDBRequest count(IDBIndex.CountKeyUnionType key);

  @JsOverlay
  public final IDBRequest count(IDBKeyRange key) {
    return count(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest count(JsArray key) {
    return count(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest count(JsDate key) {
    return count(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest count(Object[] key) {
    return count(Js.>uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest count(String key) {
    return count(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest count(double key) {
    return count(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(ArrayBuffer key) {
    return get(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(ArrayBufferView key) {
    return get(Js.uncheckedCast(key));
  }

  public native IDBRequest get(IDBIndex.GetKeyUnionType key);

  @JsOverlay
  public final IDBRequest get(IDBKeyRange key) {
    return get(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(JsArray key) {
    return get(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(JsDate key) {
    return get(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(Object[] key) {
    return get(Js.>uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(String key) {
    return get(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest get(double key) {
    return get(Js.uncheckedCast(key));
  }

  public native IDBRequest getAll();

  @JsOverlay
  public final IDBRequest getAll(ArrayBuffer query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(ArrayBuffer query) {
    return getAll(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAll(ArrayBufferView query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(ArrayBufferView query) {
    return getAll(Js.uncheckedCast(query));
  }

  public native IDBRequest getAll(IDBIndex.GetAllQueryUnionType query, int count);

  public native IDBRequest getAll(IDBIndex.GetAllQueryUnionType query);

  @JsOverlay
  public final IDBRequest getAll(IDBKeyRange query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(IDBKeyRange query) {
    return getAll(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAll(JsArray query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(JsArray query) {
    return getAll(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAll(JsDate query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(JsDate query) {
    return getAll(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAll(Object[] query, int count) {
    return getAll(Js.>uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(Object[] query) {
    return getAll(Js.>uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAll(String query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(String query) {
    return getAll(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAll(double query, int count) {
    return getAll(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAll(double query) {
    return getAll(Js.uncheckedCast(query));
  }

  public native IDBRequest getAllKeys();

  @JsOverlay
  public final IDBRequest getAllKeys(ArrayBuffer query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(ArrayBuffer query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAllKeys(ArrayBufferView query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(ArrayBufferView query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  public native IDBRequest getAllKeys(IDBIndex.GetAllKeysQueryUnionType query, int count);

  public native IDBRequest getAllKeys(IDBIndex.GetAllKeysQueryUnionType query);

  @JsOverlay
  public final IDBRequest getAllKeys(IDBKeyRange query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(IDBKeyRange query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAllKeys(JsArray query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(JsArray query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAllKeys(JsDate query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(JsDate query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAllKeys(Object[] query, int count) {
    return getAllKeys(Js.>uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(Object[] query) {
    return getAllKeys(Js.>uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAllKeys(String query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(String query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getAllKeys(double query, int count) {
    return getAllKeys(Js.uncheckedCast(query), count);
  }

  @JsOverlay
  public final IDBRequest getAllKeys(double query) {
    return getAllKeys(Js.uncheckedCast(query));
  }

  @JsOverlay
  public final IDBRequest getKey(ArrayBuffer key) {
    return getKey(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest getKey(ArrayBufferView key) {
    return getKey(Js.uncheckedCast(key));
  }

  public native IDBRequest getKey(IDBIndex.GetKeyKeyUnionType key);

  @JsOverlay
  public final IDBRequest getKey(IDBKeyRange key) {
    return getKey(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest getKey(JsArray key) {
    return getKey(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest getKey(JsDate key) {
    return getKey(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest getKey(Object[] key) {
    return getKey(Js.>uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest getKey(String key) {
    return getKey(Js.uncheckedCast(key));
  }

  @JsOverlay
  public final IDBRequest getKey(double key) {
    return getKey(Js.uncheckedCast(key));
  }

  public native IDBRequest openCursor();

  @JsOverlay
  public final IDBRequest openCursor(ArrayBuffer range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(ArrayBuffer range) {
    return openCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openCursor(ArrayBufferView range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(ArrayBufferView range) {
    return openCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openCursor(IDBKeyRange range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(IDBKeyRange range) {
    return openCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openCursor(JsArray range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(JsArray range) {
    return openCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openCursor(JsDate range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(JsDate range) {
    return openCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openCursor(Object[] range, String direction) {
    return openCursor(Js.>uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(Object[] range) {
    return openCursor(Js.>uncheckedCast(range));
  }

  public native IDBRequest openCursor(IDBIndex.OpenCursorRangeUnionType range, String direction);

  public native IDBRequest openCursor(IDBIndex.OpenCursorRangeUnionType range);

  @JsOverlay
  public final IDBRequest openCursor(String range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(String range) {
    return openCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openCursor(double range, String direction) {
    return openCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openCursor(double range) {
    return openCursor(Js.uncheckedCast(range));
  }

  public native IDBRequest openKeyCursor();

  @JsOverlay
  public final IDBRequest openKeyCursor(ArrayBuffer range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(ArrayBuffer range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(ArrayBufferView range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(ArrayBufferView range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(IDBKeyRange range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(IDBKeyRange range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(JsArray range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(JsArray range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(JsDate range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(JsDate range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(Object[] range, String direction) {
    return openKeyCursor(Js.>uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(Object[] range) {
    return openKeyCursor(Js.>uncheckedCast(range));
  }

  public native IDBRequest openKeyCursor(
      IDBIndex.OpenKeyCursorRangeUnionType range, String direction);

  public native IDBRequest openKeyCursor(IDBIndex.OpenKeyCursorRangeUnionType range);

  @JsOverlay
  public final IDBRequest openKeyCursor(String range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(String range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(double range, String direction) {
    return openKeyCursor(Js.uncheckedCast(range), direction);
  }

  @JsOverlay
  public final IDBRequest openKeyCursor(double range) {
    return openKeyCursor(Js.uncheckedCast(range));
  }
}