packages feed

fractal-layer-0.1.0.0: fractal-layer.cabal

cabal-version:      3.0
name:               fractal-layer
version:            0.1.0.0
synopsis:           Composable resource management and dependency injection
description:
    Composable, type-safe resource management and dependency injection
    for Haskell, inspired by ZIO's ZLayer.
    .
    Break your application's god record into independent layers, each
    declaring exactly what it needs and what it produces. Layers compose
    via Arrow, Category, and Alternative, with automatic resource cleanup,
    concurrent initialisation, and singleton service caching.

license:            BSD-3-Clause
license-file:       LICENSE
author:             Ian Duncan
maintainer:         ian@mercury.com
category:           Control
build-type:         Simple
tested-with:        GHC == 9.10.3
extra-doc-files:    README.md
                  , CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/iand675/fractal
  subdir:   fractal-layer

common warnings
    ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates
                 -Wincomplete-uni-patterns -Wmissing-home-modules
                 -Wpartial-fields -Wredundant-constraints

common extensions
    default-extensions: OverloadedStrings
                      , OverloadedRecordDot
                      , RecordWildCards
                      , DeriveGeneric
                      , DerivingStrategies
                      , LambdaCase
                      , GeneralizedNewtypeDeriving
                      , RankNTypes
                      , ScopedTypeVariables
                      , BlockArguments

library
    import:           warnings, extensions
    exposed-modules:  Fractal.Layer
                    , Fractal.Layer.Diagnostics
                    , Fractal.Layer.Interceptor
                    , Fractal.Layer.Internal
    build-depends:    base >= 4.17.0.0 && < 5
                    , resourcet >= 1.2 && < 2
                    , unliftio >= 0.2 && < 1
                    , transformers >= 0.5 && < 0.7
                    , mtl >= 2.2 && < 3
                    , containers >= 0.6 && < 1
                    , hashable >= 1.4 && < 2
                    , unordered-containers >= 0.2 && < 1
                    , profunctors >= 5.6 && < 6
                    , selective >= 0.5 && < 1
                    , aeson >= 2.0 && < 3
                    , text >= 2.0 && < 3
                    , time >= 1.12 && < 2
    hs-source-dirs:   src
    default-language: Haskell2010

test-suite fractal-layer-test
    import:           warnings, extensions
    default-language: Haskell2010
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Spec.hs
    other-modules:    Fractal.Layer.DiagnosticsSpec
                    , Fractal.Layer.InterceptorSpec
                    , Fractal.Layer.LayerSpec
    build-tool-depends: hspec-discover:hspec-discover >= 2.10 && < 3
    build-depends:    base >= 4.17.0.0 && < 5
                    , fractal-layer
                    , hspec >= 2.10 && < 3
                    , mtl >= 2.2 && < 3
                    , profunctors >= 5.6 && < 6
                    , QuickCheck >= 2.14 && < 3
                    , unliftio >= 0.2 && < 1
                    , text >= 2.0 && < 3
                    , aeson >= 2.0 && < 3
                    , bytestring >= 0.11 && < 1
                    , resourcet >= 1.2 && < 2
                    , time >= 1.12 && < 2
                    , unordered-containers >= 0.2 && < 1
                    , selective >= 0.5 && < 1