snap-core-1.0.5.1: src/Snap/Util/FileServe.hs
-- | Contains web handlers to serve files from a directory.
--
-- Example usage:
--
-- @
-- {-# LANGUAGE OverloadedStrings #-}
--
-- module Main where
--
-- import "Snap.Core" (Snap, route)
-- import "Snap.Http.Server" (quickHttpServe)
-- import "Snap.Util.FileServe"
--
-- site :: Snap ()
-- site = 'Snap.Core.route'
-- [ (\"\/files\", 'serveDirectory' \"static\")
-- , (\"\/simple\", 'serveDirectoryWith' 'simpleDirectoryConfig' \"static\")
-- , (\"\/default\", 'serveDirectoryWith' 'defaultDirectoryConfig' \"static\")
-- , (\"\/fancy\", 'serveDirectoryWith' 'fancyDirectoryConfig' \"static\")
-- , (\"\/paper\", 'serveFile' \"static\/paper.pdf\")
-- , (\"\/thesis\", 'serveFileAs' \"application\/pdf\" \"static\/thesis.pdf\")
-- ]
--
-- main :: IO ()
-- main = 'Snap.Http.Server.quickHttpServe' site
-- @
module Snap.Util.FileServe
( -- * Helper functions
getSafePath
-- * Configuration for directory serving
, MimeMap
, HandlerMap
, DirectoryConfig(..)
, simpleDirectoryConfig
, defaultDirectoryConfig
, fancyDirectoryConfig
, defaultIndexGenerator
, defaultMimeTypes
, fileType
-- * File servers
, serveDirectory
, serveDirectoryWith
, serveFile
, serveFileAs
) where
import Snap.Internal.Util.FileServe (DirectoryConfig (..), HandlerMap, MimeMap, defaultDirectoryConfig, defaultIndexGenerator, defaultMimeTypes, fancyDirectoryConfig, fileType, getSafePath, serveDirectory, serveDirectoryWith, serveFile, serveFileAs, simpleDirectoryConfig)