{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.IDBRequest
       (getResult, getResultUnsafe, getResultUnchecked, getError,
        getErrorUnsafe, getErrorUnchecked, getSource, getSourceUnsafe,
        getSourceUnchecked, getTransaction, getReadyState, success, error,
        IDBRequest(..), gTypeIDBRequest, IsIDBRequest, toIDBRequest)
       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/IDBRequest.result Mozilla IDBRequest.result documentation> 
getResult ::
          (MonadDOM m, IsIDBRequest self) =>
            self -> m (Maybe IDBRequestResult)
getResult :: self -> m (Maybe IDBRequestResult)
getResult self
self
  = DOM (Maybe IDBRequestResult) -> m (Maybe IDBRequestResult)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> IDBRequest
forall o. IsIDBRequest o => o -> IDBRequest
toIDBRequest self
self) IDBRequest
-> Getting (JSM JSVal) IDBRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"result") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestResult))
-> DOM (Maybe IDBRequestResult)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe IDBRequestResult)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.result Mozilla IDBRequest.result documentation> 
getResultUnsafe ::
                (MonadDOM m, IsIDBRequest self, HasCallStack) =>
                  self -> m IDBRequestResult
getResultUnsafe :: self -> m IDBRequestResult
getResultUnsafe self
self
  = DOM IDBRequestResult -> m IDBRequestResult
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> IDBRequest
forall o. IsIDBRequest o => o -> IDBRequest
toIDBRequest self
self) IDBRequest
-> Getting (JSM JSVal) IDBRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"result") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestResult))
-> DOM (Maybe IDBRequestResult)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe IDBRequestResult)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe IDBRequestResult)
-> (Maybe IDBRequestResult -> DOM IDBRequestResult)
-> DOM IDBRequestResult
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM IDBRequestResult
-> (IDBRequestResult -> DOM IDBRequestResult)
-> Maybe IDBRequestResult
-> DOM IDBRequestResult
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM IDBRequestResult
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") IDBRequestResult -> DOM IDBRequestResult
forall (m :: * -> *) a. Monad m => a -> m a
return)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.error Mozilla IDBRequest.error documentation> 
getError ::
         (MonadDOM m, IsIDBRequest self) => self -> m (Maybe DOMError)
getError :: self -> m (Maybe DOMError)
getError self
self
  = DOM (Maybe DOMError) -> m (Maybe DOMError)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> IDBRequest
forall o. IsIDBRequest o => o -> IDBRequest
toIDBRequest self
self) IDBRequest
-> Getting (JSM JSVal) IDBRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"error") JSM JSVal
-> (JSVal -> DOM (Maybe DOMError)) -> DOM (Maybe DOMError)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe DOMError)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.error Mozilla IDBRequest.error documentation> 
getErrorUnsafe ::
               (MonadDOM m, IsIDBRequest self, HasCallStack) => self -> m DOMError
getErrorUnsafe :: self -> m DOMError
getErrorUnsafe self
self
  = DOM DOMError -> m DOMError
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> IDBRequest
forall o. IsIDBRequest o => o -> IDBRequest
toIDBRequest self
self) IDBRequest
-> Getting (JSM JSVal) IDBRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"error") JSM JSVal
-> (JSVal -> DOM (Maybe DOMError)) -> DOM (Maybe DOMError)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe DOMError)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe DOMError)
-> (Maybe DOMError -> DOM DOMError) -> DOM DOMError
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM DOMError
-> (DOMError -> DOM DOMError) -> Maybe DOMError -> DOM DOMError
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM DOMError
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") DOMError -> DOM DOMError
forall (m :: * -> *) a. Monad m => a -> m a
return)

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.source Mozilla IDBRequest.source documentation> 
getSourceUnsafe ::
                (MonadDOM m, IsIDBRequest self, HasCallStack) =>
                  self -> m IDBRequestSource
getSourceUnsafe :: self -> m IDBRequestSource
getSourceUnsafe self
self
  = DOM IDBRequestSource -> m IDBRequestSource
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((((self -> IDBRequest
forall o. IsIDBRequest o => o -> IDBRequest
toIDBRequest self
self) IDBRequest
-> Getting (JSM JSVal) IDBRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"source") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestSource))
-> DOM (Maybe IDBRequestSource)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe IDBRequestSource)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe IDBRequestSource)
-> (Maybe IDBRequestSource -> DOM IDBRequestSource)
-> DOM IDBRequestSource
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM IDBRequestSource
-> (IDBRequestSource -> DOM IDBRequestSource)
-> Maybe IDBRequestSource
-> DOM IDBRequestSource
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM IDBRequestSource
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") IDBRequestSource -> DOM IDBRequestSource
forall (m :: * -> *) a. Monad m => a -> m a
return)

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

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.onsuccess Mozilla IDBRequest.onsuccess documentation> 
success ::
        (IsIDBRequest self, IsEventTarget self) => EventName self Event
success :: EventName self Event
success = DOMString -> EventName self Event
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"success")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest.onerror Mozilla IDBRequest.onerror documentation> 
error ::
      (IsIDBRequest self, IsEventTarget self) => EventName self Event
error :: EventName self Event
error = DOMString -> EventName self Event
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"error")