open-index/open-npm huggingface dataset:
npm package: @haskell-org/ghc-compat
Description: Allows Node.js to be invoked as a companion tool by the Glasgow Haskell Compiler (GHC) during the build process
Author: Serge S. Gulin
Latest version: 0.0.3

`Node.js` `GHC` Extensions
==========================

Allows `Node.js` to be invoked as a companion tool by the `Glasgow Haskell Compiler` (`GHC`) during the build process.

Use Cases Covered:

1. When building modules with the `TemplateHaskell` extension enabled, the process involves invoking`Node.js` to execute `TemplateHaskell` expressions within the targeted environment during the linking phase. The communication protocol between `GHC` and the helper tool, where `Node.js` functions as the executor, utilizes unnamed pipes. The behavior of unnamed pipes varies slightly across supported host platforms. On `Windows`, in particular, unnamed pipes need to be converted from `HANDLE`s to POSIX-compatible `File Descriptor`s within the child process.
npm package: @haskell-org/ghc-installer
Description: NPM wrapper for ghcup
Author: Mateusz Goślinowski
Latest version: 0.1.8

# ghc-installer
NPM wrapper for [ghcup-hs](https://github.com/haskell/ghcup-hs).

## Usage

At postinstall, the minimal installation of `ghcup` is being made in your local `node_modules`. 
The library exposes two functions:
```js
// run the given currently-set component (ghc / cabal) with args and additional options for `execa`
async function run(component, args = [], opts = {})

// install and set a given component (ghc / cabal).
async function install(component, version)
```

Note installing `ghc` requires `emsdk/emconfigure` in `PATH`. The needed version is installed and activated accordingly.
Similar functionality is also exposed if you use the package as executable.
npm package: @haskell-org/haskell-loader
Description: Webpack loader for Haskell projects
Author: Mateusz Goślinowski
Latest version: 0.1.6

# haskell-loader

Webpack loader for .cabal projects. Allows you to specify a `.cabal` or `.project` file as an entry in Webpack projects.

Example:
```js
{
  test: /\.(cabal|project)$/,
  use: 
    {
      loader: "@haskell-org/haskell-loader",
      options: {
        "install-ghc": "9.12.1",
        "install-cabal": "3.14.1.1",
        "system-tools": false, // don't use system tools since we're installing local ones
        "executable": "example"
      }
    }
},
```

You can follow an example setup [here](https://github.com/Swordlash/haskell-loader-example/).