packages feed

jsaddle-wasm-0.1.2.0: jsaddle-wasm.cabal

cabal-version: 3.0
name: jsaddle-wasm
version: 0.1.2.0
synopsis: Run JSaddle JSM with the GHC Wasm backend
description: Run JSaddle @JSM@ with the GHC Wasm backend.
category: Web, Javascript
homepage: https://github.com/amesgen/jsaddle-wasm
bug-reports: https://github.com/amesgen/jsaddle-wasm/issues
license: CC0-1.0
license-file: LICENSE
extra-source-files: README.md
author: amesgen
maintainer: amesgen@amesgen.de
extra-doc-files: CHANGELOG.md

source-repository head
  location: https://github.com/amesgen/jsaddle-wasm
  type: git

flag eval-via-jsffi
  description:
    Generate Wasm JSFFI imports for the TemplateHaskell utilities in
    @Language.Javascript.JSaddle.Wasm.TH@.

  default: True
  manual: True

common common
  ghc-options:
    -Wall
    -Wunused-packages
    -Wredundant-constraints

  default-language: GHC2021
  default-extensions:
    BlockArguments
    LambdaCase
    OverloadedStrings
    TemplateHaskellQuotes

library js
  import: common
  visibility: public
  hs-source-dirs: src-js
  exposed-modules:
    Language.Javascript.JSaddle.Wasm.JS

  build-depends:
    base >=4.16 && <5,
    bytestring >=0.11 && <0.13,
    jsaddle ^>=0.9,

library
  import: common
  hs-source-dirs: src
  exposed-modules:
    Language.Javascript.JSaddle.Wasm
    Language.Javascript.JSaddle.Wasm.TH

  other-modules:
    Language.Javascript.JSaddle.Wasm.Internal

  build-depends:
    base >=4.16 && <5,
    jsaddle ^>=0.9,
    jsaddle-wasm:js,
    template-haskell >=2.20 && <2.24,

  if arch(wasm32)
    build-depends:
      aeson >=2 && <2.3,
      bytestring >=0.11 && <0.13,
      ghc-experimental ^>=0.1 || >=9.1000 && <9.1300,
      parser-regex ^>=0.3,
      stm ^>=2.5,

    other-modules:
      Language.Javascript.JSaddle.Wasm.Internal.TH

    hs-source-dirs: src-wasm

    if flag(eval-via-jsffi)
      cpp-options: -DEVAL_VIA_JSFFI
  else
    hs-source-dirs: src-native