cabal-version: 2.2
name:          Shpadoinkle
version:       0.3.1.0
category:      Web
author:        Isaac Shapira
maintainer:    isaac.shapira@platonic.systems
license:       BSD-3-Clause
license-file:  LICENSE
build-type:    Simple
extra-source-files:
  README.md
synopsis:
  A programming model for declarative, high performance user interface.
description:
  Shpadoinkle is an abstract frontend programming model, with one-way data flow,
  and a single source of truth. This module provides a parsimonious implementation
  of Shpadoinkle with few implementation details.


source-repository head
  type: git
  location: https://gitlab.com/platonic/shpadoinkle.git


library
  exposed-modules:
    Control.PseudoInverseCategory
    Shpadoinkle
    Shpadoinkle.Continuation
    Shpadoinkle.Core
    Shpadoinkle.Run

  hs-source-dirs: .

  ghc-options:
    -Wall
    -Wcompat
    -fwarn-redundant-constraints
    -fwarn-incomplete-uni-patterns
    -fwarn-tabs
    -fwarn-incomplete-record-updates
    -fwarn-identities

  build-depends:
      base >=4.12.0 && <4.16
    , category >=0.2 && <0.3
    , containers
    , deepseq
    , ghcjs-dom >=0.9.4 && <0.20
    , jsaddle >=0.9.7 && <0.20
    , mtl
    , text >=1.2.3 && <1.3
    , transformers
    , unliftio

  if !impl(ghcjs)
    build-depends:
        jsaddle-warp >=0.9.7 && <0.20
      , wai
      , wai-app-static
      , warp

  default-language: Haskell2010