wai-extra- Provides some basic WAI handlers and middleware.

Safe HaskellNone



Some helpers for parsing data out of a raw WAI Request.



parseHttpAccept :: ByteString -> [ByteString] Source

Parse the HTTP accept string to determine supported content types.

parseRequestBody :: BackEnd y -> Request -> IO ([Param], [File y]) Source

type BackEnd a Source


 = ByteString

parameter name

-> FileInfo () 
-> IO ByteString 
-> IO a 

A file uploading backend. Takes the parameter name, file name, and a stream of data.

lbsBackEnd :: Monad m => ignored1 -> ignored2 -> m ByteString -> m ByteString Source

Store uploaded files in memory

tempFileBackEnd :: InternalState -> ignored1 -> ignored2 -> IO ByteString -> IO FilePath Source

Save uploaded files on disk as temporary files

Note: starting with version 2.0, removal of temp files is registered with the provided InternalState. It is the responsibility of the caller to ensure that this InternalState gets cleaned up.

tempFileBackEndOpts Source


:: IO FilePath

get temporary directory

-> String

filename pattern

-> InternalState 
-> ignored1 
-> ignored2 
-> IO ByteString 
-> IO FilePath 

Same as tempFileSink, but use configurable temp folders and patterns.

type Param = (ByteString, ByteString) Source

Post parameter name and value.

type File y = (ByteString, FileInfo y) Source

Post parameter name and associated file information.

data FileInfo c Source

Information on an uploaded file.


Eq c => Eq (FileInfo c) 
Show c => Show (FileInfo c) 

parseContentType :: ByteString -> (ByteString, [(ByteString, ByteString)]) Source

Parse a content type value, turning a single ByteString into the actual content type and a list of pairs of attributes.

Since 1.3.2