generated from tpl/purs
fix: fetchWithDefaults
This commit is contained in:
parent
379c1a8e6b
commit
8dd63d93e8
@ -41,35 +41,35 @@ type OptionalFields =
|
|||||||
, credentials :: Credentials
|
, credentials :: Credentials
|
||||||
)
|
)
|
||||||
|
|
||||||
|
defaults :: Record OptionalFields
|
||||||
|
defaults =
|
||||||
|
{ body: BodyEmpty
|
||||||
|
, headers: mempty
|
||||||
|
, credentials: SameSiteCredentials
|
||||||
|
}
|
||||||
|
|
||||||
makeOptionalFields
|
makeOptionalFields
|
||||||
:: forall @x xm o
|
:: forall @x xm o
|
||||||
. Nub o OptionalFields
|
. Nub o OptionalFields
|
||||||
=> Union x OptionalFields o
|
=> Union x OptionalFields o
|
||||||
=> Union x xm OptionalFields
|
=> Union x xm OptionalFields
|
||||||
=> {|x}
|
=> Record OptionalFields
|
||||||
|
-> {|x}
|
||||||
-> Record OptionalFields
|
-> Record OptionalFields
|
||||||
makeOptionalFields x =
|
makeOptionalFields d x = Record.merge x d
|
||||||
let
|
|
||||||
default :: Record OptionalFields
|
|
||||||
default =
|
|
||||||
{ body: BodyEmpty
|
|
||||||
, headers: mempty
|
|
||||||
, credentials: SameSiteCredentials
|
|
||||||
}
|
|
||||||
in
|
|
||||||
Record.merge x default
|
|
||||||
|
|
||||||
fetch
|
fetchWithDefaults
|
||||||
:: forall x xm m o
|
:: forall x xm m o
|
||||||
. MonadAff m
|
. MonadAff m
|
||||||
=> Nub o OptionalFields
|
=> Nub o OptionalFields
|
||||||
=> Union x OptionalFields o
|
=> Union x OptionalFields o
|
||||||
=> Union x xm OptionalFields
|
=> Union x xm OptionalFields
|
||||||
=> Method
|
=> Record OptionalFields
|
||||||
|
-> Method
|
||||||
-> URL
|
-> URL
|
||||||
-> {|x}
|
-> {|x}
|
||||||
-> m Response
|
-> m Response
|
||||||
fetch method url x = do
|
fetchWithDefaults defaults' method url x =
|
||||||
let
|
let
|
||||||
methodStr = case method of
|
methodStr = case method of
|
||||||
Req.GET -> "GET"
|
Req.GET -> "GET"
|
||||||
@ -89,14 +89,26 @@ fetch method url x = do
|
|||||||
$ Record.modify (Proxy @"headers") (Object.fromFoldableWithIndex <<< unwrap)
|
$ Record.modify (Proxy @"headers") (Object.fromFoldableWithIndex <<< unwrap)
|
||||||
$ Record.insert (Proxy @"method") methodStr
|
$ Record.insert (Proxy @"method") methodStr
|
||||||
$ Record.insert (Proxy @"url") (URL.toString url)
|
$ Record.insert (Proxy @"url") (URL.toString url)
|
||||||
$ makeOptionalFields @x x
|
$ makeOptionalFields @x defaults' x
|
||||||
|
in do
|
||||||
|
bodyHeaders' <- (Object.fromFoldableWithIndex <<< unwrap) <$> bodyHeaders fields.body
|
||||||
|
bodyRaw <- Nullable.toNullable <$> bodyToRaw fields.body
|
||||||
|
let
|
||||||
|
fields' =
|
||||||
|
Record.modify (Proxy @"headers") (Object.union bodyHeaders')
|
||||||
|
$ Record.set (Proxy @"body") bodyRaw
|
||||||
|
$ fields
|
||||||
|
|
||||||
bodyHeaders' <- (Object.fromFoldableWithIndex <<< unwrap) <$> bodyHeaders fields.body
|
liftAff $ Promise.toAffE $ fetchImpl fields'
|
||||||
bodyRaw <- Nullable.toNullable <$> bodyToRaw fields.body
|
|
||||||
let
|
|
||||||
fields' =
|
|
||||||
Record.modify (Proxy @"headers") (Object.union bodyHeaders')
|
|
||||||
$ Record.set (Proxy @"body") bodyRaw
|
|
||||||
$ fields
|
|
||||||
|
|
||||||
liftAff $ Promise.toAffE $ fetchImpl fields'
|
fetch
|
||||||
|
:: forall x xm m o
|
||||||
|
. MonadAff m
|
||||||
|
=> Nub o OptionalFields
|
||||||
|
=> Union x OptionalFields o
|
||||||
|
=> Union x xm OptionalFields
|
||||||
|
=> Method
|
||||||
|
-> URL
|
||||||
|
-> {|x}
|
||||||
|
-> m Response
|
||||||
|
fetch = fetchWithDefaults defaults
|
||||||
|
Loading…
Reference in New Issue
Block a user