@@ -5,7 +5,6 @@
55{-# LANGUAGE MultiParamTypeClasses #-}
66{-# LANGUAGE OverloadedStrings #-}
77{-# LANGUAGE TemplateHaskell #-}
8−{-# LANGUAGE TupleSections #-}
98module Reflex.Dom.Xhr
109 ( XMLHttpRequest
1110 , XhrRequest (..)
@@ -78,6 +77,7 @@ import Data.Default
7877import Data.Map (Map)
7978import qualified Data.Map as Map
8079import Data.Maybe
80+import qualified Data.Set as Set
8181import Data.Text (Text)
8282import qualified Data.Text as T
8383import Data.List
@@ -115,12 +115,12 @@ data XhrResponse
115115 deriving (Typeable)
116116
117117data XhrResponseHeaders =
118− OnlyHeaders [Text] -- ^ Parse a subset of headers from the XHR Response
118+ OnlyHeaders (Set.Set Text) -- ^ Parse a subset of headers from the XHR Response
119119 | AllHeaders -- ^ Parse all headers from the XHR Response
120120 deriving (Show, Read, Eq, Ord, Typeable)
121121
122122instance Default XhrResponseHeaders where
123− def = OnlyHeaders []
123+ def = OnlyHeaders mempty
124124
125125{-# DEPRECATED _xhrResponse_body "Use _xhrResponse_response or _xhrResponse_responseText instead." #-}
126126_xhrResponse_body :: XhrResponse -> Maybe Text
@@ -181,13 +181,13 @@ newXMLHttpRequestWithError req cb = do
181181 when (readyState == 4) $ do
182182 t <- if rt == Just XhrResponseType_Text || isNothing rt
183183 then liftIO $ xmlHttpRequestGetResponseText xhr
184− else return Nothing
184+ else return Nothing
185185 r <- liftIO $ xmlHttpRequestGetResponse xhr
186186 h <- case _xhrRequestConfig_responseHeaders c of
187187 AllHeaders -> liftIO $ parseAllHeadersString <$>
188188 xmlHttpRequestGetAllResponseHeaders xhr
189− OnlyHeaders xs -> liftIO $ Map.fromList <$> traverse
190− (\x -> (x,) <$> xmlHttpRequestGetResponseHeader xhr x) xs
189+ OnlyHeaders xs -> liftIO $ traverse (xmlHttpRequestGetResponseHeader xhr)
190+ (Map.fromSet id xs)
191191 _ <- liftIO $ cb $ Right
192192 XhrResponse { _xhrResponse_status = status
193193 , _xhrResponse_statusText = statusText