diff --git a/yesod-bin/yesod-bin.cabal b/yesod-bin/yesod-bin.cabal index 421d5f82..14b8ebf7 100644 --- a/yesod-bin/yesod-bin.cabal +++ b/yesod-bin/yesod-bin.cabal @@ -78,7 +78,7 @@ executable yesod , fsnotify >= 0.0 && < 0.2 , split >= 0.2 && < 0.3 , file-embed - , conduit >= 0.5 && < 1.2 + , conduit >= 0.5 && < 1.3 , conduit-extra , resourcet >= 0.3 && < 1.2 , base64-bytestring diff --git a/yesod-core/Yesod/Core/Content.hs b/yesod-core/Yesod/Core/Content.hs index 61974027..fa12f7f6 100644 --- a/yesod-core/Yesod/Core/Content.hs +++ b/yesod-core/Yesod/Core/Content.hs @@ -63,6 +63,9 @@ import Text.Blaze.Html.Renderer.Utf8 (renderHtmlBuilder) import Data.Conduit (Source, Flush (Chunk), ResumableSource, mapOutput) import Control.Monad.Trans.Resource (ResourceT) import Data.Conduit.Internal (ResumableSource (ResumableSource)) +#if MIN_VERSION_conduit(1, 2, 0) +import qualified Data.Conduit.Internal as CI +#endif import qualified Data.Aeson as J import Data.Aeson.Encode (fromValue) @@ -115,6 +118,11 @@ instance ToContent Css where instance ToContent Javascript where toContent = toContent . toLazyText . unJavascript +#if MIN_VERSION_conduit(1, 2, 0) +instance ToFlushBuilder builder => ToContent (CI.Pipe () () builder () (ResourceT IO) ()) where + toContent src = ContentSource $ CI.ConduitM (CI.mapOutput toFlushBuilder src >>=) +#endif + instance ToFlushBuilder builder => ToContent (Source (ResourceT IO) builder) where toContent src = ContentSource $ mapOutput toFlushBuilder src instance ToFlushBuilder builder => ToContent (ResumableSource (ResourceT IO) builder) where