packages feed

bugsnag-types-1.1.0.0: src/Data/Bugsnag/Types/Prelude.hs

module Data.Bugsnag.Types.Prelude
  ( module X
  , aesonOptions
  ) where

import Prelude as X

import Control.Monad as X (void)
import Data.Aeson (Options (..), defaultOptions)
import Data.Aeson as X
  ( FromJSON (..)
  , ToJSON (..)
  , genericParseJSON
  , genericToEncoding
  , genericToJSON
  )
import Data.Aeson.KeyMap as X (KeyMap)
import Data.Char (toLower)
import Data.Foldable as X (for_, traverse_)
import Data.Maybe as X (catMaybes, fromMaybe, mapMaybe)
import Data.Text as X (Text, pack, unpack)
import Data.Traversable as X (for)
import GHC.Generics as X (Generic)

aesonOptions :: Options
aesonOptions =
  defaultOptions
    { fieldLabelModifier = \case
        "type_" -> "type"
        x -> x
    , constructorTagModifier = map toLower
    , omitNothingFields = True
    }