packages feed

servant-polysemy-0.1.2: servant-polysemy.cabal

cabal-version:       2.4
name:                servant-polysemy
version:             0.1.2
synopsis:            Utilities for using servant in a polysemy stack 
description:         It's possible to use servant and polysemy together without this library, but it's not easy. This library makes it easy.
homepage:         https://github.com/AJChapman/servant-polysemy#readme
bug-reports:         https://github.com/AJChapman/servant-polysemy/issues
license:             BSD-3-Clause
license-file:        LICENSE
author:              Alex Chapman
maintainer:          alex@farfromthere.net
copyright:           2020 Alex Chapman
category:            Servant, Web
build-type:          Simple
extra-source-files:  CHANGELOG.md
                     README.md
extra-doc-files:     example/Server.hs
                     example/ServerGeneric.hs
                     example/ServerWithSwagger.hs
                     example/Client.hs
tested-with:           GHC == 8.8.4
                     , GHC == 8.10.1
                     --  GHC == 8.4.4 -- Not working due to missing extension BlockArguments
                     --, GHC == 8.6.5 -- Not working due to Polysemy.Plugin not found when generating haddocks

common deps
  build-depends:       base             >= 4.11.0.0 && < 5
                     , deepseq          >= 1.4.3.0 && < 1.5
                     , http-client     ^>= 0.6.4.1
                     , http-client-tls ^>= 0.3.5.3
                     , mtl             ^>= 2.2.2
                     , polysemy         >= 1.3.0.0 && < 1.6
                     , polysemy-plugin ^>= 0.2.4.0
                     , polysemy-zoo    ^>= 0.7.0.1
                     , servant-server   >= 0.16 && < 0.19
                     , servant-client   >= 0.16 && < 0.19
                     , wai             ^>= 3.2.1.2
                     , warp             >= 3.2.22 && < 3.4

-- Warnings list list taken from
-- https://medium.com/mercury-bank/enable-all-the-warnings-a0517bc081c3
-- Enable all warnings with -Weverything, then disable the ones we
-- don’t care about
  default-language:  Haskell2010
  ghc-options:       -Weverything
                     -Wno-all-missed-specialisations
                     -Wno-implicit-prelude
                     -Wno-missed-specialisations
                     -Wno-missing-exported-signatures
                     -Wno-missing-import-lists
                     -Wno-missing-local-signatures
                     -Wno-monomorphism-restriction
                     -Wno-missing-deriving-strategies
                     -Wno-safe
                     -Wno-unsafe
                     -fprint-potential-instances
                     -fplugin=Polysemy.Plugin
  if impl(ghc >= 8.10)
    ghc-options:     -Wno-prepositive-qualified-module
                     -Wno-missing-safe-haskell-mode

library
  import:              deps
  hs-source-dirs:      src
  default-language:    Haskell2010
  exposed-modules:     Servant.Polysemy.Client
                       Servant.Polysemy.Server

executable example-server
  import:            deps
  main-is:             Server.hs
  autogen-modules:     Paths_servant_polysemy
  other-modules:       Paths_servant_polysemy
  hs-source-dirs:      example
  default-language:    Haskell2010
  ghc-options:       -threaded
                     -rtsopts
                     -with-rtsopts=-N
  build-depends:       servant-polysemy
                     , lens

executable example-server-generic
  import:            deps
  main-is:             ServerGeneric.hs
  autogen-modules:     Paths_servant_polysemy
  other-modules:       Paths_servant_polysemy
  hs-source-dirs:      example
  default-language:    Haskell2010
  ghc-options:       -threaded
                     -rtsopts
                     -with-rtsopts=-N
  build-depends:       servant-polysemy
                     , lens
                     , servant

executable example-server-with-swagger
  import:            deps
  main-is:             ServerWithSwagger.hs
  autogen-modules:     Paths_servant_polysemy
  other-modules:       Paths_servant_polysemy
  hs-source-dirs:      example
  default-language:    Haskell2010
  ghc-options:       -threaded
                     -rtsopts
                     -with-rtsopts=-N
  build-depends:       servant-polysemy
                     , lens
                     , servant-swagger    ^>= 1.1
                     , servant-swagger-ui ^>= 0.3
                     , swagger2            >= 2.4 && < 2.7
                     , text               ^>= 1.2.3.1

executable example-client
  import:            deps
  main-is:             Client.hs
  hs-source-dirs:      example
  default-language:    Haskell2010
  ghc-options:       -threaded
                     -rtsopts
                     -with-rtsopts=-N
  build-depends:       servant-polysemy

source-repository head
  type:     git
  location: https://github.com/AJChapman/servant-polysemy