diff options
Diffstat (limited to 'src/Language/GraphQL/Execute/Internal.hs')
| -rw-r--r-- | src/Language/GraphQL/Execute/Internal.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Language/GraphQL/Execute/Internal.hs b/src/Language/GraphQL/Execute/Internal.hs new file mode 100644 index 0000000..3b75da1 --- /dev/null +++ b/src/Language/GraphQL/Execute/Internal.hs @@ -0,0 +1,25 @@ +{- This Source Code Form is subject to the terms of the Mozilla Public License, + v. 2.0. If a copy of the MPL was not distributed with this file, You can + obtain one at https://mozilla.org/MPL/2.0/. -} + +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE NamedFieldPuns #-} + +module Language.GraphQL.Execute.Internal + ( addError + ) where + +import Control.Monad.Trans.State (modify) +import Control.Monad.Catch (MonadCatch) +import Data.Sequence ((|>)) +import Language.GraphQL.Error +import Language.GraphQL.Execute.Coerce +import Prelude hiding (null) + +addError :: (Serialize a, MonadCatch m) => Error -> CollectErrsT m a +addError error' = modify appender >> pure null + where + appender :: Resolution m -> Resolution m + appender resolution@Resolution{ errors } = resolution + { errors = errors |> error' + } |
