ipfs 1.0.0 → 1.0.1
raw patch · 9 files changed
+27/−86 lines, 9 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.IPFS.Config: get :: (MonadReader cfg m, Has a cfg) => m a
- Network.IPFS.Internal.Constraint: type MonadRIO cfg m = (MonadIO m, MonadReader cfg m)
- Network.IPFS.Internal.Orphanage.ByteString.Lazy: instance Data.Aeson.Types.FromJSON.FromJSON Data.ByteString.Internal.ByteString
+ Network.IPFS.Internal.Orphanage.ByteString.Lazy: instance Data.Aeson.Types.FromJSON.FromJSON Data.ByteString.Lazy.Internal.ByteString
- Network.IPFS: class Monad m => MonadRemoteIPFS m
+ Network.IPFS: class MonadIO m => MonadRemoteIPFS m
- Network.IPFS.Pin: add :: (MonadRIO cfg m, MonadRemoteIPFS m, MonadLogger m) => CID -> m (Either Error CID)
+ Network.IPFS.Pin: add :: (MonadRemoteIPFS m, MonadLogger m) => CID -> m (Either Error CID)
- Network.IPFS.Pin: rm :: (MonadRIO cfg m, MonadRemoteIPFS m, MonadLogger m) => CID -> m (Either Error CID)
+ Network.IPFS.Pin: rm :: (MonadRemoteIPFS m, MonadLogger m) => CID -> m (Either Error CID)
- Network.IPFS.Process: runProc :: (MonadRIO cfg m, HasProcessContext cfg, HasLogFunc cfg) => (ProcessConfig stdin stdout () -> m a) -> FilePath -> StreamIn stdin -> StreamOut stdout -> [Opt] -> m a
+ Network.IPFS.Process: runProc :: (MonadIO m, MonadReader cfg m, HasProcessContext cfg, HasLogFunc cfg) => (ProcessConfig stdin stdout () -> m a) -> FilePath -> StreamIn stdin -> StreamOut stdout -> [Opt] -> m a
- Network.IPFS.Remote.Class: class Monad m => MonadRemoteIPFS m
+ Network.IPFS.Remote.Class: class MonadIO m => MonadRemoteIPFS m
Files
- README.md +2/−0
- ipfs.cabal +2/−4
- library/Network/IPFS/Config.hs +0/−32
- library/Network/IPFS/Internal/Constraint.hs +0/−5
- library/Network/IPFS/Internal/Orphanage/ByteString/Lazy.hs +2/−2
- library/Network/IPFS/Pin.hs +15/−37
- library/Network/IPFS/Prelude.hs +0/−2
- library/Network/IPFS/Process.hs +2/−1
- library/Network/IPFS/Remote/Class.hs +4/−3
README.md view
@@ -1,3 +1,5 @@++ # ipfs-haskell [](https://travis-ci.org/fission-suite/ipfs-haskell)
ipfs.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 0ce7658c51aedc29d36dcf7bc42ec1a99ebc4eb32b76ffb58916cf586f58ba7b+-- hash: 57e69b16ed496b39a019d745c36aca0c13d5eca31deb91fbf3503b2fd1852e90 name: ipfs-version: 1.0.0+version: 1.0.1 synopsis: Access IPFS locally and remotely description: Interact with the IPFS network by shelling out to a local IPFS node or communicating via the HTTP interface of a remote IPFS node. category: Network@@ -44,7 +44,6 @@ Network.IPFS.Client.Error.Types Network.IPFS.Client.Param Network.IPFS.Client.Pin- Network.IPFS.Config Network.IPFS.DAG Network.IPFS.DAG.Link Network.IPFS.DAG.Link.Types@@ -56,7 +55,6 @@ Network.IPFS.Get.Error Network.IPFS.Ignored.Types Network.IPFS.Info.Types- Network.IPFS.Internal.Constraint Network.IPFS.Internal.Orphanage.ByteString.Lazy Network.IPFS.Internal.Orphanage.Natural Network.IPFS.Internal.Orphanage.Utf8Builder
− library/Network/IPFS/Config.hs
@@ -1,32 +0,0 @@--- | Application configuration and top-level 'RIO' helpers-module Network.IPFS.Config- ( get- ) where--import RIO-import Data.Has---- $setup------ >>> import RIO--- >>> import Data.Has--- >>>--- >>> :set -XBlockArguments--- >>> :set -XMultiParamTypeClasses--- >>> :set -XOverloadedStrings---- | Get a value from the reader config------ >>> data Field = Field Text--- >>> data Cfg = Cfg Field--- >>>--- >>> instance Has Field Cfg where hasLens = \f (Cfg field) -> Cfg <$> f field--- >>>--- >>> :{--- >>> runRIO (Cfg $ Field "hello world") do--- >>> Field txt <- get--- >>> return txt--- >>> :}--- "hello world"-get :: (MonadReader cfg m, Has a cfg) => m a-get = view hasLens
− library/Network/IPFS/Internal/Constraint.hs
@@ -1,5 +0,0 @@-module Network.IPFS.Internal.Constraint (MonadRIO) where--import RIO--type MonadRIO cfg m = (MonadIO m, MonadReader cfg m)
library/Network/IPFS/Internal/Orphanage/ByteString/Lazy.hs view
@@ -10,5 +10,5 @@ instance MimeRender PlainText Lazy.ByteString where mimeRender _proxy = identity -instance FromJSON ByteString where- parseJSON = withText "ByteString" (pure . encodeUtf8)+instance FromJSON Lazy.ByteString where+ parseJSON = withText "ByteString" (pure . Lazy.fromStrict . encodeUtf8)
library/Network/IPFS/Pin.hs view
@@ -13,13 +13,7 @@ import Servant.Client.Core -- | Pin a CID-add ::- ( MonadRIO cfg m- , MonadRemoteIPFS m- , MonadLogger m- )- => IPFS.CID- -> m (Either IPFS.Add.Error CID)+add :: (MonadRemoteIPFS m, MonadLogger m) => IPFS.CID -> m (Either IPFS.Add.Error CID) add cid = ipfsPin cid >>= \case Right Pin.Response { cids } -> case cids of@@ -36,13 +30,7 @@ return <| Left formattedError -- | Unpin a CID-rm ::- ( MonadRIO cfg m- , MonadRemoteIPFS m- , MonadLogger m- )- => IPFS.CID- -> m (Either IPFS.Add.Error CID)+rm :: (MonadRemoteIPFS m, MonadLogger m) => IPFS.CID -> m (Either IPFS.Add.Error CID) rm cid = ipfsUnpin cid False >>= \case Right Pin.Response { cids } -> case cids of@@ -59,36 +47,26 @@ return <| Right cid -- | Parse and Log the Servant Client Error returned from the IPFS Daemon-parseClientError ::- ( MonadRIO cfg m- , MonadLogger m- )- => ClientError- -> m Error+parseClientError :: MonadLogger m => ClientError -> m Error parseClientError err = do logError <| displayShow err return <| case err of- FailureResponse _ response ->- response- |> responseBody- |> decode- |> \case- Just IPFS.ErrorBody {message} ->- IPFSDaemonErr <| UTF8.textShow message+ FailureResponse _ response ->+ response+ |> responseBody+ |> decode+ |> \case+ Just IPFS.ErrorBody {message} ->+ IPFSDaemonErr <| UTF8.textShow message - _ ->- UnexpectedOutput <| UTF8.textShow err+ _ ->+ UnexpectedOutput <| UTF8.textShow err - unknownClientError ->- UnknownAddErr <| UTF8.textShow unknownClientError+ unknownClientError ->+ UnknownAddErr <| UTF8.textShow unknownClientError -- | Parse and Log unexpected output when attempting to pin-parseUnexpectedOutput ::- ( MonadRIO cfg m- , MonadLogger m- )- => Text- -> m IPFS.Add.Error+parseUnexpectedOutput :: MonadLogger m => Text -> m IPFS.Add.Error parseUnexpectedOutput errStr = do let baseError = UnexpectedOutput errStr
library/Network/IPFS/Prelude.hs view
@@ -4,7 +4,6 @@ , module Control.Monad.Logger , module Data.Aeson , module Data.Has- , module Network.IPFS.Internal.Constraint , module Flow , module RIO , module RIO.Process@@ -21,7 +20,6 @@ import Data.Aeson import Data.Has -import Network.IPFS.Internal.Constraint import Network.IPFS.Internal.Orphanage.Utf8Builder () import Flow
library/Network/IPFS/Process.hs view
@@ -4,7 +4,8 @@ import Network.IPFS.Process.Types runProc ::- ( MonadRIO cfg m+ ( MonadIO m+ , MonadReader cfg m , HasProcessContext cfg , HasLogFunc cfg )
library/Network/IPFS/Remote/Class.hs view
@@ -18,14 +18,15 @@ import qualified Network.IPFS.Client.Pin as Pin import qualified Network.IPFS.File.Types as File -class Monad m => MonadRemoteIPFS m where+class MonadIO m => MonadRemoteIPFS m where runRemote :: ClientM a -> m (Either ClientError a) ipfsAdd :: Lazy.ByteString -> m (Either ClientError CID) ipfsCat :: CID -> m (Either ClientError File.Serialized) ipfsPin :: CID -> m (Either ClientError Pin.Response) ipfsUnpin :: CID -> Bool -> m (Either ClientError Pin.Response)+ -- defaults ipfsAdd raw = runRemote <| IPFS.Client.add raw- ipfsCat (CID cid) = runRemote <| IPFS.Client.cat cid- ipfsPin (CID cid) = runRemote <| IPFS.Client.pin cid+ ipfsCat (CID cid) = runRemote <| IPFS.Client.cat cid+ ipfsPin (CID cid) = runRemote <| IPFS.Client.pin cid ipfsUnpin (CID cid) recursive = runRemote <| IPFS.Client.unpin cid recursive