{-# 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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"result") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestResult))
-> DOM (Maybe IDBRequestResult)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self, HasCallStack) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"result") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestResult))
-> DOM (Maybe IDBRequestResult)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM IDBRequestResult
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") IDBRequestResult -> DOM IDBRequestResult
forall a. a -> JSM a
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"result") JSM JSVal
-> (JSVal -> DOM IDBRequestResult) -> DOM IDBRequestResult
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"error") JSM JSVal
-> (JSVal -> DOM (Maybe DOMError)) -> DOM (Maybe DOMError)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self, HasCallStack) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"error") JSM JSVal
-> (JSVal -> DOM (Maybe DOMError)) -> DOM (Maybe DOMError)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM DOMError
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") DOMError -> DOM DOMError
forall a. a -> JSM a
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"error") JSM JSVal -> (JSVal -> DOM DOMError) -> DOM DOMError
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"source") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestSource))
-> DOM (Maybe IDBRequestSource)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self, HasCallStack) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"source") JSM JSVal
-> (JSVal -> DOM (Maybe IDBRequestSource))
-> DOM (Maybe IDBRequestSource)
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 a b. JSM a -> (a -> JSM b) -> JSM b
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 (String -> DOM IDBRequestSource
forall a. HasCallStack => String -> a
Prelude.error String
"Nothing to return") IDBRequestSource -> DOM IDBRequestSource
forall a. a -> JSM a
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"source") JSM JSVal
-> (JSVal -> DOM IDBRequestSource) -> DOM IDBRequestSource
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"transaction") JSM JSVal -> (JSVal -> DOM IDBTransaction) -> DOM IDBTransaction
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall (m :: * -> *) self.
(MonadDOM m, IsIDBRequest self) =>
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
^. String -> IndexPreservingGetter IDBRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"readyState") JSM JSVal
-> (JSVal -> DOM IDBRequestReadyState) -> DOM IDBRequestReadyState
forall a b. JSM a -> (a -> JSM b) -> JSM b
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 :: forall self.
(IsIDBRequest self, IsEventTarget self) =>
EventName self Event
success = DOMString -> EventName self Event
forall t e. DOMString -> EventName t e
unsafeEventName (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"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 :: forall self.
(IsIDBRequest self, IsEventTarget self) =>
EventName self Event
error = DOMString -> EventName self Event
forall t e. DOMString -> EventName t e
unsafeEventName (String -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString String
"error")