{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
module Main where
import Servant.API.WebSocketConduit (WebSocketConduit)
import Data.Aeson (Value)
import Data.Conduit (Conduit)
import Data.Monoid ((<>))
import Network.Wai (Application)
import Network.Wai.Handler.Warp (run)
import Servant (Proxy (..), Server, serve)
import qualified Data.Conduit.List as CL
type API = WebSocketConduit Value Value
startApp :: IO ()
startApp = do
putStrLn "Starting server on http://localhost:8080"
run 8080 app
app :: Application
app = serve api server
api :: Proxy API
api = Proxy
server :: Server API
server = echo
echo :: Monad m => Conduit Value m Value
echo = CL.map id
main :: IO ()
main = startApp