packages feed

ghc-wasm-bindgen-0.1.0.0: ghc-wasm-bindgen.cabal

cabal-version:      3.0
name:               ghc-wasm-bindgen
version:            0.1.0.0
synopsis:           JavaScript/TypeScript bindings for GHC's WASM backend
description:
    Generates JavaScript and TypeScript bindings for a pure Haskell module
    compiled with GHC's WebAssembly backend. The module's export list is the
    API: functions become typed JS functions, and data types become
    TypeScript types with constructors.

    @ghc-wasm-bindgen build@ builds a cabal project into an npm package (JS
    bindings, TypeScript declarations, the .wasm and a small runtime).
    @ghc-wasm-bindgen generate@ only writes the bindings, for plain source
    files compiled by hand.

    See the README for supported types and usage.
category:           Web, WebAssembly, JavaScript, Development
homepage:           https://github.com/joaquin-rossi/ghc-wasm-bindgen
bug-reports:        https://github.com/joaquin-rossi/ghc-wasm-bindgen/issues
license:            MIT
license-file:       LICENSE
author:             Joaquín Rossi
maintainer:         joaquin@joaquinrossi.net
copyright:          2026 Joaquín Rossi
build-type:         Simple
tested-with:        GHC == 9.10.3
extra-doc-files:
    README.md
    CHANGELOG.md
extra-source-files:
    runtime-js/ghc_wasm_bindgen_runtime.js
    runtime-js/ghc_wasm_bindgen_runtime.d.ts
    runtime-js/ghc_wasm_bindgen_internal.js
    runtime-js/ghc_wasm_bindgen_internal.d.ts
    runtime-js/ghc_wasm_jsffi.d.ts
    runtime-hs/GhcWasmBindgen/Runtime.hs
    test/errors/*.hs

source-repository head
    type:     git
    location: https://github.com/joaquin-rossi/ghc-wasm-bindgen.git

common shared
    default-language: GHC2021
    default-extensions: LambdaCase, OverloadedStrings
    ghc-options:      -Wall
    build-depends:
        base >=4.20 && <4.21,
        bytestring >=0.11 && <0.13,
        text >=2.0 && <2.2

library
    import:           shared
    hs-source-dirs:   src
    exposed-modules:
        GhcWasmBindgen
        GhcWasmBindgen.Model
        GhcWasmBindgen.Inspect
        GhcWasmBindgen.EmitHaskell
        GhcWasmBindgen.EmitJavaScript
    build-depends:
        -- The GHC that typechecks the user's module is the one this tool is
        -- built with (ghc-paths); only Inspect imports it.
        ghc ==9.10.*,
        ghc-paths >=0.1.0.12 && <0.2,
        containers >=0.6 && <0.8,
        directory >=1.3.8 && <1.4,
        filepath >=1.4.100 && <1.6,
        file-embed >=0.0.15 && <0.1,
        process >=1.6.17 && <1.7

executable ghc-wasm-bindgen
    import:           shared
    hs-source-dirs:   app
    main-is:          Main.hs
    build-depends:    ghc-wasm-bindgen

test-suite tests
    import:           shared
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Main.hs
    other-modules:    Errors
    build-depends:    ghc-wasm-bindgen