polysemy-http-0.1.0.0: lib/Polysemy/Http/Manager.hs
module Polysemy.Http.Manager where
import Network.HTTP.Client (newManager)
import qualified Network.HTTP.Client as HTTP (Manager)
import Network.HTTP.Client.TLS (mkManagerSettings)
import Polysemy.Http.Data.Manager (Manager(..))
interpretManagerWith ::
Member (Embed IO) r =>
HTTP.Manager ->
InterpreterFor Manager r
interpretManagerWith manager = do
interpret \ Get -> pure manager
{-# INLINE interpretManagerWith #-}
-- |Trivial interpreter with a globally shared 'Manager' instance.
interpretManager ::
Member (Embed IO) r =>
InterpreterFor Manager r
interpretManager sem = do
manager <- embed (newManager settings)
interpretManagerWith manager sem
where
settings =
mkManagerSettings def Nothing
{-# INLINE interpretManager #-}