packages feed

servant-effectful-1.0.0: src/Effectful/Servant/Server/StaticFiles.hs

{-# OPTIONS_GHC -Wno-redundant-constraints #-}

module Effectful.Servant.Server.StaticFiles
    ( serveDirectoryWebApp
    , serveDirectoryFileServer
    , serveDirectoryEmbedded
    )
where

import Data.ByteString (ByteString)
import Effectful ((:>))
import Effectful.FileSystem (FileSystem)
import Effectful.Servant.API (Raw)
import Effectful.Servant.Server (Server)
import Servant.Server.StaticFiles qualified as Servant
import Prelude

-- | Lifted 'Servant.serveDirectoryWebApp'.
serveDirectoryWebApp :: (FileSystem :> es) => FilePath -> Server Raw es
serveDirectoryWebApp = Servant.serveDirectoryWebApp

-- | Lifted 'Servant.serveDirectoryFileServer'.
serveDirectoryFileServer :: (FileSystem :> es) => FilePath -> Server Raw es
serveDirectoryFileServer = Servant.serveDirectoryFileServer

-- | Lifted 'Servant.serveDirectoryEmbedded'.
serveDirectoryEmbedded :: [(FilePath, ByteString)] -> Server Raw es
serveDirectoryEmbedded = Servant.serveDirectoryEmbedded