packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/XMLHttpRequest.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from xhr (webref). Do not edit.
module JSDOM.Generated.XMLHttpRequest
       (newXMLHttpRequest, abort, getAllResponseHeaders, getAllResponseHeaders_, getResponseHeader, getResponseHeader_, getResponseHeaderUnsafe, getResponseHeaderUnchecked, openSimple, open, overrideMimeType, send, setRequestHeader, getReadyState, setTimeout, getTimeout, setWithCredentials, getWithCredentials, getUpload, getResponseURL, getStatus, getStatusText, setResponseType, getResponseType, getResponse, getResponseText, getResponseXML, getResponseXMLUnsafe, getResponseXMLUnchecked, pattern UNSENT, pattern OPENED, pattern HEADERS_RECEIVED, pattern LOADING, pattern DONE, readyStateChange, XMLHttpRequest(..), gTypeXMLHttpRequest)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/XMLHttpRequest MDN XMLHttpRequest. documentation>
newXMLHttpRequest :: (MonadDOM m) => m XMLHttpRequest
newXMLHttpRequest = liftDOM (((new (jsg "XMLHttpRequest") ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/abort MDN XMLHttpRequest.abort documentation>
abort :: (MonadDOM m) => XMLHttpRequest -> m ()
abort self = liftDOM (void (self ^. jsf "abort" ()))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders MDN XMLHttpRequest.getAllResponseHeaders documentation>
getAllResponseHeaders :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result
getAllResponseHeaders self = liftDOM (((self ^. jsf "getAllResponseHeaders" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders MDN XMLHttpRequest.getAllResponseHeaders documentation>
getAllResponseHeaders_ :: (MonadDOM m) => XMLHttpRequest -> m ()
getAllResponseHeaders_ self = liftDOM (void (self ^. jsf "getAllResponseHeaders" ()))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader MDN XMLHttpRequest.getResponseHeader documentation>
getResponseHeader :: (MonadDOM m, ToJSString name, FromJSString result) => XMLHttpRequest -> name -> m (Maybe result)
getResponseHeader self name = liftDOM (((self ^. jsf "getResponseHeader" [toJSVal name]) >>= fromMaybeJSString))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader MDN XMLHttpRequest.getResponseHeader documentation>
getResponseHeader_ :: (MonadDOM m, ToJSString name) => XMLHttpRequest -> name -> m ()
getResponseHeader_ self name = liftDOM (void (self ^. jsf "getResponseHeader" [toJSVal name]))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader MDN XMLHttpRequest.getResponseHeader documentation>
getResponseHeaderUnsafe :: (MonadDOM m, ToJSString name, HasCallStack, FromJSString result) => XMLHttpRequest -> name -> m result
getResponseHeaderUnsafe self name = liftDOM ((((self ^. jsf "getResponseHeader" [toJSVal name]) >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader MDN XMLHttpRequest.getResponseHeader documentation>
getResponseHeaderUnchecked :: (MonadDOM m, ToJSString name, FromJSString result) => XMLHttpRequest -> name -> m result
getResponseHeaderUnchecked self name = liftDOM (((self ^. jsf "getResponseHeader" [toJSVal name]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open MDN XMLHttpRequest.open documentation>
openSimple :: (MonadDOM m, ToJSString method, ToJSString url) => XMLHttpRequest -> method -> url -> m ()
openSimple self method url = liftDOM (void (self ^. jsf "open" [toJSVal method, toJSVal url]))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open MDN XMLHttpRequest.open documentation>
open :: (MonadDOM m, ToJSString method, ToJSString url, ToJSString username, ToJSString password) => XMLHttpRequest -> method -> url -> Bool -> Maybe username -> Maybe password -> m ()
open self method url async username password = liftDOM (void (self ^. jsf "open" [toJSVal method, toJSVal url, toJSVal async, toJSVal username, toJSVal password]))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/overrideMimeType MDN XMLHttpRequest.overrideMimeType documentation>
overrideMimeType :: (MonadDOM m, ToJSString mime) => XMLHttpRequest -> mime -> m ()
overrideMimeType self mime = liftDOM (void (self ^. jsf "overrideMimeType" [toJSVal mime]))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send MDN XMLHttpRequest.send documentation>
send :: (MonadDOM m, IsDocumentOrXMLHttpRequestBodyInit body) => XMLHttpRequest -> Maybe body -> m ()
send self body = liftDOM (void (self ^. jsf "send" [toJSVal body]))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/setRequestHeader MDN XMLHttpRequest.setRequestHeader documentation>
setRequestHeader :: (MonadDOM m, ToJSString name, ToJSString value) => XMLHttpRequest -> name -> value -> m ()
setRequestHeader self name value = liftDOM (void (self ^. jsf "setRequestHeader" [toJSVal name, toJSVal value]))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState MDN XMLHttpRequest.readyState documentation>
getReadyState :: (MonadDOM m) => XMLHttpRequest -> m Word
getReadyState self = liftDOM ((P.round <$> ((self ^. js "readyState") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout MDN XMLHttpRequest.timeout documentation>
setTimeout :: (MonadDOM m) => XMLHttpRequest -> Word -> m ()
setTimeout self val = liftDOM (void (self ^. jss "timeout" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout MDN XMLHttpRequest.timeout documentation>
getTimeout :: (MonadDOM m) => XMLHttpRequest -> m Word
getTimeout self = liftDOM ((P.round <$> ((self ^. js "timeout") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials MDN XMLHttpRequest.withCredentials documentation>
setWithCredentials :: (MonadDOM m) => XMLHttpRequest -> Bool -> m ()
setWithCredentials self val = liftDOM (void (self ^. jss "withCredentials" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials MDN XMLHttpRequest.withCredentials documentation>
getWithCredentials :: (MonadDOM m) => XMLHttpRequest -> m Bool
getWithCredentials self = liftDOM (((self ^. js "withCredentials") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/upload MDN XMLHttpRequest.upload documentation>
getUpload :: (MonadDOM m) => XMLHttpRequest -> m XMLHttpRequestUpload
getUpload self = liftDOM (((self ^. js "upload") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL MDN XMLHttpRequest.responseURL documentation>
getResponseURL :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result
getResponseURL self = liftDOM (((self ^. js "responseURL") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status MDN XMLHttpRequest.status documentation>
getStatus :: (MonadDOM m) => XMLHttpRequest -> m Word
getStatus self = liftDOM ((P.round <$> ((self ^. js "status") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText MDN XMLHttpRequest.statusText documentation>
getStatusText :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result
getStatusText self = liftDOM (((self ^. js "statusText") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType MDN XMLHttpRequest.responseType documentation>
setResponseType :: (MonadDOM m) => XMLHttpRequest -> XMLHttpRequestResponseType -> m ()
setResponseType self val = liftDOM (void (self ^. jss "responseType" (toJSVal val)))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType MDN XMLHttpRequest.responseType documentation>
getResponseType :: (MonadDOM m) => XMLHttpRequest -> m XMLHttpRequestResponseType
getResponseType self = liftDOM (((self ^. js "responseType") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response MDN XMLHttpRequest.response documentation>
getResponse :: (MonadDOM m) => XMLHttpRequest -> m JSVal
getResponse self = liftDOM (self ^. js "response")

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText MDN XMLHttpRequest.responseText documentation>
getResponseText :: (MonadDOM m, FromJSString result) => XMLHttpRequest -> m result
getResponseText self = liftDOM (((self ^. js "responseText") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseXML MDN XMLHttpRequest.responseXML documentation>
getResponseXML :: (MonadDOM m) => XMLHttpRequest -> m (Maybe Document)
getResponseXML self = liftDOM (((self ^. js "responseXML") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseXML MDN XMLHttpRequest.responseXML documentation>
getResponseXMLUnsafe :: (MonadDOM m, HasCallStack) => XMLHttpRequest -> m Document
getResponseXMLUnsafe self = liftDOM ((((self ^. js "responseXML") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseXML MDN XMLHttpRequest.responseXML documentation>
getResponseXMLUnchecked :: (MonadDOM m) => XMLHttpRequest -> m Document
getResponseXMLUnchecked self = liftDOM (((self ^. js "responseXML") >>= fromJSValUnchecked))

pattern UNSENT = 0

pattern OPENED = 1

pattern HEADERS_RECEIVED = 2

pattern LOADING = 3

pattern DONE = 4

-- | <https://xhr.spec.whatwg.org/#handler-xhr-onreadystatechange readystatechange event>
readyStateChange :: EventName XMLHttpRequest Event
readyStateChange = unsafeEventNameAsync (toJSString "readystatechange")