packages feed

ghcjs-dom-0.2.1.0: src/GHCJS/DOM/JSFFI/Window.hs

{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
module GHCJS.DOM.JSFFI.Window (
    module Generated
  , js_openDatabase
  , openDatabase
) where

import Control.Monad.IO.Class (MonadIO(..))

import GHCJS.Types (JSRef, JSString)
import GHCJS.Marshal (fromJSRefUnchecked)
import GHCJS.DOM.Types

import GHCJS.DOM.JSFFI.Generated.Window as Generated hiding (js_openDatabase, openDatabase)

foreign import javascript interruptible
        "(function(db) { if(db) $c(db) })($1[\"openDatabase\"]($2, $3, $4, $5, function(d) { $c(d) }));" js_openDatabase ::
        JSRef Window -> JSString -> JSString -> JSString -> Word -> IO (JSRef Database)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Window.openDatabase Mozilla Window.openDatabase documentation>
openDatabase :: (MonadIO m, ToJSString name, ToJSString version, ToJSString displayName) =>
                Window -> name -> version -> displayName -> Word -> m Database
openDatabase self name version displayName estimatedSize = liftIO $
    js_openDatabase
        (unWindow self)
        (toJSString name)
        (toJSString version)
        (toJSString displayName)
        estimatedSize >>= fromJSRefUnchecked