name:                servant-checked-exceptions
version:             0.4.1.0
synopsis:            Checked exceptions for Servant APIs.
description:         Please see <https://github.com/cdepillabout/servant-checked-exceptions#readme README.md>.
homepage:            https://github.com/cdepillabout/servant-checked-exceptions
license:             BSD3
license-file:        LICENSE
author:              Dennis Gosnell
maintainer:          cdep.illabout@gmail.com
copyright:           2017 Dennis Gosnell
category:            Text
build-type:          Simple
extra-source-files:  CHANGELOG.md
                   , README.md
                   , stack.yaml
cabal-version:       >=1.10

flag buildexample
  description: Build a small example program
  default: False

library
  hs-source-dirs:      src
  exposed-modules:     Servant.Checked.Exceptions
                     , Servant.Checked.Exceptions.Internal
                     , Servant.Checked.Exceptions.Internal.Envelope
                     , Servant.Checked.Exceptions.Internal.Prism
                     , Servant.Checked.Exceptions.Internal.Product
                     , Servant.Checked.Exceptions.Internal.Servant
                     , Servant.Checked.Exceptions.Internal.Servant.API
                     , Servant.Checked.Exceptions.Internal.Servant.Client
                     , Servant.Checked.Exceptions.Internal.Servant.Docs
                     , Servant.Checked.Exceptions.Internal.Servant.Server
                     , Servant.Checked.Exceptions.Internal.Union
                     , Servant.Checked.Exceptions.Internal.Util
  build-depends:       base >= 4.8 && < 5
                     , aeson
                     , bytestring
                     , deepseq
                     , http-media
                     , profunctors
                     , tagged
                     , servant >= 0.9
                     , servant-client >= 0.9
                     , servant-docs >= 0.9
                     , servant-server >= 0.9
                     , text
  default-language:    Haskell2010
  ghc-options:         -Wall -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction
  other-extensions:    QuasiQuotes
                     , TemplateHaskell

executable servant-checked-exceptions-example-client
  main-is:             Client.hs
  other-modules:       Api
  hs-source-dirs:      example
  build-depends:       base
                     , aeson
                     , http-api-data
                     , http-client
                     , optparse-applicative
                     , servant
                     , servant-checked-exceptions
                     , servant-client
                     , text
  default-language:    Haskell2010
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N

  if flag(buildexample)
    buildable:         True
  else
    buildable:         False

executable servant-checked-exceptions-example-docs
  main-is:             Docs.hs
  other-modules:       Api
  hs-source-dirs:      example
  build-depends:       base
                     , aeson
                     , http-api-data
                     , servant
                     , servant-checked-exceptions
                     , servant-docs
                     , text
  default-language:    Haskell2010
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N

  if flag(buildexample)
    buildable:         True
  else
    buildable:         False

executable servant-checked-exceptions-example-server
  main-is:             Server.hs
  other-modules:       Api
  hs-source-dirs:      example
  build-depends:       base
                     , aeson
                     , http-api-data
                     , natural-transformation
                     , servant
                     , servant-checked-exceptions
                     , servant-server
                     , text
                     , wai
                     , warp
  default-language:    Haskell2010
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N

  if flag(buildexample)
    buildable:         True
  else
    buildable:         False

test-suite servant-checked-exceptions-doctest
  type:                exitcode-stdio-1.0
  main-is:             DocTest.hs
  hs-source-dirs:      test
  build-depends:       base
                     , doctest
                     , Glob
  default-language:    Haskell2010
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N

test-suite servant-checked-exceptions-test
  type:                exitcode-stdio-1.0
  main-is:             Spec.hs
  other-modules:
  hs-source-dirs:      test
  build-depends:       base
                     , bytestring
                     , hspec-wai
                     , tasty
                     , tasty-hspec
                     , tasty-hunit
                     , servant
                     , servant-checked-exceptions
                     , servant-server
                     , wai
  default-language:    Haskell2010
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction

source-repository head
  type:     git
  location: git@github.com:cdepillabout/servant-checked-exceptions.git