{-# LANGUAGE PatternSynonyms #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module JSDOM.Generated.XMLHttpRequest (newXMLHttpRequest, open, setRequestHeader, send, abort, getAllResponseHeaders, getAllResponseHeaders_, getAllResponseHeadersUnsafe, getAllResponseHeadersUnchecked, getResponseHeader, getResponseHeader_, getResponseHeaderUnsafe, getResponseHeaderUnchecked, overrideMimeType, pattern UNSENT, pattern OPENED, pattern HEADERS_RECEIVED, pattern LOADING, pattern DONE, abortEvent, error, load, loadEnd, loadStart, progress, timeout, readyStateChange, setTimeout, getTimeout, getReadyState, setWithCredentials, getWithCredentials, getUpload, getUploadUnsafe, getUploadUnchecked, getResponseText, getResponseTextUnsafe, getResponseTextUnchecked, getResponseXML, getResponseXMLUnsafe, getResponseXMLUnchecked, setResponseType, getResponseType, getResponse, getResponseUnsafe, getResponseUnchecked, getStatus, getStatusText, getResponseURL, XMLHttpRequest(..), gTypeXMLHttpRequest) 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 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 JSDOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import JSDOM.EventTargetClosures (EventName, unsafeEventName) import JSDOM.Enums -- | newXMLHttpRequest :: (MonadDOM m) => m XMLHttpRequest newXMLHttpRequest = liftDOM (XMLHttpRequest <$> new (jsg "XMLHttpRequest") ()) -- | open :: (MonadDOM m, ToJSString method, ToJSString url, ToJSString user, ToJSString password) => XMLHttpRequest -> method -> url -> Bool -> user -> password -> m () open self method url async user password = liftDOM (void (self ^. jsf "open" [toJSVal method, toJSVal url, toJSVal async, toJSVal user, toJSVal password])) -- | setRequestHeader :: (MonadDOM m, ToJSString header, ToJSString value) => XMLHttpRequest -> header -> value -> m () setRequestHeader self header value = liftDOM (void (self ^. jsf "setRequestHeader" [toJSVal header, toJSVal value])) -- | send :: (MonadDOM m) => XMLHttpRequest -> m () send self = liftDOM (void (self ^. jsf "send" ())) -- | abort :: (MonadDOM m) => XMLHttpRequest -> m () abort self = liftDOM (void (self ^. jsf "abort" ())) -- | getAllResponseHeaders :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m (Maybe result) getAllResponseHeaders self = liftDOM ((self ^. jsf "getAllResponseHeaders" ()) >>= fromMaybeJSString) -- | getAllResponseHeaders_ :: (MonadDOM m) => XMLHttpRequest -> m () getAllResponseHeaders_ self = liftDOM (void (self ^. jsf "getAllResponseHeaders" ())) -- | getAllResponseHeadersUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => XMLHttpRequest -> m result getAllResponseHeadersUnsafe self = liftDOM (((self ^. jsf "getAllResponseHeaders" ()) >>= fromMaybeJSString) >>= maybe (Prelude.error "Nothing to return") return) -- | getAllResponseHeadersUnchecked :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result getAllResponseHeadersUnchecked self = liftDOM ((self ^. jsf "getAllResponseHeaders" ()) >>= fromJSValUnchecked) -- | getResponseHeader :: (MonadDOM m, ToJSString header, FromJSString result) => XMLHttpRequest -> header -> m (Maybe result) getResponseHeader self header = liftDOM ((self ^. jsf "getResponseHeader" [toJSVal header]) >>= fromMaybeJSString) -- | getResponseHeader_ :: (MonadDOM m, ToJSString header) => XMLHttpRequest -> header -> m () getResponseHeader_ self header = liftDOM (void (self ^. jsf "getResponseHeader" [toJSVal header])) -- | getResponseHeaderUnsafe :: (MonadDOM m, ToJSString header, HasCallStack, FromJSString result) => XMLHttpRequest -> header -> m result getResponseHeaderUnsafe self header = liftDOM (((self ^. jsf "getResponseHeader" [toJSVal header]) >>= fromMaybeJSString) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseHeaderUnchecked :: (MonadDOM m, ToJSString header, FromJSString result) => XMLHttpRequest -> header -> m result getResponseHeaderUnchecked self header = liftDOM ((self ^. jsf "getResponseHeader" [toJSVal header]) >>= fromJSValUnchecked) -- | overrideMimeType :: (MonadDOM m, ToJSString override) => XMLHttpRequest -> override -> m () overrideMimeType self override = liftDOM (void (self ^. jsf "overrideMimeType" [toJSVal override])) pattern UNSENT = 0 pattern OPENED = 1 pattern HEADERS_RECEIVED = 2 pattern LOADING = 3 pattern DONE = 4 -- | abortEvent :: EventName XMLHttpRequest XMLHttpRequestProgressEvent abortEvent = unsafeEventName (toJSString "abort") -- | error :: EventName XMLHttpRequest XMLHttpRequestProgressEvent error = unsafeEventName (toJSString "error") -- | load :: EventName XMLHttpRequest XMLHttpRequestProgressEvent load = unsafeEventName (toJSString "load") -- | loadEnd :: EventName XMLHttpRequest ProgressEvent loadEnd = unsafeEventName (toJSString "loadend") -- | loadStart :: EventName XMLHttpRequest ProgressEvent loadStart = unsafeEventName (toJSString "loadstart") -- | progress :: EventName XMLHttpRequest XMLHttpRequestProgressEvent progress = unsafeEventName (toJSString "progress") -- | timeout :: EventName XMLHttpRequest ProgressEvent timeout = unsafeEventName (toJSString "timeout") -- | readyStateChange :: EventName XMLHttpRequest Event readyStateChange = unsafeEventName (toJSString "readystatechange") -- | setTimeout :: (MonadDOM m) => XMLHttpRequest -> Word -> m () setTimeout self val = liftDOM (self ^. jss "timeout" (toJSVal val)) -- | getTimeout :: (MonadDOM m) => XMLHttpRequest -> m Word getTimeout self = liftDOM (round <$> ((self ^. js "timeout") >>= valToNumber)) -- | getReadyState :: (MonadDOM m) => XMLHttpRequest -> m Word getReadyState self = liftDOM (round <$> ((self ^. js "readyState") >>= valToNumber)) -- | setWithCredentials :: (MonadDOM m) => XMLHttpRequest -> Bool -> m () setWithCredentials self val = liftDOM (self ^. jss "withCredentials" (toJSVal val)) -- | getWithCredentials :: (MonadDOM m) => XMLHttpRequest -> m Bool getWithCredentials self = liftDOM ((self ^. js "withCredentials") >>= valToBool) -- | getUpload :: (MonadDOM m) => XMLHttpRequest -> m (Maybe XMLHttpRequestUpload) getUpload self = liftDOM ((self ^. js "upload") >>= fromJSVal) -- | getUploadUnsafe :: (MonadDOM m, HasCallStack) => XMLHttpRequest -> m XMLHttpRequestUpload getUploadUnsafe self = liftDOM (((self ^. js "upload") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getUploadUnchecked :: (MonadDOM m) => XMLHttpRequest -> m XMLHttpRequestUpload getUploadUnchecked self = liftDOM ((self ^. js "upload") >>= fromJSValUnchecked) -- | getResponseText :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m (Maybe result) getResponseText self = liftDOM ((self ^. js "responseText") >>= fromMaybeJSString) -- | getResponseTextUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => XMLHttpRequest -> m result getResponseTextUnsafe self = liftDOM (((self ^. js "responseText") >>= fromMaybeJSString) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseTextUnchecked :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result getResponseTextUnchecked self = liftDOM ((self ^. js "responseText") >>= fromJSValUnchecked) -- | getResponseXML :: (MonadDOM m) => XMLHttpRequest -> m (Maybe Document) getResponseXML self = liftDOM ((self ^. js "responseXML") >>= fromJSVal) -- | getResponseXMLUnsafe :: (MonadDOM m, HasCallStack) => XMLHttpRequest -> m Document getResponseXMLUnsafe self = liftDOM (((self ^. js "responseXML") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseXMLUnchecked :: (MonadDOM m) => XMLHttpRequest -> m Document getResponseXMLUnchecked self = liftDOM ((self ^. js "responseXML") >>= fromJSValUnchecked) -- | setResponseType :: (MonadDOM m) => XMLHttpRequest -> XMLHttpRequestResponseType -> m () setResponseType self val = liftDOM (self ^. jss "responseType" (toJSVal val)) -- | getResponseType :: (MonadDOM m) => XMLHttpRequest -> m XMLHttpRequestResponseType getResponseType self = liftDOM ((self ^. js "responseType") >>= fromJSValUnchecked) -- | getResponse :: (MonadDOM m) => XMLHttpRequest -> m (Maybe GObject) getResponse self = liftDOM ((self ^. js "response") >>= fromJSVal) -- | getResponseUnsafe :: (MonadDOM m, HasCallStack) => XMLHttpRequest -> m GObject getResponseUnsafe self = liftDOM (((self ^. js "response") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getResponseUnchecked :: (MonadDOM m) => XMLHttpRequest -> m GObject getResponseUnchecked self = liftDOM ((self ^. js "response") >>= fromJSValUnchecked) -- | getStatus :: (MonadDOM m) => XMLHttpRequest -> m Word getStatus self = liftDOM (round <$> ((self ^. js "status") >>= valToNumber)) -- | getStatusText :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result getStatusText self = liftDOM ((self ^. js "statusText") >>= fromJSValUnchecked) -- | getResponseURL :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result getResponseURL self = liftDOM ((self ^. js "responseURL") >>= fromJSValUnchecked)