{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.IDBTransaction
       (objectStore, objectStore_, abort, getObjectStoreNames, getMode,
        getDb, getError, abortEvent, complete, error, IDBTransaction(..),
        gTypeIDBTransaction)
       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/IDBTransaction.objectStore Mozilla IDBTransaction.objectStore documentation> 
objectStore ::
            (MonadDOM m, ToJSString name) =>
              IDBTransaction -> name -> m IDBObjectStore
objectStore :: IDBTransaction -> name -> m IDBObjectStore
objectStore IDBTransaction
self name
name
  = DOM IDBObjectStore -> m IDBObjectStore
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((IDBTransaction
self IDBTransaction
-> Getting (JSM JSVal) IDBTransaction (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]
"objectStore" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name]) JSM JSVal -> (JSVal -> DOM IDBObjectStore) -> DOM IDBObjectStore
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM IDBObjectStore
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.objectStore Mozilla IDBTransaction.objectStore documentation> 
objectStore_ ::
             (MonadDOM m, ToJSString name) => IDBTransaction -> name -> m ()
objectStore_ :: IDBTransaction -> name -> m ()
objectStore_ IDBTransaction
self name
name
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (IDBTransaction
self IDBTransaction
-> Getting (JSM JSVal) IDBTransaction (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]
"objectStore" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.abort Mozilla IDBTransaction.abort documentation> 
abort :: (MonadDOM m) => IDBTransaction -> m ()
abort :: IDBTransaction -> m ()
abort IDBTransaction
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 (IDBTransaction
self IDBTransaction
-> Getting (JSM JSVal) IDBTransaction (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]
"abort" ()))

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

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.error Mozilla IDBTransaction.error documentation> 
getError :: (MonadDOM m) => IDBTransaction -> m DOMError
getError :: IDBTransaction -> m DOMError
getError IDBTransaction
self
  = DOM DOMError -> m DOMError
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((IDBTransaction
self IDBTransaction
-> Getting (JSM JSVal) IDBTransaction (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter IDBTransaction (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/IDBTransaction.onabort Mozilla IDBTransaction.onabort documentation> 
abortEvent :: EventName IDBTransaction Event
abortEvent :: EventName IDBTransaction Event
abortEvent = DOMString -> EventName IDBTransaction Event
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"abort")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction.oncomplete Mozilla IDBTransaction.oncomplete documentation> 
complete :: EventName IDBTransaction Event
complete :: EventName IDBTransaction Event
complete = DOMString -> EventName IDBTransaction Event
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"complete")

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