{-# LANGUAGE CPP #-}
module Miso.Runner (run) where
#if defined(wasm32_HOST_ARCH)
import qualified Language.Javascript.JSaddle.Wasm as J
#else
import qualified Language.Javascript.JSaddle.Warp as J
#if !defined (ghcjs_HOST_OS)
import Data.Maybe
import System.Environment
import Text.Read
#endif
#endif
import Language.Javascript.JSaddle
run :: JSM () -> IO ()
#if defined(wasm32_HOST_ARCH)
run = J.run
#elif defined(ghcjs_HOST_OS)
run = J.run (error "unused argument")
#else
run action = do
port <- (readMaybe =<<) <$> lookupEnv "PORT"
isGhci <- (== "<interactive>") <$> getProgName
(if isGhci then J.debug else J.run) (fromMaybe 8008 port) action
#endif