module Web.Spock.Internal.Core
( SpockAllT
, spockAllT
, middleware
, hookRoute
, subcomponent
)
where
import Web.Spock.Internal.Wire
import Control.Monad.Error
import Prelude hiding (head)
import Web.Routing.AbstractRouter
import qualified Network.Wai.Handler.Warp as Warp
spockAllT :: (MonadIO m, AbstractRouter r, RouteAppliedAction r ~ ActionT m ())
=> r
-> Warp.Port
-> (forall a. m a -> IO a)
-> SpockAllT r m ()
-> IO ()
spockAllT registryIf port liftSpock routeDefs =
do spockApp <- buildApp registryIf liftSpock routeDefs
putStrLn $ "Spock is up and running on port " ++ show port
Warp.run port spockApp