sparrow 0.0.2.1 → 0.0.2.2
raw patch · 4 files changed
+21/−16 lines, 4 filesdep +purescript-isodep ~attoparsec-uridep ~urlpath
Dependencies added: purescript-iso
Dependency ranges changed: attoparsec-uri, urlpath
Files
- sparrow.cabal +5/−4
- src/Web/Dependencies/Sparrow/Server.hs +1/−0
- src/Web/Dependencies/Sparrow/Server/Types.hs +1/−3
- src/Web/Dependencies/Sparrow/Types.hs +14/−9
sparrow.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: ca194da829dc469ef7c296f3c390fa1b36df83bd6bff4eee9cab731849fe886e+-- hash: 6c306d5812574925b3eb6f92b35d603c4976930dc2a6570a95411888cf3a4523 name: sparrow-version: 0.0.2.1+version: 0.0.2.2 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@@ -43,7 +43,7 @@ , aeson-attoparsec , async , attoparsec- , attoparsec-uri >=0.0.4+ , attoparsec-uri >=0.0.5.1 , base >=4.7 && <5 , bytestring , deepseq@@ -61,6 +61,7 @@ , path , path-extra >=0.2.0 , pred-trie >=0.6.0.1+ , purescript-iso >=0.0.3 , stm , strict , text@@ -68,7 +69,7 @@ , tmapmvar >=0.0.4 , transformers , unordered-containers- , urlpath >=9.0.0+ , urlpath >=9.0.0.1 , uuid , wai >=0.12.4 , wai-middleware-content-type >=0.6.1.2
src/Web/Dependencies/Sparrow/Server.hs view
@@ -121,6 +121,7 @@ -- ## invoke Server mContinue <- server initIn case mContinue of+ -- FIXME There's got to be some kind of error type Nothing -> resp (jsonOnly (InitRejected :: InitResponse ()) status400 []) Just ServerContinue{serverContinue,serverOnUnsubscribe} -> do
src/Web/Dependencies/Sparrow/Server/Types.hs view
@@ -87,7 +87,7 @@ TMapChan.insert envSessionsOutgoing -type RegisteredReceive m = -- STMMap.Map SessionID (STMMap.Map Topic (Value -> Maybe (m ())))+type RegisteredReceive m = TMapMVar SessionID (TMapMVar Topic (Value -> Maybe (m ()))) @@ -101,8 +101,6 @@ topics <- newTMapMVar TMapMVar.insert topics topic f TMapMVar.insert envRegisteredReceive sID topics- -- ks <- getCurrentRegisteredTopics env sID- -- putStrLn $ " - unsafeRegisterReceive: Topics...: " ++ show ks Just topics -> TMapMVar.insertForce topics topic f
src/Web/Dependencies/Sparrow/Types.hs view
@@ -13,11 +13,14 @@ import Data.Hashable (Hashable) import Data.Text (Text, intercalate, unpack)+import qualified Data.Text as T import qualified Data.Text.Lazy.Encoding as LT import qualified Data.ByteString.Lazy as LBS import Data.Aeson (ToJSON (..), FromJSON (..), Value (String, Object), (.=), object, (.:)) import Data.Aeson.Types (typeMismatch) import Data.Aeson.Attoparsec (attoAeson)+import Data.Aeson.JSONVoid (JSONVoid)+import Data.String (IsString (..)) import Data.Attoparsec.Text (Parser, takeWhile1, char, sepBy) import Control.Applicative (Alternative (empty), (<|>)) import Control.DeepSeq (NFData)@@ -36,7 +39,9 @@ , serverSendCurrent :: deltaOut -> m () } -hoistServerArgs :: (forall a. m a -> n a) -> ServerArgs m deltaOut -> ServerArgs n deltaOut+hoistServerArgs :: (forall a. m a -> n a)+ -> ServerArgs m deltaOut+ -> ServerArgs n deltaOut hoistServerArgs f ServerArgs{..} = ServerArgs { serverDeltaReject = f serverDeltaReject , serverSendCurrent = f . serverSendCurrent@@ -160,6 +165,14 @@ newtype Topic = Topic {getTopic :: [Text]} deriving (Eq, Ord, Generic, Hashable, NFData) +instance IsString Topic where+ fromString x' =+ let loop x = case T.breakOn "/" x of+ (l,r)+ | r == "" -> []+ | otherwise -> l : loop (T.drop 1 r)+ in Topic $ loop $ T.pack x'+ instance Show Topic where show (Topic x) = unpack (intercalate "/" x) @@ -187,14 +200,6 @@ -- * JSON Encodings--data JSONVoid--instance ToJSON JSONVoid where- toJSON _ = String ""--instance FromJSON JSONVoid where- parseJSON = typeMismatch "JSONVoid" data WithSessionID a = WithSessionID