Skip to content

Commit b9c4c3b

Browse files
committed
solga-client-ghcjs: allow users to use generate relative URLs
1 parent 2a0b6fd commit b9c4c3b

File tree

1 file changed

+8
-1
lines changed
  • solga-client-ghcjs/src/Solga/Client

1 file changed

+8
-1
lines changed

solga-client-ghcjs/src/Solga/Client/GHCJS.hs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module Solga.Client.GHCJS
3333
, WithData(..)
3434
, GetResponse(..)
3535
, Request(..)
36+
, RequestUriType(..)
3637
, Response(..)
3738
, Header
3839
, XHRError(..)
@@ -81,9 +82,13 @@ import qualified JSDOM.Generated.XMLHttpRequest as DOM.XMLHttpRequest
8182

8283
type Header = (Text, Text)
8384

85+
data RequestUriType = RUTAbsolute | RUTRelative
86+
deriving (Eq, Show)
87+
8488
data Request = forall body. (DOM.IsXMLHttpRequestBody body) => Request
8589
{ reqMethod :: Text
8690
, reqSegments :: DList Text
91+
, reqUriType :: RequestUriType
8792
, reqQuery :: DList (Text, Maybe Text)
8893
, reqUser :: Maybe Text
8994
, reqPassword :: Maybe Text
@@ -192,7 +197,9 @@ requestToUri :: Request -> DOM.JSM Text
192197
requestToUri Request{..} = do
193198
#if defined(ghcjs_HOST_OS)
194199
liftIO $ js_encodeURI $
195-
"/" <>
200+
(case reqUriType of
201+
RUTAbsolute -> "/"
202+
RUTRelative -> "") <>
196203
T.intercalate "/" (DList.toList reqSegments) <>
197204
case DList.toList reqQuery of
198205
[] -> ""

0 commit comments

Comments
 (0)