magicbane-0.4.0: library/Magicbane.hs
{-# LANGUAGE Trustworthy, UnicodeSyntax #-}
-- | A Dropwizard-inspired web framework that integrates
-- Servant, monad-metrics/EKG, monad-logger/fast-logger, and other useful libraries
-- to provide a smooth web service development experience.
--
-- This module provides all the stuff you need for an application:
-- - reexports from all the modules below, including orphan instances from Magicbane.Has
-- - orphan instances for RIO
-- - reexports from various utility packages
-- - a basic example context for simple apps
module Magicbane (
module X
, module Magicbane
) where
import RIO.Orphans as X ()
import Control.Error.Util as X hiding ((??), err, errLn, tryIO, handleExceptT, syncIO, bool)
import Control.Monad.Trans.Maybe as X hiding (liftListen, liftPass, liftCallCC)
import UnliftIO.Exception as X hiding (Handler)
import UnliftIO.Concurrent as X
import Data.List.Split as X (splitOn)
import Data.String.Conversions as X hiding ((<>))
import Data.String.Conversions.Monomorphic as X hiding (fromString)
import Data.Aeson as X
import Data.Aeson.QQ as X
import Text.RawString.QQ as X
import Network.URI as X
import Network.HTTP.Link as X hiding (Link)
import Network.HTTP.Types as X hiding (Header)
import Network.Wai as X (Application, Middleware)
import Network.Wai.Cli as X hiding (port)
import Magicbane.App as X hiding (Or)
import Magicbane.Config as X
import Magicbane.Has as X
import Magicbane.Logging as X
import Magicbane.Metrics as X
import Magicbane.Validation as X
import Magicbane.HTTPClient as X
import Magicbane.Util as X
type BasicContext = (ModHttpClient, ModLogger)
type BasicApp α = RIO BasicContext α
newBasicContext ∷ IO BasicContext
newBasicContext = do
http ← newHttpClient
(_, logg) ← newLogger (LogStdout defaultBufSize) simpleFormatter
return (http, logg)