Safe Haskell | None |
---|---|
Language | Haskell98 |
Yesod.Core.Types
- type SessionMap = Map Text ByteString
- type SaveSession = SessionMap -> IO [Header]
- newtype SessionBackend = SessionBackend {
- sbLoadSession :: Request -> IO (SessionMap, SaveSession)
- data SessionCookie = SessionCookie !(Either UTCTime ByteString) !ByteString !SessionMap
- data ClientSessionDateCache = ClientSessionDateCache {}
- data YesodRequest = YesodRequest {
- reqGetParams :: ![(Text, Text)]
- reqCookies :: ![(Text, Text)]
- reqWaiRequest :: !Request
- reqLangs :: ![Text]
- reqToken :: !(Maybe Text)
- reqSession :: !SessionMap
- reqAccept :: ![ContentType]
- data YesodResponse
- = YRWai !Response
- | YRWaiApp !Application
- | YRPlain !Status ![Header] !ContentType !Content !SessionMap
- type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)])
- data FileInfo = FileInfo {
- fileName :: !Text
- fileContentType :: !Text
- fileSourceRaw :: !(ConduitT () ByteString (ResourceT IO) ())
- fileMove :: !(FilePath -> IO ())
- data FileUpload
- = FileUploadMemory !(BackEnd ByteString)
- | FileUploadDisk !(InternalState -> BackEnd FilePath)
- | FileUploadSource !(BackEnd (ConduitT () ByteString (ResourceT IO) ()))
- data Approot master
- = ApprootRelative
- | ApprootStatic !Text
- | ApprootMaster !(master -> Text)
- | ApprootRequest !(master -> Request -> Text)
- type ResolvedApproot = Text
- data AuthResult
- data ScriptLoadPosition master
- = BottomOfBody
- | BottomOfHeadBlocking
- | BottomOfHeadAsync !(BottomOfHeadAsync master)
- type BottomOfHeadAsync master = [Text] -> Maybe (HtmlUrl (Route master)) -> HtmlUrl (Route master)
- type Texts = [Text]
- newtype WaiSubsite = WaiSubsite {}
- newtype WaiSubsiteWithAuth = WaiSubsiteWithAuth {}
- data RunHandlerEnv child site = RunHandlerEnv {
- rheRender :: !(Route site -> [(Text, Text)] -> Text)
- rheRoute :: !(Maybe (Route child))
- rheRouteToMaster :: !(Route child -> Route site)
- rheSite :: !site
- rheChild :: !child
- rheUpload :: !(RequestBodyLength -> FileUpload)
- rheLog :: !(Loc -> LogSource -> LogLevel -> LogStr -> IO ())
- rheOnError :: !(ErrorResponse -> YesodApp)
- rheMaxExpires :: !Text
- data HandlerData child site = HandlerData {
- handlerRequest :: !YesodRequest
- handlerEnv :: !(RunHandlerEnv child site)
- handlerState :: !(IORef GHState)
- handlerResource :: !InternalState
- data YesodRunnerEnv site = YesodRunnerEnv {
- yreLogger :: !Logger
- yreSite :: !site
- yreSessionBackend :: !(Maybe SessionBackend)
- yreGen :: !(IO Int)
- yreGetMaxExpires :: !(IO Text)
- data YesodSubRunnerEnv sub parent = YesodSubRunnerEnv {
- ysreParentRunner :: !(ParentRunner parent)
- ysreGetSub :: !(parent -> sub)
- ysreToParentRoute :: !(Route sub -> Route parent)
- ysreParentEnv :: !(YesodRunnerEnv parent)
- type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application
- newtype HandlerFor site a = HandlerFor {
- unHandlerFor :: HandlerData site site -> IO a
- data GHState = GHState {
- ghsSession :: !SessionMap
- ghsRBC :: !(Maybe RequestBodyContents)
- ghsIdent :: !Int
- ghsCache :: !TypeMap
- ghsCacheBy :: !KeyedTypeMap
- ghsHeaders :: !(Endo [Header])
- type YesodApp = YesodRequest -> ResourceT IO YesodResponse
- newtype WidgetFor site a = WidgetFor {
- unWidgetFor :: WidgetData site -> IO a
- data WidgetData site = WidgetData {}
- tellWidget :: GWData (Route site) -> WidgetFor site ()
- type RY master = Route master -> [(Text, Text)] -> Text
- newtype CssBuilder = CssBuilder {}
- data PageContent url = PageContent {}
- data Content
- = ContentBuilder !Builder !(Maybe Int)
- | ContentSource !(ConduitT () (Flush Builder) (ResourceT IO) ())
- | ContentFile !FilePath !(Maybe FilePart)
- | ContentDontEvaluate !Content
- data TypedContent = TypedContent !ContentType !Content
- type RepHtml = Html
- newtype RepJson = RepJson Content
- newtype RepPlain = RepPlain Content
- newtype RepXml = RepXml Content
- type ContentType = ByteString
- newtype DontFullyEvaluate a = DontFullyEvaluate {
- unDontFullyEvaluate :: a
- data ErrorResponse
- data Header
- data Location url
- newtype UniqueList x = UniqueList ([x] -> [x])
- data Script url = Script {
- scriptLocation :: !(Location url)
- scriptAttributes :: ![(Text, Text)]
- data Stylesheet url = Stylesheet {
- styleLocation :: !(Location url)
- styleAttributes :: ![(Text, Text)]
- newtype Title = Title {}
- newtype Head url = Head (HtmlUrl url)
- newtype Body url = Body (HtmlUrl url)
- type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> Builder
- data GWData a = GWData {
- gwdBody :: !(Body a)
- gwdTitle :: !(Last Title)
- gwdScripts :: !(UniqueList (Script a))
- gwdStylesheets :: !(UniqueList (Stylesheet a))
- gwdCss :: !(Map (Maybe Text) (CssBuilderUrl a))
- gwdJavascript :: !(Maybe (JavascriptUrl a))
- gwdHead :: !(Head a)
- data HandlerContents
- = HCContent !Status !TypedContent
- | HCError !ErrorResponse
- | HCSendFile !ContentType !FilePath !(Maybe FilePart)
- | HCRedirect !Status !Text
- | HCCreated !Text
- | HCWai !Response
- | HCWaiApp !Application
- data Logger = Logger {}
- loggerPutStr :: Logger -> LogStr -> IO ()
- newtype SubHandlerFor sub master a = SubHandlerFor {
- unSubHandlerFor :: HandlerData sub master -> IO a
Documentation
type SessionMap = Map Text ByteString Source #
type SaveSession Source #
Arguments
= SessionMap | The session contents after running the handler |
-> IO [Header] |
newtype SessionBackend Source #
Constructors
SessionBackend | |
Fields
|
data SessionCookie Source #
Constructors
SessionCookie !(Either UTCTime ByteString) !ByteString !SessionMap |
Instances
data ClientSessionDateCache Source #
Constructors
ClientSessionDateCache | |
Fields
|
Instances
data YesodRequest Source #
The parsed request information. This type augments the standard WAI
Request
with additional information.
Constructors
YesodRequest | |
Fields
|
data YesodResponse Source #
An augmented WAI Response
. This can either be a standard Response
,
or a higher-level data structure which Yesod will turn into a Response
.
Constructors
YRWai !Response | |
YRWaiApp !Application | |
YRPlain !Status ![Header] !ContentType !Content !SessionMap |
type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)]) Source #
A tuple containing both the POST parameters and submitted files.
Constructors
FileInfo | |
Fields
|
data FileUpload Source #
Constructors
FileUploadMemory !(BackEnd ByteString) | |
FileUploadDisk !(InternalState -> BackEnd FilePath) | |
FileUploadSource !(BackEnd (ConduitT () ByteString (ResourceT IO) ())) |
How to determine the root of the application for constructing URLs.
Note that future versions of Yesod may add new constructors without bumping
the major version number. As a result, you should not pattern match on
Approot
values.
Constructors
ApprootRelative | No application root. |
ApprootStatic !Text | |
ApprootMaster !(master -> Text) | |
ApprootRequest !(master -> Request -> Text) |
type ResolvedApproot = Text Source #
data ScriptLoadPosition master Source #
Constructors
BottomOfBody | |
BottomOfHeadBlocking | |
BottomOfHeadAsync !(BottomOfHeadAsync master) |
type BottomOfHeadAsync master Source #
newtype WaiSubsite Source #
Wrap up a normal WAI application as a Yesod subsite. Ignore parent site's middleware and isAuthorized.
Constructors
WaiSubsite | |
Fields |
Instances
ParseRoute WaiSubsite Source # | |
RenderRoute WaiSubsite Source # | |
YesodSubDispatch WaiSubsite master Source # | |
Eq (Route WaiSubsite) Source # | |
Ord (Route WaiSubsite) Source # | |
Read (Route WaiSubsite) Source # | |
Show (Route WaiSubsite) Source # | |
data Route WaiSubsite Source # | |
newtype WaiSubsiteWithAuth Source #
Like WaiSubsite
, but applies parent site's middleware and isAuthorized.
Since: 1.4.34
Constructors
WaiSubsiteWithAuth | |
Fields |
Instances
data RunHandlerEnv child site Source #
Constructors
RunHandlerEnv | |
Fields
|
data HandlerData child site Source #
Constructors
HandlerData | |
Fields
|
Instances
MonadReader (HandlerData site site) (HandlerFor site) Source # | |
MonadReader (HandlerData child master) (SubHandlerFor child master) Source # | |
data YesodRunnerEnv site Source #
Constructors
YesodRunnerEnv | |
Fields
|
data YesodSubRunnerEnv sub parent Source #
Constructors
YesodSubRunnerEnv | |
Fields
|
type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application Source #
newtype HandlerFor site a Source #
A generic handler monad, which can have a different subsite and master site. We define a newtype for better error message.
Constructors
HandlerFor | |
Fields
|
Instances
Monad (HandlerFor site) Source # | |
Functor (HandlerFor site) Source # | |
Applicative (HandlerFor site) Source # | |
MonadIO (HandlerFor site) Source # | |
MonadUnliftIO (HandlerFor site) Source # | Since: 1.4.38 |
MonadResource (HandlerFor site) Source # | |
MonadThrow (HandlerFor site) Source # | |
MonadLogger (HandlerFor site) Source # | |
MonadLoggerIO (HandlerFor site) Source # | |
MonadHandler (HandlerFor site) Source # | |
MonadReader (HandlerData site site) (HandlerFor site) Source # | |
type HandlerSite (HandlerFor site) Source # | |
type SubHandlerSite (HandlerFor site) Source # | |
Constructors
GHState | |
Fields
|
type YesodApp = YesodRequest -> ResourceT IO YesodResponse Source #
An extension of the basic WAI Application
datatype to provide extra
features needed by Yesod. Users should never need to use this directly, as
the HandlerT
monad and template haskell code should hide it away.
newtype WidgetFor site a Source #
A generic widget, allowing specification of both the subsite and master
site datatypes. While this is simply a WriterT
, we define a newtype for
better error messages.
Constructors
WidgetFor | |
Fields
|
Instances
((~) * site' site, (~) * a ()) => ToWidget site' (WidgetFor site a) Source # | |
Monad (WidgetFor site) Source # | |
Functor (WidgetFor site) Source # | |
Applicative (WidgetFor site) Source # | |
MonadIO (WidgetFor site) Source # | |
MonadUnliftIO (WidgetFor site) Source # | Since: 1.4.38 |
MonadResource (WidgetFor site) Source # | |
MonadThrow (WidgetFor site) Source # | |
MonadLogger (WidgetFor site) Source # | |
MonadLoggerIO (WidgetFor site) Source # | |
MonadWidget (WidgetFor site) Source # | |
MonadHandler (WidgetFor site) Source # | |
MonadReader (WidgetData site) (WidgetFor site) Source # | |
(~) * a () => IsString (WidgetFor site a) Source # | A For example, in a yesod-scaffold site you could use: getHomeR = do defaultLayout "Widget text" |
(~) * a () => Semigroup (WidgetFor site a) Source # | |
(~) * a () => Monoid (WidgetFor site a) Source # | |
type HandlerSite (WidgetFor site) Source # | |
type SubHandlerSite (WidgetFor site) Source # | |
data WidgetData site Source #
Constructors
WidgetData | |
Instances
MonadReader (WidgetData site) (WidgetFor site) Source # | |
newtype CssBuilder Source #
Newtype wrapper allowing injection of arbitrary content into CSS.
Usage:
toWidget $ CssBuilder "p { color: red }"
Since: 1.1.3
Constructors
CssBuilder | |
Fields |
Instances
ToWidgetHead site CssBuilder Source # | |
ToWidgetMedia site CssBuilder Source # | |
ToWidget site CssBuilder Source # | |
(~) * render (RY site) => ToWidgetHead site (render -> CssBuilder) Source # | |
(~) * render (RY site) => ToWidgetMedia site (render -> CssBuilder) Source # | |
(~) * render (RY site) => ToWidget site (render -> CssBuilder) Source # | |
data PageContent url Source #
Content for a web page. By providing this datatype, we can easily create generic site templates, which would have the type signature:
PageContent url -> HtmlUrl url
Constructors
ContentBuilder !Builder !(Maybe Int) | The content and optional content length. |
ContentSource !(ConduitT () (Flush Builder) (ResourceT IO) ()) | |
ContentFile !FilePath !(Maybe FilePart) | |
ContentDontEvaluate !Content |
type ContentType = ByteString Source #
newtype DontFullyEvaluate a Source #
Prevents a response body from being fully evaluated before sending the request.
Since 1.1.0
Constructors
DontFullyEvaluate | |
Fields
|
Instances
ToTypedContent a => ToTypedContent (DontFullyEvaluate a) Source # | |
HasContentType a => HasContentType (DontFullyEvaluate a) Source # | |
ToContent a => ToContent (DontFullyEvaluate a) Source # | |
data ErrorResponse Source #
Responses to indicate some form of an error occurred.
Constructors
NotFound | |
InternalError !Text | |
InvalidArgs ![Text] | |
NotAuthenticated | |
PermissionDenied !Text | |
BadMethod !Method |
Instances
Headers to be added to a Result
.
Constructors
AddCookie !SetCookie | |
DeleteCookie !ByteString !ByteString | name and path |
Header !(CI ByteString) !ByteString | key and value |
newtype UniqueList x Source #
A diff list that does not directly enforce uniqueness. When creating a widget Yesod will use nub to make it unique.
Constructors
UniqueList ([x] -> [x]) |
Instances
Semigroup (UniqueList x) Source # | |
Monoid (UniqueList x) Source # | |
Constructors
Script | |
Fields
|
data Stylesheet url Source #
Constructors
Stylesheet | |
Fields
|
Instances
Eq url => Eq (Stylesheet url) Source # | |
Show url => Show (Stylesheet url) Source # | |
Constructors
GWData | |
Fields
|
data HandlerContents Source #
Constructors
HCContent !Status !TypedContent | |
HCError !ErrorResponse | |
HCSendFile !ContentType !FilePath !(Maybe FilePart) | |
HCRedirect !Status !Text | |
HCCreated !Text | |
HCWai !Response | |
HCWaiApp !Application |
Instances
Constructors
Logger | |
Fields
|
newtype SubHandlerFor sub master a Source #
A handler monad for subsite
Since: 1.6.0
Constructors
SubHandlerFor | |
Fields
|
Instances
Monad (SubHandlerFor child master) Source # | |
Functor (SubHandlerFor sub master) Source # | |
Applicative (SubHandlerFor child master) Source # | |
MonadIO (SubHandlerFor child master) Source # | |
MonadUnliftIO (SubHandlerFor child master) Source # | Since: 1.4.38 |
MonadResource (SubHandlerFor child master) Source # | |
MonadThrow (SubHandlerFor child master) Source # | |
MonadLogger (SubHandlerFor child master) Source # | |
MonadLoggerIO (SubHandlerFor child master) Source # | |
MonadHandler (SubHandlerFor sub master) Source # | |
MonadReader (HandlerData child master) (SubHandlerFor child master) Source # | |
type HandlerSite (SubHandlerFor sub master) Source # | |
type SubHandlerSite (SubHandlerFor sub master) Source # | |