Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

70 lines
1.5 KiB
Nix
Raw Permalink Normal View History

2025-10-09 14:15:47 +02:00
{
pkgs,
lib,
makeWrapper,
nodejs ? pkgs.nodejs_20,
}:
let
fetchElmDeps = pkgs.callPackage ./lib/fetchElmDeps.nix { };
# Haskell packages that require ghc 9.8
hs98Pkgs = import ./packages/ghc9_8 { inherit pkgs lib; };
# Haskell packages that require ghc 9.6
hs96Pkgs = import ./packages/ghc9_6 {
inherit
pkgs
lib
makeWrapper
nodejs
fetchElmDeps
;
};
# Patched, originally npm-downloaded, packages
patchedNodePkgs = import ./packages/node {
inherit
pkgs
lib
nodejs
makeWrapper
;
};
assembleScope =
self: basics:
(hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // (patchedNodePkgs self) // basics;
in
lib.makeScope pkgs.newScope (
self:
assembleScope self (
with self;
{
inherit fetchElmDeps nodejs;
/*
Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.
* Packages which depend on npm installation of elm can be patched using
`patchNpmElm` function defined in `packages/lib.nix`.
*/
elmLib = import ./lib {
inherit lib;
inherit (pkgs) writeScriptBin stdenv;
inherit (self) elm;
};
elm-json = callPackage ./packages/elm-json { };
elm-review = callPackage ./packages/elm-review { };
elm-test-rs = callPackage ./packages/elm-test-rs { };
elm-test = callPackage ./packages/elm-test { };
lamdera = callPackage ./packages/lamdera { };
}
)
)