Safe Haskell | None |
---|---|
Language | Haskell98 |
- parseRoutes :: QuasiQuoter
- parseRoutesNoCheck :: QuasiQuoter
- parseRoutesFile :: FilePath -> Q Exp
- parseRoutesFileNoCheck :: FilePath -> Q Exp
- mkYesod :: String -> [ResourceTree String] -> Q [Dec]
- mkYesodWith :: String -> [Either String [String]] -> [ResourceTree String] -> Q [Dec]
- mkYesodData :: String -> [ResourceTree String] -> Q [Dec]
- mkYesodSubData :: String -> [ResourceTree String] -> Q [Dec]
- mkYesodDispatch :: String -> [ResourceTree String] -> Q [Dec]
- mkYesodSubDispatch :: [ResourceTree a] -> Q Exp
- getGetMaxExpires :: IO (IO Text)
- class PathPiece s where
- class PathMultiPiece s where
- type Texts = [Text]
- toWaiApp :: YesodDispatch site => site -> IO Application
- toWaiAppPlain :: YesodDispatch site => site -> IO Application
- toWaiAppYre :: YesodDispatch site => YesodRunnerEnv site -> Application
- warp :: YesodDispatch site => Int -> site -> IO ()
- warpDebug :: YesodDispatch site => Int -> site -> IO ()
- warpEnv :: YesodDispatch site => site -> IO ()
- mkDefaultMiddlewares :: Logger -> IO Middleware
- defaultMiddlewaresNoLogging :: Middleware
- newtype WaiSubsite = WaiSubsite {}
- newtype WaiSubsiteWithAuth = WaiSubsiteWithAuth {}
- subHelper :: Monad m => HandlerT child (HandlerT parent m) TypedContent -> YesodSubRunnerEnv child parent (HandlerT parent m) -> Maybe (Route child) -> Application
Quasi-quoted routing
parseRoutes :: QuasiQuoter Source #
A quasi-quoter to parse a string into a list of Resource
s. Checks for
overlapping routes, failing if present; use parseRoutesNoCheck
to skip the
checking. See documentation site for details on syntax.
parseRoutesNoCheck :: QuasiQuoter Source #
Same as parseRoutes
, but performs no overlap checking.
:: String | name of the argument datatype |
-> [ResourceTree String] | |
-> Q [Dec] |
Generates URL datatype and site function for the given Resource
s. This
is used for creating sites, not subsites. See mkYesodSub
for the latter.
Use parseRoutes
to create the Resource
s.
More fine-grained
mkYesodData :: String -> [ResourceTree String] -> Q [Dec] Source #
Sometimes, you will want to declare your routes in one file and define
your handlers elsewhere. For example, this is the only way to break up a
monolithic file into smaller parts. Use this function, paired with
mkYesodDispatch
, to do just that.
mkYesodSubData :: String -> [ResourceTree String] -> Q [Dec] Source #
mkYesodDispatch :: String -> [ResourceTree String] -> Q [Dec] Source #
See mkYesodData
.
mkYesodSubDispatch :: [ResourceTree a] -> Q Exp Source #
Helpers
getGetMaxExpires :: IO (IO Text) Source #
Default constructor for yreGetMaxExpires
field. Low level
function for simple manual construction of YesodRunnerEnv
.
Since: 1.4.29
Path pieces
fromPathPiece :: Text -> Maybe s #
toPathPiece :: s -> Text #
class PathMultiPiece s where #
fromPathMultiPiece :: [Text] -> Maybe s #
toPathMultiPiece :: s -> [Text] #
PathPiece a => PathMultiPiece [a] | |
Convert to WAI
toWaiApp :: YesodDispatch site => site -> IO Application Source #
Same as toWaiAppPlain
, but provides a default set of middlewares. This
set may change with future releases, but currently covers:
- Logging
- GZIP compression
- Automatic HEAD method handling
- Request method override with the _method query string parameter
- Accept header override with the _accept query string parameter
toWaiAppPlain :: YesodDispatch site => site -> IO Application Source #
Convert the given argument into a WAI application, executable with any WAI
handler. This function will provide no middlewares; if you want commonly
used middlewares, please use toWaiApp
.
toWaiAppYre :: YesodDispatch site => YesodRunnerEnv site -> Application Source #
Pure low level function to construct WAI application. Usefull when you need not standard way to run your app, or want to embed it inside another app.
Since: 1.4.29
warp :: YesodDispatch site => Int -> site -> IO () Source #
A convenience method to run an application using the Warp webserver on the
specified port. Automatically calls toWaiApp
. Provides a default set of
middlewares. This set may change at any point without a breaking version
number. Currently, it includes:
If you need more fine-grained control of middlewares, please use toWaiApp
directly.
Since 1.2.0
warpDebug :: YesodDispatch site => Int -> site -> IO () Source #
Deprecated: Please use warp instead
Deprecated synonym for warp
.
warpEnv :: YesodDispatch site => site -> IO () Source #
Runs your application using default middlewares (i.e., via toWaiApp
). It
reads port information from the PORT environment variable, as used by tools
such as Keter and the FP Complete School of Haskell.
Note that the exact behavior of this function may be modified slightly over time to work correctly with external tools, without a change to the type signature.
mkDefaultMiddlewares :: Logger -> IO Middleware Source #
A default set of middlewares.
Since 1.2.0
defaultMiddlewaresNoLogging :: Middleware Source #
All of the default middlewares, excluding logging.
Since 1.2.12
WAI subsites
newtype WaiSubsite Source #
Wrap up a normal WAI application as a Yesod subsite. Ignore parent site's middleware and isAuthorized.
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
subHelper :: Monad m => HandlerT child (HandlerT parent m) TypedContent -> YesodSubRunnerEnv child parent (HandlerT parent m) -> Maybe (Route child) -> Application Source #
A helper function for creating YesodSubDispatch instances, used by the internal generated code. This function has been exported since 1.4.11. It promotes a subsite handler to a wai application.