File tree Expand file tree Collapse file tree 5 files changed +31
-3
lines changed
solga-client-ghcjs/src/Solga/Client Expand file tree Collapse file tree 5 files changed +31
-3
lines changed Original file line number Diff line number Diff line change 2424{-# LANGUAGE DeriveTraversable #-}
2525{-# LANGUAGE NamedFieldPuns #-}
2626{-# LANGUAGE CPP #-}
27+ {-# LANGUAGE EmptyCase #-}
2728module Solga.Client.GHCJS
2829 ( Client (.. )
2930 , SomeRequestData (.. )
@@ -36,6 +37,7 @@ module Solga.Client.GHCJS
3637 , Response (.. )
3738 , Header
3839 , XHRError (.. )
40+ , HiddenRequestData
3941 ) where
4042
4143import Data.Kind
@@ -126,6 +128,12 @@ instance (Client next) => Client (End next) where
126128 type RequestData (End next ) = RequestData next
127129 performRequest _p req perf = performRequest (Proxy @ next ) req perf
128130
131+ data HiddenRequestData a
132+
133+ instance Client (Hidden next ) where
134+ type RequestData (Hidden next ) = HiddenRequestData
135+ performRequest _p _req perf = case perf of {}
136+
129137addSegment :: Request -> Text -> Request
130138addSegment req seg = req{reqSegments = reqSegments req <> DList. singleton seg}
131139
Original file line number Diff line number Diff line change 1717{-# LANGUAGE DefaultSignatures #-}
1818{-# LANGUAGE FlexibleContexts #-}
1919{-# LANGUAGE UndecidableInstances #-}
20+ {-# LANGUAGE EmptyCase #-}
2021module Solga.Client
2122 ( Client (.. )
2223 , SomeRequestData (.. )
@@ -25,6 +26,7 @@ module Solga.Client
2526 , ToSegment (.. )
2627 , WithData (.. )
2728 , GetResponse (.. )
29+ , HiddenRequestData
2830 ) where
2931
3032import Data.Kind
@@ -78,6 +80,12 @@ instance (Client next) => Client (End next) where
7880 type RequestData (End next ) = RequestData next
7981 performRequest _p mgr req perf = performRequest (Proxy @ next ) mgr req perf
8082
83+ data HiddenRequestData a
84+
85+ instance Client (Hidden next ) where
86+ type RequestData (Hidden next ) = HiddenRequestData
87+ performRequest _p _mgr _req perf = case perf of {}
88+
8189addSegment :: Http. Request -> Text -> Http. Request
8290addSegment req segtxt = req
8391 { Http. path = if BS. null (Http. path req) || BSC8. last (Http. path req) == ' /'
Original file line number Diff line number Diff line change @@ -42,6 +42,7 @@ module Solga.Core
4242 , (:<|>) (.. )
4343 , RedirectOnTrailingSlash (.. )
4444 , WithReferer (.. )
45+ , Hidden (.. )
4546 -- * FromSegment
4647 , FromSegment (.. )
4748 ) where
@@ -165,4 +166,8 @@ instance FromSegment JSString where
165166
166167newtype RedirectOnTrailingSlash next = RedirectOnTrailingSlash { unRedirectOnTrailingSlash :: next }
167168
168- newtype WithReferer next = WithReferer { withRefererNext :: Maybe ByteString -> next }
169+ newtype WithReferer next = WithReferer { withRefererNext :: Maybe ByteString -> next }
170+
171+ -- | To hide from client libraries
172+ newtype Hidden next = Hidden { hiddenNext :: next }
173+
Original file line number Diff line number Diff line change @@ -108,6 +108,11 @@ instance Router next => Router (End next) where
108108 [] -> tryRouteNext endNext req
109109 _ -> Nothing
110110
111+ instance Router next => Router (Hidden next ) where
112+ tryRoute req = case Wai. pathInfo req of
113+ [] -> tryRouteNext hiddenNext req
114+ _ -> Nothing
115+
111116instance (KnownSymbol seg , Router next ) => Router (Seg seg next ) where
112117 tryRoute req = case Wai. pathInfo req of
113118 s : segs | Text. unpack s == symbolVal (Proxy :: Proxy seg ) ->
@@ -221,6 +226,10 @@ instance Abbreviated next => Abbreviated (End next) where
221226 type Brief (End next ) = Brief next
222227 brief = End . brief
223228
229+ instance Abbreviated next => Abbreviated (Hidden next ) where
230+ type Brief (Hidden next ) = Brief next
231+ brief = Hidden . brief
232+
224233instance Abbreviated next => Abbreviated (Seg seg next ) where
225234 type Brief (Seg seg next ) = Brief next
226235 brief = Seg . brief
Original file line number Diff line number Diff line change @@ -11,7 +11,6 @@ packages:
1111- ' solga-router'
1212- ' solga-client'
1313- ' solga-client-ghcjs'
14- - ' solga-typescript'
1514
1615# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
1716extra-deps :
@@ -20,7 +19,6 @@ extra-deps:
2019- jsaddle-dom-0.9.4.0
2120- jsaddle-0.9.7.0
2221- ref-tf-0.4.0.2
23- - aeson-typescript-0.2.0.0
2422
2523# Override default flag values for local packages and extra-deps
2624flags : {}
You can’t perform that action at this time.
0 commit comments