scotty-fay-0.0.2: src/Web/Scotty/Fay/Config.hs
module Web.Scotty.Fay.Config 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
, configIncludeDirs :: [FilePath]
}
instance Default Config where
def = Config
{ configBasePath = ""
, configIncludeDirs = []
}
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 (configIncludeDirs conf) $ def
under :: T.Text -> ConfigBuilder
under basePath conf = conf { configBasePath = basePath }
from :: FilePath -> ConfigBuilder
from dir = fromDirs [dir]
fromDirs :: [FilePath] -> ConfigBuilder
fromDirs dirs conf =
conf { configIncludeDirs = dirs ++ configIncludeDirs conf }