{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.IDBCursor
       (update, update_, advance, continue, continuePrimaryKey, delete,
        delete_, getSource, getDirection, getKey, getPrimaryKey,
        IDBCursor(..), gTypeIDBCursor, IsIDBCursor, toIDBCursor)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.update Mozilla IDBCursor.update documentation> 
update ::
       (MonadDOM m, IsIDBCursor self, ToJSVal value) =>
         self -> value -> m IDBRequest
update :: self -> value -> m IDBRequest
update self
self value
value
  = DOM IDBRequest -> m IDBRequest
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"update" [value -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal value
value]) JSM JSVal -> (JSVal -> DOM IDBRequest) -> DOM IDBRequest
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM IDBRequest
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.update Mozilla IDBCursor.update documentation> 
update_ ::
        (MonadDOM m, IsIDBCursor self, ToJSVal value) =>
          self -> value -> m ()
update_ :: self -> value -> m ()
update_ self
self value
value
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"update" [value -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal value
value]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.advance Mozilla IDBCursor.advance documentation> 
advance :: (MonadDOM m, IsIDBCursor self) => self -> Word -> m ()
advance :: self -> Word -> m ()
advance self
self Word
count
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"advance" [Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
count]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.continue Mozilla IDBCursor.continue documentation> 
continue ::
         (MonadDOM m, IsIDBCursor self, ToJSVal key) =>
           self -> Maybe key -> m ()
continue :: self -> Maybe key -> m ()
continue self
self Maybe key
key
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"continue" [Maybe key -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe key
key]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.continuePrimaryKey Mozilla IDBCursor.continuePrimaryKey documentation> 
continuePrimaryKey ::
                   (MonadDOM m, IsIDBCursor self, ToJSVal key, ToJSVal primaryKey) =>
                     self -> key -> primaryKey -> m ()
continuePrimaryKey :: self -> key -> primaryKey -> m ()
continuePrimaryKey self
self key
key primaryKey
primaryKey
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"continuePrimaryKey"
            [key -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal key
key, primaryKey -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal primaryKey
primaryKey]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.delete Mozilla IDBCursor.delete documentation> 
delete :: (MonadDOM m, IsIDBCursor self) => self -> m IDBRequest
delete :: self -> m IDBRequest
delete self
self
  = DOM IDBRequest -> m IDBRequest
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"delete" ()) JSM JSVal -> (JSVal -> DOM IDBRequest) -> DOM IDBRequest
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM IDBRequest
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.delete Mozilla IDBCursor.delete documentation> 
delete_ :: (MonadDOM m, IsIDBCursor self) => self -> m ()
delete_ :: self -> m ()
delete_ self
self
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"delete" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.source Mozilla IDBCursor.source documentation> 
getSource ::
          (MonadDOM m, IsIDBCursor self) => self -> m IDBCursorSource
getSource :: self -> m IDBCursorSource
getSource self
self
  = DOM IDBCursorSource -> m IDBCursorSource
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBCursor (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"source") JSM JSVal -> (JSVal -> DOM IDBCursorSource) -> DOM IDBCursorSource
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM IDBCursorSource
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.direction Mozilla IDBCursor.direction documentation> 
getDirection ::
             (MonadDOM m, IsIDBCursor self) => self -> m IDBCursorDirection
getDirection :: self -> m IDBCursorDirection
getDirection self
self
  = DOM IDBCursorDirection -> m IDBCursorDirection
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBCursor (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"direction") JSM JSVal
-> (JSVal -> DOM IDBCursorDirection) -> DOM IDBCursorDirection
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM IDBCursorDirection
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.key Mozilla IDBCursor.key documentation> 
getKey :: (MonadDOM m, IsIDBCursor self) => self -> m JSVal
getKey :: self -> m JSVal
getKey self
self
  = JSM JSVal -> m JSVal
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBCursor (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"key") JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBCursor.primaryKey Mozilla IDBCursor.primaryKey documentation> 
getPrimaryKey :: (MonadDOM m, IsIDBCursor self) => self -> m JSVal
getPrimaryKey :: self -> m JSVal
getPrimaryKey self
self
  = JSM JSVal -> m JSVal
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> IDBCursor
forall o. IsIDBCursor o => o -> IDBCursor
toIDBCursor self
self) IDBCursor -> Getting (JSM JSVal) IDBCursor (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBCursor (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"primaryKey") JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal)