module Hack2.Handler.Warp
(
run
, runWithConfig
, runWithWarpSettings
, ServerConfig(..)
, hackAppToWaiApp
) where
import Prelude ()
import Air.Env hiding (def, Default)
import Hack2
import Data.Default (def, Default)
import qualified Network.Wai.Handler.Warp as Warp
import Hack2.Interface.Wai (hackAppToWaiApp)
data ServerConfig = ServerConfig
{
port :: Int
}
deriving (Show, Eq)
instance Default ServerConfig where
def = ServerConfig
{
port = 3000
}
runWithWarpSettings :: Warp.Settings -> Application -> IO ()
runWithWarpSettings setting app = do
Warp.runSettings setting (hackAppToWaiApp app)
runWithConfig :: ServerConfig -> Application -> IO ()
runWithConfig config app =
let setting = Warp.defaultSettings {Warp.settingsPort = config.port}
in
runWithWarpSettings setting app
run :: Application -> IO ()
run = runWithConfig def