{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.XMLHttpRequest
       (newXMLHttpRequest, openSimple, open, setRequestHeader, send,
        abort, getResponseHeader, getResponseHeader_,
        getResponseHeaderUnsafe, getResponseHeaderUnchecked,
        getAllResponseHeaders, getAllResponseHeaders_, overrideMimeType,
        pattern UNSENT, pattern OPENED, pattern HEADERS_RECEIVED,
        pattern LOADING, pattern DONE, readyStateChange, getReadyState,
        setTimeout, getTimeout, setWithCredentials, getWithCredentials,
        getUpload, getResponseURL, getStatus, getStatusText,
        setResponseType, getResponseType, getResponse, getResponseText,
        getResponseTextUnsafe, getResponseTextUnchecked, getResponseXML,
        getResponseXMLUnsafe, getResponseXMLUnchecked, 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 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/XMLHttpRequest Mozilla XMLHttpRequest documentation> 
newXMLHttpRequest :: (MonadDOM m) => m XMLHttpRequest
newXMLHttpRequest :: m XMLHttpRequest
newXMLHttpRequest
  = DOM XMLHttpRequest -> m XMLHttpRequest
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSVal -> XMLHttpRequest
XMLHttpRequest (JSVal -> XMLHttpRequest) -> JSM JSVal -> DOM XMLHttpRequest
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> JSM JSVal -> () -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new ([Char] -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg [Char]
"XMLHttpRequest") ())

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.open Mozilla XMLHttpRequest.open documentation> 
open ::
     (MonadDOM m, ToJSString method, ToJSString url, ToJSString user,
      ToJSString password) =>
       XMLHttpRequest ->
         method -> url -> Bool -> Maybe user -> Maybe password -> m ()
open :: XMLHttpRequest
-> method -> url -> Bool -> Maybe user -> Maybe password -> m ()
open XMLHttpRequest
self method
method url
url Bool
async Maybe user
user Maybe password
password
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"open"
            [method -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal method
method, url -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal url
url, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
async, Maybe user -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe user
user,
             Maybe password -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe password
password]))

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.abort Mozilla XMLHttpRequest.abort documentation> 
abort :: (MonadDOM m) => XMLHttpRequest -> m ()
abort :: XMLHttpRequest -> m ()
abort XMLHttpRequest
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 (XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
getResponseHeader ::
                  (MonadDOM m, ToJSString name, FromJSString result) =>
                    XMLHttpRequest -> name -> m (Maybe result)
getResponseHeader :: XMLHttpRequest -> name -> m (Maybe result)
getResponseHeader XMLHttpRequest
self name
name
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"getResponseHeader" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name]) JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
getResponseHeader_ ::
                   (MonadDOM m, ToJSString name) => XMLHttpRequest -> name -> m ()
getResponseHeader_ :: XMLHttpRequest -> name -> m ()
getResponseHeader_ XMLHttpRequest
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 (XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"getResponseHeader" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
getResponseHeaderUnsafe ::
                        (MonadDOM m, ToJSString name, HasCallStack, FromJSString result) =>
                          XMLHttpRequest -> name -> m result
getResponseHeaderUnsafe :: XMLHttpRequest -> name -> m result
getResponseHeaderUnsafe XMLHttpRequest
self name
name
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"getResponseHeader" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name]) JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
          JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)
         JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getResponseHeader Mozilla XMLHttpRequest.getResponseHeader documentation> 
getResponseHeaderUnchecked ::
                           (MonadDOM m, ToJSString name, FromJSString result) =>
                             XMLHttpRequest -> name -> m result
getResponseHeaderUnchecked :: XMLHttpRequest -> name -> m result
getResponseHeaderUnchecked XMLHttpRequest
self name
name
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"getResponseHeader" [name -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal name
name]) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.getAllResponseHeaders Mozilla XMLHttpRequest.getAllResponseHeaders documentation> 
getAllResponseHeaders ::
                      (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result
getAllResponseHeaders :: XMLHttpRequest -> m result
getAllResponseHeaders XMLHttpRequest
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"getAllResponseHeaders" ()) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.overrideMimeType Mozilla XMLHttpRequest.overrideMimeType documentation> 
overrideMimeType ::
                 (MonadDOM m, ToJSString mime) => XMLHttpRequest -> mime -> m ()
overrideMimeType :: XMLHttpRequest -> mime -> m ()
overrideMimeType XMLHttpRequest
self mime
mime
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (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]
"overrideMimeType" [mime -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal mime
mime]))
pattern $bUNSENT :: a
$mUNSENT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
UNSENT = 0
pattern $bOPENED :: a
$mOPENED :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
OPENED = 1
pattern $bHEADERS_RECEIVED :: a
$mHEADERS_RECEIVED :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
HEADERS_RECEIVED = 2
pattern $bLOADING :: a
$mLOADING :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
LOADING = 3
pattern $bDONE :: a
$mDONE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
DONE = 4

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.onreadystatechange Mozilla XMLHttpRequest.onreadystatechange documentation> 
readyStateChange :: EventName XMLHttpRequest Event
readyStateChange :: EventName XMLHttpRequest Event
readyStateChange
  = DOMString -> EventName XMLHttpRequest Event
forall t e. DOMString -> EventName t e
unsafeEventNameAsync ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"readystatechange")

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.readyState Mozilla XMLHttpRequest.readyState documentation> 
getReadyState :: (MonadDOM m) => XMLHttpRequest -> m Word
getReadyState :: XMLHttpRequest -> m Word
getReadyState XMLHttpRequest
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"readyState") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.timeout Mozilla XMLHttpRequest.timeout documentation> 
setTimeout :: (MonadDOM m) => XMLHttpRequest -> Word -> m ()
setTimeout :: XMLHttpRequest -> Word -> m ()
setTimeout XMLHttpRequest
self Word
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (XMLHttpRequest
self XMLHttpRequest
-> Getting (DOM ()) XMLHttpRequest (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"timeout" (Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.timeout Mozilla XMLHttpRequest.timeout documentation> 
getTimeout :: (MonadDOM m) => XMLHttpRequest -> m Word
getTimeout :: XMLHttpRequest -> m Word
getTimeout XMLHttpRequest
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"timeout") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.withCredentials Mozilla XMLHttpRequest.withCredentials documentation> 
setWithCredentials ::
                   (MonadDOM m) => XMLHttpRequest -> Bool -> m ()
setWithCredentials :: XMLHttpRequest -> Bool -> m ()
setWithCredentials XMLHttpRequest
self Bool
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (XMLHttpRequest
self XMLHttpRequest
-> Getting (DOM ()) XMLHttpRequest (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"withCredentials" (Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.withCredentials Mozilla XMLHttpRequest.withCredentials documentation> 
getWithCredentials :: (MonadDOM m) => XMLHttpRequest -> m Bool
getWithCredentials :: XMLHttpRequest -> m Bool
getWithCredentials XMLHttpRequest
self
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"withCredentials") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.status Mozilla XMLHttpRequest.status documentation> 
getStatus :: (MonadDOM m) => XMLHttpRequest -> m Word
getStatus :: XMLHttpRequest -> m Word
getStatus XMLHttpRequest
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"status") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseType Mozilla XMLHttpRequest.responseType documentation> 
setResponseType ::
                (MonadDOM m) =>
                  XMLHttpRequest -> XMLHttpRequestResponseType -> m ()
setResponseType :: XMLHttpRequest -> XMLHttpRequestResponseType -> m ()
setResponseType XMLHttpRequest
self XMLHttpRequestResponseType
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (XMLHttpRequest
self XMLHttpRequest
-> Getting (DOM ()) XMLHttpRequest (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"responseType" (XMLHttpRequestResponseType -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal XMLHttpRequestResponseType
val))

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseText Mozilla XMLHttpRequest.responseText documentation> 
getResponseText ::
                (MonadDOM m, FromJSString result) =>
                  XMLHttpRequest -> m (Maybe result)
getResponseText :: XMLHttpRequest -> m (Maybe result)
getResponseText XMLHttpRequest
self
  = DOM (Maybe result) -> m (Maybe result)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"responseText") JSM JSVal -> (JSVal -> DOM (Maybe result)) -> DOM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseText Mozilla XMLHttpRequest.responseText documentation> 
getResponseTextUnsafe ::
                      (MonadDOM m, HasCallStack, FromJSString result) =>
                        XMLHttpRequest -> m result
getResponseTextUnsafe :: XMLHttpRequest -> m result
getResponseTextUnsafe XMLHttpRequest
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"responseText") JSM JSVal -> (JSVal -> JSM (Maybe result)) -> JSM (Maybe result)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM (Maybe result)
forall a. FromJSString a => JSVal -> JSM (Maybe a)
fromMaybeJSString) JSM (Maybe result) -> (Maybe result -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM result -> (result -> DOM result) -> Maybe result -> DOM result
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM result
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") result -> DOM result
forall (m :: * -> *) a. Monad m => a -> m a
return)

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

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest.responseXML Mozilla XMLHttpRequest.responseXML documentation> 
getResponseXMLUnsafe ::
                     (MonadDOM m, HasCallStack) => XMLHttpRequest -> m Document
getResponseXMLUnsafe :: XMLHttpRequest -> m Document
getResponseXMLUnsafe XMLHttpRequest
self
  = DOM Document -> m Document
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((XMLHttpRequest
self XMLHttpRequest
-> Getting (JSM JSVal) XMLHttpRequest (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter XMLHttpRequest (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"responseXML") JSM JSVal
-> (JSVal -> DOM (Maybe Document)) -> DOM (Maybe Document)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Document)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Document)
-> (Maybe Document -> DOM Document) -> DOM Document
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         DOM Document
-> (Document -> DOM Document) -> Maybe Document -> DOM Document
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM Document
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Document -> DOM Document
forall (m :: * -> *) a. Monad m => a -> m a
return)

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