packages feed

scotty-fay-0.0.1: src/Web/Scotty/Fay/Config.hs

module Web.Scotty.Fay.Config
    ( Config
    , ConfigBuilder
    , configSrcDir
    , configBasePath
    , buildConfig
    , under
    , from
    , toFay
    ) where

import Data.Default
import qualified Data.Text as T
import qualified Fay
import qualified Fay.Compiler.Config as Fay

data Config = Config
    { configBasePath :: T.Text
    , configSrcDir   :: FilePath
    }

instance Default Config where
    def = Config
        { configBasePath = ""
        , configSrcDir   = ""
        }

type ConfigBuilder = Config -> Config

buildConfig :: ConfigBuilder -> Config
buildConfig f = f def

-- Convert a scotty-fay Config to a Fay CompileConfig
toFay :: Config -> Fay.CompileConfig
toFay conf = Fay.addConfigDirectoryIncludePaths [configSrcDir conf] $ def

under :: T.Text -> ConfigBuilder
under basePath conf = conf { configBasePath = basePath }

from :: FilePath -> ConfigBuilder
from dir conf = conf { configSrcDir = dir }