{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.IDBDatabase (createObjectStore, deleteObjectStore, transaction, transaction', close, getName, getVersion, getObjectStoreNames, abort, error, versionChange, IDBDatabase, castToIDBDatabase, gTypeIDBDatabase) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import Language.Javascript.JSaddle.DOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import Language.Javascript.JSaddle.DOM.EventTargetClosures (EventName, unsafeEventName) import Language.Javascript.JSaddle.DOM.Enums -- | createObjectStore :: (MonadDOM m, ToJSString name, IsDictionary options) => IDBDatabase -> name -> Maybe options -> m (Maybe IDBObjectStore) createObjectStore self name options = liftDOM ((self ^. jsf "createObjectStore" [toJSVal name, toJSVal options]) >>= fromJSVal) -- | deleteObjectStore :: (MonadDOM m, ToJSString name) => IDBDatabase -> name -> m () deleteObjectStore self name = liftDOM (void (self ^. jsf "deleteObjectStore" [toJSVal name])) -- | transaction :: (MonadDOM m, ToJSString storeName, ToJSString mode) => IDBDatabase -> storeName -> mode -> m (Maybe IDBTransaction) transaction self storeName mode = liftDOM ((self ^. jsf "transaction" [toJSVal storeName, toJSVal mode]) >>= fromJSVal) -- | transaction' :: (MonadDOM m, ToJSString storeNames, ToJSString mode) => IDBDatabase -> [storeNames] -> mode -> m (Maybe IDBTransaction) transaction' self storeNames mode = liftDOM ((self ^. jsf "transaction" [toJSVal (array storeNames), toJSVal mode]) >>= fromJSVal) -- | close :: (MonadDOM m) => IDBDatabase -> m () close self = liftDOM (void (self ^. js "close")) -- | getName :: (MonadDOM m, FromJSString result) => IDBDatabase -> m result getName self = liftDOM ((self ^. js "name") >>= fromJSValUnchecked) -- | getVersion :: (MonadDOM m) => IDBDatabase -> m Word64 getVersion self = liftDOM (round <$> ((self ^. js "version") >>= valToNumber)) -- | getObjectStoreNames :: (MonadDOM m) => IDBDatabase -> m (Maybe DOMStringList) getObjectStoreNames self = liftDOM ((self ^. js "objectStoreNames") >>= fromJSVal) -- | abort :: EventName IDBDatabase Event abort = unsafeEventName (toJSString "abort") -- | error :: EventName IDBDatabase Event error = unsafeEventName (toJSString "error") -- | versionChange :: EventName IDBDatabase IDBVersionChangeEvent versionChange = unsafeEventName (toJSString "versionchange")