packages feed

yesod-core 1.6.27.1 → 1.6.28.0

raw patch · 5 files changed

+57/−11 lines, 5 files

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for yesod-core +## 1.6.28.0 (unreleased)++* Allow users to control generation of the `resourcesSite :: [ResourceTree String]` value. [#1881](https://github.com/yesodweb/yesod/pull/1881)+ ## 1.6.27.1  * Set `base >= 4.11` for less CPP and imports [#1876](https://github.com/yesodweb/yesod/pull/1876)
src/Yesod/Core/Dispatch.hs view
@@ -28,6 +28,7 @@     , setEqDerived     , setShowDerived     , setReadDerived+    , setCreateResources       -- *** Helpers     , defaultGen     , getGetMaxExpires
src/Yesod/Core/Internal/TH.hs view
@@ -42,6 +42,7 @@     , setEqDerived     , setShowDerived     , setReadDerived+    , setCreateResources     )  where @@ -254,11 +255,16 @@     dispatchDec    <- mkDispatchInstance site appCxt f res     parseRoute <- mkParseRouteInstance appCxt site res     let rname = mkName $ "resources" ++ namestr-    eres <- lift resS-    let resourcesDec =-            [ SigD rname $ ListT `AppT` (ConT ''ResourceTree `AppT` ConT ''String)-            , FunD rname [Clause [] (NormalB eres) []]-            ]+    resourcesDec <-+        if shouldCreateResources opts+            then do+                eres <- lift resS+                pure+                    [ SigD rname $ ListT `AppT` (ConT ''ResourceTree `AppT` ConT ''String)+                    , FunD rname [Clause [] (NormalB eres) []]+                    ]+            else do+                pure []     let dataDec = concat             [ [parseRoute]             , renderRouteDec
src/Yesod/Routes/TH/RenderRoute.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE CPP #-}+{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskellQuotes #-} {-# LANGUAGE TupleSections #-} @@ -9,12 +10,14 @@     , mkRouteCons     , mkRouteConsOpts     , mkRenderRouteClauses+    , shouldCreateResources      , RouteOpts     , defaultOpts     , setEqDerived     , setShowDerived     , setReadDerived+    , setCreateResources     ) where  import Yesod.Routes.TH.Types@@ -29,23 +32,33 @@  -- | General opts data type for generating yesod. ----- Contains options for what instances are derived for the route. Use the setting--- functions on `defaultOpts` to set specific fields.+-- Contains options for customizing code generation for the router in+-- 'mkYesodData', including what type class instances will be derived for+-- the route datatype and whether or not to create the @resources ::+-- [ResourceTree String]@ value. Use the setting functions on `defaultOpts`+-- to set specific fields. -- -- @since 1.6.25.0 data RouteOpts = MkRouteOpts     { roDerivedEq   :: Bool     , roDerivedShow :: Bool     , roDerivedRead :: Bool+    , roCreateResources :: Bool     }  -- | Default options for generating routes. ----- Defaults to all instances derived.+-- Defaults to all instances derived and to create the @resourcesSite ::+-- [ResourceTree String]@ term. -- -- @since 1.6.25.0 defaultOpts :: RouteOpts-defaultOpts = MkRouteOpts True True True+defaultOpts = MkRouteOpts+    { roDerivedEq = True+    , roDerivedShow = True+    , roDerivedRead = True+    , roCreateResources = True+    }  -- | --@@ -65,12 +78,34 @@ setReadDerived :: Bool -> RouteOpts -> RouteOpts setReadDerived b rdo = rdo { roDerivedRead = b } +-- | Determine whether or not to generate the @resourcesApp@ value.+--+-- Disabling this can be useful if you are creating the @routes ::+-- [ResourceTree String]@ elsewhere in your module, and referring to it+-- here. The @resourcesApp@ can become very large in large applications,+-- and duplicating it can result in signifiacntly higher compile times.+--+-- @since 1.6.28.0+setCreateResources :: Bool -> RouteOpts -> RouteOpts+setCreateResources b rdo = rdo { roCreateResources = b }++-- | Returns whether or not we should create the @resourcesSite ::+-- [ResourceTree String]@ value during code generation.+--+-- @since 1.6.28.0+shouldCreateResources :: RouteOpts -> Bool+shouldCreateResources = roCreateResources+ -- | -- -- @since 1.6.25.0 instanceNamesFromOpts :: RouteOpts -> [Name]-instanceNamesFromOpts (MkRouteOpts eq shw rd) = prependIf eq ''Eq $ prependIf shw ''Show $ prependIf rd ''Read []+instanceNamesFromOpts MkRouteOpts {..} = prependIf roDerivedEq ''Eq $ prependIf roDerivedShow ''Show $ prependIf roDerivedRead ''Read []     where prependIf b = if b then (:) else const id++-- |+--+-- @since 1.6.28.0  -- | Generate the constructors of a route data type. mkRouteCons :: [ResourceTree Type] -> Q ([Con], [Dec])
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         1.6.27.1+version:         1.6.28.0 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>