{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.Response
       (error, error_, redirect, redirect_, arrayBuffer, arrayBuffer_,
        blob, blob_, formData, formData_, json, json_, text, text_, clone,
        clone_, getType, getUrl, getRedirected, getStatus, getOk,
        getStatusText, getHeaders, getBody, getBodyUnsafe,
        getBodyUnchecked, getBodyUsed, Response(..), gTypeResponse)
       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/Response.error Mozilla Response.error documentation> 
error :: (MonadDOM m) => m Response
error :: forall (m :: * -> *). MonadDOM m => m Response
error
  = DOM Response -> m Response
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"Response") JSM JSVal
-> Getting (JSM JSVal) (JSM JSVal) (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"error" ()) JSM JSVal -> (JSVal -> DOM Response) -> DOM Response
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Response
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.error Mozilla Response.error documentation> 
error_ :: (MonadDOM m) => m ()
error_ :: forall (m :: * -> *). MonadDOM m => m ()
error_ = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void ((String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"Response") JSM JSVal
-> Getting (JSM JSVal) (JSM JSVal) (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"error" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.redirect Mozilla Response.redirect documentation> 
redirect ::
         (MonadDOM m, ToJSString url) => url -> Maybe Word -> m Response
redirect :: forall (m :: * -> *) url.
(MonadDOM m, ToJSString url) =>
url -> Maybe Word -> m Response
redirect url
url Maybe Word
status
  = DOM Response -> m Response
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"Response") JSM JSVal
-> Getting (JSM JSVal) (JSM JSVal) (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"redirect" [url -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal url
url, Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
status])
         JSM JSVal -> (JSVal -> DOM Response) -> DOM Response
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Response
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.redirect Mozilla Response.redirect documentation> 
redirect_ ::
          (MonadDOM m, ToJSString url) => url -> Maybe Word -> m ()
redirect_ :: forall (m :: * -> *) url.
(MonadDOM m, ToJSString url) =>
url -> Maybe Word -> m ()
redirect_ url
url Maybe Word
status
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         ((String -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg String
"Response") JSM JSVal
-> Getting (JSM JSVal) (JSM JSVal) (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"redirect" [url -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal url
url, Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
status]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.arrayBuffer Mozilla Response.arrayBuffer documentation> 
arrayBuffer :: (MonadDOM m) => Response -> m ArrayBuffer
arrayBuffer :: forall (m :: * -> *). MonadDOM m => Response -> m ArrayBuffer
arrayBuffer Response
self
  = DOM ArrayBuffer -> m ArrayBuffer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"arrayBuffer" ()) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise) JSM JSVal -> (JSVal -> DOM ArrayBuffer) -> DOM ArrayBuffer
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM ArrayBuffer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.arrayBuffer Mozilla Response.arrayBuffer documentation> 
arrayBuffer_ :: (MonadDOM m) => Response -> m ()
arrayBuffer_ :: forall (m :: * -> *). MonadDOM m => Response -> m ()
arrayBuffer_ Response
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 (Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"arrayBuffer" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.blob Mozilla Response.blob documentation> 
blob :: (MonadDOM m) => Response -> m Blob
blob :: forall (m :: * -> *). MonadDOM m => Response -> m Blob
blob Response
self
  = DOM Blob -> m Blob
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"blob" ()) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise) JSM JSVal -> (JSVal -> DOM Blob) -> DOM Blob
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Blob
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.blob Mozilla Response.blob documentation> 
blob_ :: (MonadDOM m) => Response -> m ()
blob_ :: forall (m :: * -> *). MonadDOM m => Response -> m ()
blob_ Response
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 (Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"blob" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.formData Mozilla Response.formData documentation> 
formData :: (MonadDOM m) => Response -> m Blob
formData :: forall (m :: * -> *). MonadDOM m => Response -> m Blob
formData Response
self
  = DOM Blob -> m Blob
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"formData" ()) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise) JSM JSVal -> (JSVal -> DOM Blob) -> DOM Blob
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
         JSVal -> DOM Blob
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.formData Mozilla Response.formData documentation> 
formData_ :: (MonadDOM m) => Response -> m ()
formData_ :: forall (m :: * -> *). MonadDOM m => Response -> m ()
formData_ Response
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 (Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"formData" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.json Mozilla Response.json documentation> 
json :: (MonadDOM m) => Response -> m JSVal
json :: forall (m :: * -> *). MonadDOM m => Response -> m JSVal
json Response
self
  = JSM JSVal -> m JSVal
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"json" ()) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.json Mozilla Response.json documentation> 
json_ :: (MonadDOM m) => Response -> m ()
json_ :: forall (m :: * -> *). MonadDOM m => Response -> m ()
json_ Response
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 (Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"json" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.text Mozilla Response.text documentation> 
text :: (MonadDOM m, FromJSString result) => Response -> m result
text :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
Response -> m result
text Response
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"text" ()) JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
readPromise) JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.text Mozilla Response.text documentation> 
text_ :: (MonadDOM m) => Response -> m ()
text_ :: forall (m :: * -> *). MonadDOM m => Response -> m ()
text_ Response
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 (Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"text" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.clone Mozilla Response.clone documentation> 
clone :: (MonadDOM m) => Response -> m Response
clone :: forall (m :: * -> *). MonadDOM m => Response -> m Response
clone Response
self
  = DOM Response -> m Response
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"clone" ()) JSM JSVal -> (JSVal -> DOM Response) -> DOM Response
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Response
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.clone Mozilla Response.clone documentation> 
clone_ :: (MonadDOM m) => Response -> m ()
clone_ :: forall (m :: * -> *). MonadDOM m => Response -> m ()
clone_ Response
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 (Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"clone" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.type Mozilla Response.type documentation> 
getType :: (MonadDOM m) => Response -> m ResponseType
getType :: forall (m :: * -> *). MonadDOM m => Response -> m ResponseType
getType Response
self = DOM ResponseType -> m ResponseType
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"type") JSM JSVal -> (JSVal -> DOM ResponseType) -> DOM ResponseType
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ResponseType
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.url Mozilla Response.url documentation> 
getUrl :: (MonadDOM m, FromJSString result) => Response -> m result
getUrl :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
Response -> m result
getUrl Response
self = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"url") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.redirected Mozilla Response.redirected documentation> 
getRedirected :: (MonadDOM m) => Response -> m Bool
getRedirected :: forall (m :: * -> *). MonadDOM m => Response -> m Bool
getRedirected Response
self
  = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"redirected") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.status Mozilla Response.status documentation> 
getStatus :: (MonadDOM m) => Response -> m Word
getStatus :: forall (m :: * -> *). MonadDOM m => Response -> m Word
getStatus Response
self
  = DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word
forall b. Integral b => Double -> b
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
<$> ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"status") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.ok Mozilla Response.ok documentation> 
getOk :: (MonadDOM m) => Response -> m Bool
getOk :: forall (m :: * -> *). MonadDOM m => Response -> m Bool
getOk Response
self = DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"ok") JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.statusText Mozilla Response.statusText documentation> 
getStatusText ::
              (MonadDOM m, FromJSString result) => Response -> m result
getStatusText :: forall (m :: * -> *) result.
(MonadDOM m, FromJSString result) =>
Response -> m result
getStatusText Response
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"statusText") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall a b. JSM a -> (a -> JSM b) -> JSM b
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/Response.headers Mozilla Response.headers documentation> 
getHeaders :: (MonadDOM m) => Response -> m Headers
getHeaders :: forall (m :: * -> *). MonadDOM m => Response -> m Headers
getHeaders Response
self
  = DOM Headers -> m Headers
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"headers") JSM JSVal -> (JSVal -> DOM Headers) -> DOM Headers
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Headers
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.body Mozilla Response.body documentation> 
getBody :: (MonadDOM m) => Response -> m (Maybe ReadableStream)
getBody :: forall (m :: * -> *).
MonadDOM m =>
Response -> m (Maybe ReadableStream)
getBody Response
self = DOM (Maybe ReadableStream) -> m (Maybe ReadableStream)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"body") JSM JSVal
-> (JSVal -> DOM (Maybe ReadableStream))
-> DOM (Maybe ReadableStream)
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe ReadableStream)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)

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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/Response.body Mozilla Response.body documentation> 
getBodyUnchecked :: (MonadDOM m) => Response -> m ReadableStream
getBodyUnchecked :: forall (m :: * -> *). MonadDOM m => Response -> m ReadableStream
getBodyUnchecked Response
self
  = DOM ReadableStream -> m ReadableStream
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((Response
self Response -> Getting (JSM JSVal) Response (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> IndexPreservingGetter Response (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"body") JSM JSVal -> (JSVal -> DOM ReadableStream) -> DOM ReadableStream
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM ReadableStream
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

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