ps-simple-rest-service/src/Main.purs

30 lines
998 B
Plaintext

module Main where
import Prelude
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE)
import Control.Monad.Eff.Now (NOW)
import Data.Either (Either(..))
import Data.Set (toUnfoldable)
import Data.String (joinWith)
import Database.PostgreSQL as PG
import Node.Express.Types (EXPRESS)
import Node.Process (PROCESS)
import Node.Process as Process
import SimpleService.Config (readServerConfig)
import SimpleService.Logger as Log
import SimpleService.Server (runServer)
main :: forall eff. Eff ( console :: CONSOLE
, express :: EXPRESS
, postgreSQL :: PG.POSTGRESQL
, process :: PROCESS
, now :: NOW
| eff) Unit
main = readServerConfig >>= case _ of
Left missingKeys -> do
Log.error $ "Unable to start. Missing Env keys: " <> joinWith ", " (toUnfoldable missingKeys)
Process.exit 1
Right { port, databaseConfig } -> runServer port databaseConfig