@@ -15,14 +15,14 @@ module Cardano.DbSync.Config.Node (
15
15
16
16
import qualified Cardano.Chain.Update as Byron
17
17
import Cardano.Crypto (RequiresNetworkMagic (.. ))
18
- import Cardano.Db (textShow )
19
18
import Cardano.DbSync.Config.Types
20
19
import Cardano.Prelude
21
20
import Data.Aeson (FromJSON (.. ), Object , (.:) , (.:?) )
22
21
import qualified Data.Aeson as Aeson
23
22
import Data.Aeson.Types (Parser )
24
23
import qualified Data.Yaml as Yaml
25
24
import qualified Ouroboros.Consensus.Cardano.CanHardFork as Shelley
25
+ import Data.String (String )
26
26
27
27
data NodeConfig = NodeConfig
28
28
{ ncProtocol :: ! SyncProtocol
@@ -49,11 +49,17 @@ data NodeConfig = NodeConfig
49
49
ncConwayHardFork :: ! Shelley. TriggerHardFork
50
50
}
51
51
52
- parseNodeConfig :: ByteString -> NodeConfig
52
+ newtype NodeConfigParseError =
53
+ NodeConfigParseError String
54
+ deriving (Show )
55
+
56
+ instance Exception NodeConfigParseError
57
+
58
+ parseNodeConfig :: ByteString -> IO (Either NodeConfigParseError NodeConfig )
53
59
parseNodeConfig bs =
54
60
case Yaml. decodeEither' bs of
55
- Left err -> panic $ " Error parsing node config: " <> textShow err
56
- Right nc -> nc
61
+ Left err -> pure $ Left $ NodeConfigParseError ( " Error parsing node config: " <> show err)
62
+ Right nc -> pure $ Right nc
57
63
58
64
-- -------------------------------------------------------------------------------------------------
59
65
0 commit comments