{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE JavaScriptFFI #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} module GHCJS.DOM.JSFFI.Generated.XMLHttpRequest (js_newXMLHttpRequest, newXMLHttpRequest, js_openSimple, openSimple, js_open, open, js_setRequestHeader, setRequestHeader, js_send, send, js_abort, abort, js_getResponseHeader, getResponseHeader, getResponseHeader_, getResponseHeaderUnsafe, getResponseHeaderUnchecked, js_getAllResponseHeaders, getAllResponseHeaders, getAllResponseHeaders_, js_overrideMimeType, overrideMimeType, pattern UNSENT, pattern OPENED, pattern HEADERS_RECEIVED, pattern LOADING, pattern DONE, readyStateChange, js_getReadyState, getReadyState, js_setTimeout, setTimeout, js_getTimeout, getTimeout, js_setWithCredentials, setWithCredentials, js_getWithCredentials, getWithCredentials, js_getUpload, getUpload, js_getResponseURL, getResponseURL, js_getStatus, getStatus, js_getStatusText, getStatusText, js_setResponseType, setResponseType, js_getResponseType, getResponseType, js_getResponse, getResponse, js_getResponseText, getResponseText, getResponseTextUnsafe, getResponseTextUnchecked, js_getResponseXML, getResponseXML, getResponseXMLUnsafe, getResponseXMLUnchecked, XMLHttpRequest(..), gTypeXMLHttpRequest) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord) import qualified Prelude (error) import Data.Typeable (Typeable) import GHCJS.Types (JSVal(..), JSString) import GHCJS.Foreign (jsNull, jsUndefined) import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..)) import GHCJS.Marshal (ToJSVal(..), FromJSVal(..)) import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..)) import Control.Monad (void) import Control.Monad.IO.Class (MonadIO(..)) import Data.Int (Int64) import Data.Word (Word, Word64) import Data.Maybe (fromJust) import Data.Traversable (mapM) import GHCJS.DOM.Types import Control.Applicative ((<$>)) import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync) import GHCJS.DOM.JSFFI.Generated.Enums foreign import javascript unsafe "new window[\"XMLHttpRequest\"]()" js_newXMLHttpRequest :: IO XMLHttpRequest -- | newXMLHttpRequest :: (MonadIO m) => m XMLHttpRequest newXMLHttpRequest = liftIO (js_newXMLHttpRequest) foreign import javascript safe "$1[\"open\"]($2, $3)" js_openSimple :: XMLHttpRequest -> JSString -> JSString -> IO () -- | openSimple :: (MonadIO m, ToJSString method, ToJSString url) => XMLHttpRequest -> method -> url -> m () openSimple self method url = liftIO (js_openSimple self (toJSString method) (toJSString url)) foreign import javascript safe "$1[\"open\"]($2, $3, $4, $5, $6)" js_open :: XMLHttpRequest -> JSString -> JSString -> Bool -> Optional JSString -> Optional JSString -> IO () -- | open :: (MonadIO m, ToJSString method, ToJSString url, ToJSString user, ToJSString password) => XMLHttpRequest -> method -> url -> Bool -> Maybe user -> Maybe password -> m () open self method url async user password = liftIO (js_open self (toJSString method) (toJSString url) async (toOptionalJSString user) (toOptionalJSString password)) foreign import javascript safe "$1[\"setRequestHeader\"]($2, $3)" js_setRequestHeader :: XMLHttpRequest -> JSString -> JSString -> IO () -- | setRequestHeader :: (MonadIO m, ToJSString header, ToJSString value) => XMLHttpRequest -> header -> value -> m () setRequestHeader self header value = liftIO (js_setRequestHeader self (toJSString header) (toJSString value)) foreign import javascript safe "$1[\"send\"]($2)" js_send :: XMLHttpRequest -> Optional XMLHttpRequestBody -> IO () -- | send :: (MonadIO m, IsXMLHttpRequestBody body) => XMLHttpRequest -> Maybe body -> m () send self body = liftIO (mapM toJSVal body >>= \ body' -> js_send self (maybeToOptional (fmap XMLHttpRequestBody body'))) foreign import javascript unsafe "$1[\"abort\"]()" js_abort :: XMLHttpRequest -> IO () -- | abort :: (MonadIO m) => XMLHttpRequest -> m () abort self = liftIO (js_abort self) foreign import javascript unsafe "$1[\"getResponseHeader\"]($2)" js_getResponseHeader :: XMLHttpRequest -> JSString -> IO (Nullable JSString) -- | getResponseHeader :: (MonadIO m, ToJSString name, FromJSString result) => XMLHttpRequest -> name -> m (Maybe result) getResponseHeader self name = liftIO (fromMaybeJSString <$> (js_getResponseHeader self (toJSString name))) -- | getResponseHeader_ :: (MonadIO m, ToJSString name) => XMLHttpRequest -> name -> m () getResponseHeader_ self name = liftIO (void (js_getResponseHeader self (toJSString name))) -- | getResponseHeaderUnsafe :: (MonadIO m, ToJSString name, HasCallStack, FromJSString result) => XMLHttpRequest -> name -> m result getResponseHeaderUnsafe self name = liftIO ((fromMaybeJSString <$> (js_getResponseHeader self (toJSString name))) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseHeaderUnchecked :: (MonadIO m, ToJSString name, FromJSString result) => XMLHttpRequest -> name -> m result getResponseHeaderUnchecked self name = liftIO (fromJust . fromMaybeJSString <$> (js_getResponseHeader self (toJSString name))) foreign import javascript unsafe "$1[\"getAllResponseHeaders\"]()" js_getAllResponseHeaders :: XMLHttpRequest -> IO JSString -- | getAllResponseHeaders :: (MonadIO m, FromJSString result) => XMLHttpRequest -> m result getAllResponseHeaders self = liftIO (fromJSString <$> (js_getAllResponseHeaders self)) -- | getAllResponseHeaders_ :: (MonadIO m) => XMLHttpRequest -> m () getAllResponseHeaders_ self = liftIO (void (js_getAllResponseHeaders self)) foreign import javascript safe "$1[\"overrideMimeType\"]($2)" js_overrideMimeType :: XMLHttpRequest -> JSString -> IO () -- | overrideMimeType :: (MonadIO m, ToJSString mime) => XMLHttpRequest -> mime -> m () overrideMimeType self mime = liftIO (js_overrideMimeType self (toJSString mime)) pattern UNSENT = 0 pattern OPENED = 1 pattern HEADERS_RECEIVED = 2 pattern LOADING = 3 pattern DONE = 4 -- | readyStateChange :: EventName XMLHttpRequest Event readyStateChange = unsafeEventNameAsync (toJSString "readystatechange") foreign import javascript unsafe "$1[\"readyState\"]" js_getReadyState :: XMLHttpRequest -> IO Word -- | getReadyState :: (MonadIO m) => XMLHttpRequest -> m Word getReadyState self = liftIO (js_getReadyState self) foreign import javascript safe "$1[\"timeout\"] = $2;" js_setTimeout :: XMLHttpRequest -> Word -> IO () -- | setTimeout :: (MonadIO m) => XMLHttpRequest -> Word -> m () setTimeout self val = liftIO (js_setTimeout self val) foreign import javascript unsafe "$1[\"timeout\"]" js_getTimeout :: XMLHttpRequest -> IO Word -- | getTimeout :: (MonadIO m) => XMLHttpRequest -> m Word getTimeout self = liftIO (js_getTimeout self) foreign import javascript safe "$1[\"withCredentials\"] = $2;" js_setWithCredentials :: XMLHttpRequest -> Bool -> IO () -- | setWithCredentials :: (MonadIO m) => XMLHttpRequest -> Bool -> m () setWithCredentials self val = liftIO (js_setWithCredentials self val) foreign import javascript unsafe "($1[\"withCredentials\"] ? 1 : 0)" js_getWithCredentials :: XMLHttpRequest -> IO Bool -- | getWithCredentials :: (MonadIO m) => XMLHttpRequest -> m Bool getWithCredentials self = liftIO (js_getWithCredentials self) foreign import javascript unsafe "$1[\"upload\"]" js_getUpload :: XMLHttpRequest -> IO XMLHttpRequestUpload -- | getUpload :: (MonadIO m) => XMLHttpRequest -> m XMLHttpRequestUpload getUpload self = liftIO (js_getUpload self) foreign import javascript unsafe "$1[\"responseURL\"]" js_getResponseURL :: XMLHttpRequest -> IO JSString -- | getResponseURL :: (MonadIO m, FromJSString result) => XMLHttpRequest -> m result getResponseURL self = liftIO (fromJSString <$> (js_getResponseURL self)) foreign import javascript unsafe "$1[\"status\"]" js_getStatus :: XMLHttpRequest -> IO Word -- | getStatus :: (MonadIO m) => XMLHttpRequest -> m Word getStatus self = liftIO (js_getStatus self) foreign import javascript unsafe "$1[\"statusText\"]" js_getStatusText :: XMLHttpRequest -> IO JSString -- | getStatusText :: (MonadIO m, FromJSString result) => XMLHttpRequest -> m result getStatusText self = liftIO (fromJSString <$> (js_getStatusText self)) foreign import javascript safe "$1[\"responseType\"] = $2;" js_setResponseType :: XMLHttpRequest -> JSVal -> IO () -- | setResponseType :: (MonadIO m) => XMLHttpRequest -> XMLHttpRequestResponseType -> m () setResponseType self val = liftIO (js_setResponseType self (pToJSVal val)) foreign import javascript unsafe "$1[\"responseType\"]" js_getResponseType :: XMLHttpRequest -> IO JSVal -- | getResponseType :: (MonadIO m) => XMLHttpRequest -> m XMLHttpRequestResponseType getResponseType self = liftIO ((js_getResponseType self) >>= fromJSValUnchecked) foreign import javascript unsafe "$1[\"response\"]" js_getResponse :: XMLHttpRequest -> IO JSVal -- | getResponse :: (MonadIO m) => XMLHttpRequest -> m JSVal getResponse self = liftIO (js_getResponse self) foreign import javascript safe "$1[\"responseText\"]" js_getResponseText :: XMLHttpRequest -> IO (Nullable JSString) -- | getResponseText :: (MonadIO m, FromJSString result) => XMLHttpRequest -> m (Maybe result) getResponseText self = liftIO (fromMaybeJSString <$> (js_getResponseText self)) -- | getResponseTextUnsafe :: (MonadIO m, HasCallStack, FromJSString result) => XMLHttpRequest -> m result getResponseTextUnsafe self = liftIO ((fromMaybeJSString <$> (js_getResponseText self)) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseTextUnchecked :: (MonadIO m, FromJSString result) => XMLHttpRequest -> m result getResponseTextUnchecked self = liftIO (fromJust . fromMaybeJSString <$> (js_getResponseText self)) foreign import javascript safe "$1[\"responseXML\"]" js_getResponseXML :: XMLHttpRequest -> IO (Nullable Document) -- | getResponseXML :: (MonadIO m) => XMLHttpRequest -> m (Maybe Document) getResponseXML self = liftIO (nullableToMaybe <$> (js_getResponseXML self)) -- | getResponseXMLUnsafe :: (MonadIO m, HasCallStack) => XMLHttpRequest -> m Document getResponseXMLUnsafe self = liftIO ((nullableToMaybe <$> (js_getResponseXML self)) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseXMLUnchecked :: (MonadIO m) => XMLHttpRequest -> m Document getResponseXMLUnchecked self = liftIO (fromJust . nullableToMaybe <$> (js_getResponseXML self))