summaryrefslogtreecommitdiff
path: root/pkgs/development/compilers/elm/default.nix
blob: fadfd279cdc7fef2b76acfd4bb00a2f62fc131f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
  pkgs,
  lib,
  makeWrapper,
  nodejs,
  config,
}:

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
      ;
  };

  assembleScope = self: basics: (hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // basics;
in
lib.makeScope pkgs.newScope (
  self:
  assembleScope self (
    with self;
    {
      inherit fetchElmDeps nodejs;

      elmLib = import ./lib {
        inherit lib;
        inherit (pkgs) writeScriptBin stdenv;
        inherit (self) elm;
      };

      elm-analyse = callPackage ./packages/elm-analyse { };

      elm-doc-preview = callPackage ./packages/elm-doc-preview { };

      elm-git-install = callPackage ./packages/elm-git-install { };

      elm-graphql = callPackage ./packages/elm-graphql { };

      elm-json = callPackage ./packages/elm-json { };

      elm-language-server = callPackage ./packages/elm-language-server { };

      elm-live = callPackage ./packages/elm-live { };

      elm-optimize-level-2 = callPackage ./packages/elm-optimize-level-2 { };

      elm-review = callPackage ./packages/elm-review { };

      elm-spa = callPackage ./packages/elm-spa { };

      elm-test-rs = callPackage ./packages/elm-test-rs { };

      elm-test = callPackage ./packages/elm-test { };

      elm-upgrade = callPackage ./packages/elm-upgrade { };

      elm-verify-examples = callPackage ./packages/elm-verify-examples { };

      elm-xref = callPackage ./packages/elm-xref { };

      lamdera = callPackage ./packages/lamdera { };
    }
    // lib.optionalAttrs config.allowAliases {
      create-elm-app = throw "'elmPackages.create-elm-app' has not had a release since December 2020, so it was removed."; # Added 2025-11-15
      elm-pages = throw "'elmPackages.elm-pages' has been removed, as it was broken in nixpkgs and was not maintained."; # Added 2025-11-15
    }
  )
)