packages feed

sparrow 0.0.1.2 → 0.0.1.3

raw patch · 2 files changed

+46/−2 lines, 2 files

Files

sparrow.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: ebd4e11dfaadfc68bb56b0cd34cc4bf376b7430cd16a28ef8c69413463be699b+-- hash: d249c65e47a387870dde17936cb70776bf5b3daf937fdbaa535c9b1867e3cda2  name:           sparrow-version:        0.0.1.2+version:        0.0.1.3 synopsis:       Unified streaming dependency management for web apps description:    Please see the README on Github at <https://git.localcooking.com/tooling/sparrow#readme> category:       Web
src/Web/Dependencies/Sparrow/Types.hs view
@@ -3,6 +3,7 @@   , GeneralizedNewtypeDeriving   , OverloadedStrings   , RecordWildCards+  , NamedFieldPuns   #-}  module Web.Dependencies.Sparrow.Types where@@ -51,7 +52,26 @@   initIn -> m (Maybe (ServerContinue m initOut deltaIn deltaOut))  +staticServer :: Monad m+             => (initIn -> m (Maybe initOut)) -- ^ Produce an initOut+             -> Server m initIn initOut JSONVoid JSONVoid+staticServer f initIn = do+  mInitOut <- f initIn+  case mInitOut of+    Nothing -> pure Nothing+    Just initOut -> pure $ Just ServerContinue+      { serverOnUnsubscribe = pure ()+      , serverContinue = \_ -> pure ServerReturn+        { serverInitOut = initOut+        , serverOnOpen = \ServerArgs{serverDeltaReject} -> do+            serverDeltaReject+            pure Nothing+        , serverOnReceive = \_ _ -> pure ()+        }+      } ++ -- ** Client  data ClientReturn m initOut deltaIn = ClientReturn@@ -72,6 +92,23 @@     ) -> m ()  +staticClient :: Monad m+             => ((initIn -> m (Maybe initOut)) -> m ()) -- ^ Obtain an initOut+             -> Client m initIn initOut JSONVoid JSONVoid+staticClient f invoke = f $ \initIn -> do+  mReturn <- invoke ClientArgs+    { clientInitIn = initIn+    , clientReceive = \_ _ -> pure ()+    , clientOnReject = pure ()+    }+  case mReturn of+    Nothing -> pure Nothing+    Just ClientReturn{clientInitOut,clientUnsubscribe} -> do+      clientUnsubscribe+      pure (Just clientInitOut)+++ -- ** Topic  newtype Topic = Topic {getTopic :: [Text]}@@ -97,6 +134,13 @@  -- * JSON Encodings +data JSONVoid++instance ToJSON JSONVoid where+  toJSON _ = String ""++instance FromJSON JSONVoid where+  parseJSON = typeMismatch "JSONVoid"   data WithSessionID a = WithSessionID