@@ -3,7 +3,8 @@ module Network.Wai.EventSource (
33 ServerEvent(..),
44 eventSourceAppChan,
55 eventSourceAppSource,
6− eventSourceAppIO
6+ eventSourceAppIO,
7+ sourceToSource
78 ) where
89
910import Blaze.ByteString.Builder (Builder)
@@ -59,6 +60,8 @@ ioToSource act =
5960 Just y -> C.StateOpen (Just C.Flush) (C.Chunk y)
6061 pull (Just x) = return $ C.StateOpen Nothing x
6162
63+-- | Convert a ServerEvent source into a Builder source of serialized
64+-- events.
6265sourceToSource :: Monad m => C.Source m ServerEvent -> C.Source m (C.Flush Builder)
6366sourceToSource src = src $= CL.concatMap eventToFlushBuilder
6467 where