{-# LANGUAGE DerivingVia #-} module Lib ( runBothServers, ) where import ClassyPrelude import Types.AppTypes import Types.ConnectionState (initConnectionsState) import Types.RoomsState (initRoomsState) import WebServer (runWebServer) import WebSocket (runWebSocketServer) runBothServers :: IO () runBothServers = do connectedClientsState <- initConnectionsState roomsState <- initRoomsState let env = Env { connectedClientsState = connectedClientsState, profile = Dev, roomsState = roomsState } _ <- concurrently (unApp runWebSocketServer env) (unApp runWebServer env) return ()