generated from tpl/purs
fix: improve error stringification
This commit is contained in:
parent
4179367385
commit
5f8be2e1f2
@ -2,10 +2,15 @@ module Effect.Postgres.Error.Common where
|
|||||||
|
|
||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
|
import Data.Array as Array
|
||||||
import Data.Array.NonEmpty (NonEmptyArray)
|
import Data.Array.NonEmpty (NonEmptyArray)
|
||||||
|
import Data.Foldable (fold)
|
||||||
import Data.Generic.Rep (class Generic)
|
import Data.Generic.Rep (class Generic)
|
||||||
|
import Data.Maybe (maybe)
|
||||||
|
import Data.Newtype (wrap)
|
||||||
import Data.Postgres.Query (Query)
|
import Data.Postgres.Query (Query)
|
||||||
import Data.Show.Generic (genericShow)
|
import Data.Show.Generic (genericShow)
|
||||||
|
import Data.String as String
|
||||||
import Effect.Exception as Effect
|
import Effect.Exception as Effect
|
||||||
import Foreign (MultipleErrors)
|
import Foreign (MultipleErrors)
|
||||||
|
|
||||||
@ -21,7 +26,23 @@ data Error
|
|||||||
|
|
||||||
derive instance Generic Error _
|
derive instance Generic Error _
|
||||||
instance Show Error where
|
instance Show Error where
|
||||||
show = genericShow
|
show = toString
|
||||||
|
|
||||||
|
toString :: Error -> String
|
||||||
|
toString =
|
||||||
|
let
|
||||||
|
indent n s = fold $ ((fold $ Array.replicate n " ") <> _) <$> String.split (wrap "\n") s
|
||||||
|
jsError n e =
|
||||||
|
indent n (Effect.message e)
|
||||||
|
<> maybe "" (\s -> "\n" <> indent n s) (Effect.stack e)
|
||||||
|
in
|
||||||
|
case _ of
|
||||||
|
Deserializing q es -> "Deserializing " <> show q <> "\n" <> indent 1 (show es)
|
||||||
|
Serializing es -> "Serializing" <> "\n" <> indent 1 (show es)
|
||||||
|
Executing q e -> "Executing " <> show q <> "\n" <> jsError 1 e
|
||||||
|
Connecting e -> "Connecting\n" <> jsError 1 e
|
||||||
|
Disconnecting e -> "Disconnecting\n" <> jsError 1 e
|
||||||
|
Other e -> "Other\n" <> jsError 1 e
|
||||||
|
|
||||||
toException' :: Error -> Effect.Error
|
toException' :: Error -> Effect.Error
|
||||||
toException' = Effect.error <<< show
|
toException' = Effect.error <<< show
|
||||||
|
Loading…
Reference in New Issue
Block a user