@@ -18,6 +18,7 @@ module Servant.JS.Internal
1818 , defReq
1919 , reqHeaders
2020 , HasForeign(..)
21+ , HasForeignType(..)
2122 , HeaderArg(..)
2223 , concatCase
2324 , snakeCase
@@ -31,7 +32,7 @@ module Servant.JS.Internal
3132 , Header
3233 ) where
3334
34−import Control.Lens ((^.))
35+import Control.Lens ((^.), _1)
3536import qualified Data.CharSet as Set
3637import qualified Data.CharSet.Unicode.Category as Set
3738import Data.Monoid
@@ -115,7 +116,7 @@ toValidFunctionName t =
115116 ]
116117
117118toJSHeader :: HeaderArg -> Text
118−toJSHeader (HeaderArg n) = toValidFunctionName ("header" <> n)
119+toJSHeader (HeaderArg n) = toValidFunctionName ("header" <> fst n)
119120toJSHeader (ReplaceHeaderArg n p)
120121 | pn `T.isPrefixOf` p = pv <> " + \"" <> rp <> "\""
121122 | pn `T.isSuffixOf` p = "\"" <> rp <> "\" + " <> pv
@@ -123,8 +124,8 @@ toJSHeader (ReplaceHeaderArg n p)
123124 <> "\""
124125 | otherwise = p
125126 where
126− pv = toValidFunctionName ("header" <> n)
127− pn = "{" <> n <> "}"
127+ pv = toValidFunctionName ("header" <> fst n)
128+ pn = "{" <> fst n <> "}"
128129 rp = T.replace pn "" p
129130
130131jsSegments :: [Segment] -> Text
@@ -138,7 +139,7 @@ segmentToStr (Segment st) notTheEnd =
138139
139140segmentTypeToStr :: SegmentType -> Text
140141segmentTypeToStr (Static s) = s
141−segmentTypeToStr (Cap s) = "' + encodeURIComponent(" <> s <> ") + '"
142+segmentTypeToStr (Cap s) = "' + encodeURIComponent(" <> fst s <> ") + '"
142143
143144jsGParams :: Text -> [QueryArg] -> Text
144145jsGParams _ [] = ""
@@ -160,4 +161,4 @@ paramToStr qarg notTheEnd =
160161 <> "[]=' + encodeURIComponent("
161162 <> name
162163 <> if notTheEnd then ") + '" else ")"
163− where name = qarg ^. argName
164+ where name = qarg ^. argName . _1