packages feed

acolyte-codegen-0.1.0.0: acolyte-codegen.cabal

cabal-version:   3.0
name:            acolyte-codegen
version:         0.1.0.0
synopsis:        Generate acolyte API types from OpenAPI/Swagger specs
category:        Web
description:
  Reads an OpenAPI 3.x or Swagger 2.0 JSON spec and generates Haskell
  modules with type-level API definitions, path types, request/response
  data types, and handler stubs. The generated code uses
  acolyte-core types and gets server, client, and OpenAPI
  generation for free.

license:         BSD-3-Clause
license-file:    LICENSE
author:          Josh Burgess
maintainer:      Josh Burgess <joshburgess.webdev@gmail.com>
homepage:        https://github.com/joshburgess/acolyte
bug-reports:     https://github.com/joshburgess/acolyte/issues
build-type:      Simple

extra-doc-files:
  CHANGELOG.md

library
  exposed-modules:
    Acolyte.Codegen
    Acolyte.Codegen.Parse
    Acolyte.Codegen.IR
    Acolyte.Codegen.Emit
    Acolyte.Codegen.Proto
    Acolyte.Codegen.ProtoDiff
    Acolyte.Codegen.Scaffold

  build-depends:
      base                    >= 4.20 && < 5
    , aeson                   >= 2.1  && < 2.3
    , yaml                    >= 0.11 && < 0.12
    , bytestring              >= 0.11 && < 0.13
    , text                    >= 2.0  && < 2.2
    , containers              >= 0.6  && < 0.8
    , filepath                >= 1.4  && < 1.6
    , directory               >= 1.3  && < 1.5

  hs-source-dirs: src
  default-language: GHC2024
  default-extensions:
    OverloadedStrings
    DeriveGeneric
    StrictData

  ghc-options: -Wall -funbox-strict-fields

executable acolyte-codegen
  main-is: Main.hs
  hs-source-dirs: app
  default-language: GHC2024
  default-extensions:
    OverloadedStrings

  build-depends:
      base                       >= 4.20 && < 5
    , acolyte-codegen
    , aeson                      >= 2.1  && < 2.3
    , bytestring                 >= 0.11 && < 0.13
    , text                       >= 2.0  && < 2.2

test-suite spec
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs: test
  default-language: GHC2024
  default-extensions:
    OverloadedStrings
    StrictData

  ghc-options: -Wall -rtsopts "-with-rtsopts=-K1K"

  build-depends:
      base                       >= 4.20 && < 5
    , acolyte-codegen
    , aeson                      >= 2.1  && < 2.3
    , bytestring                 >= 0.11 && < 0.13
    , text                       >= 2.0  && < 2.2

test-suite properties
  type: exitcode-stdio-1.0
  main-is: Properties.hs
  hs-source-dirs: test
  default-language: GHC2024
  default-extensions:
    OverloadedStrings
    StrictData
  ghc-options: -Wall
  build-depends:
      base                       >= 4.20 && < 5
    , acolyte-codegen
    , hedgehog                   >= 1.4  && < 1.8
    , text                       >= 2.0  && < 2.2

source-repository head
  type:     git
  location: https://github.com/joshburgess/acolyte.git