lol
at 24.11-pre 139 lines 5.2 kB view raw
1{ pkgs, lib, nodejs, makeWrapper }: self: 2 3let 4 # Untouched npm-downloaded packages 5 nodePkgs = pkgs.callPackage ./node-composition.nix { 6 inherit pkgs nodejs; 7 inherit (pkgs.stdenv.hostPlatform) system; 8 }; 9in 10with self; with elmLib; { 11 inherit (nodePkgs) elm-live elm-upgrade elm-xref elm-analyse elm-git-install; 12 13 elm-verify-examples = 14 let 15 patched = patchBinwrap [ elmi-to-json ] nodePkgs.elm-verify-examples // { 16 meta = with lib; nodePkgs.elm-verify-examples.meta // { 17 description = "Verify examples in your docs"; 18 homepage = "https://github.com/stoeffel/elm-verify-examples"; 19 license = licenses.bsd3; 20 maintainers = [ maintainers.turbomack ]; 21 }; 22 }; 23 in 24 patched.override (old: { 25 preRebuild = (old.preRebuild or "") + '' 26 # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done 27 # in case of just this package 28 # TODO: investigate, same as for elm-coverage below 29 sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json 30 ''; 31 }); 32 33 elm-coverage = 34 let 35 patched = patchNpmElm (patchBinwrap [ elmi-to-json ] nodePkgs.elm-coverage); 36 in 37 patched.override (old: { 38 # Symlink Elm instrument binary 39 preRebuild = (old.preRebuild or "") + '' 40 # Noop custom installation script 41 sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json 42 43 # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done 44 # in case of just this package 45 # TODO: investigate 46 sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json 47 ''; 48 postInstall = (old.postInstall or "") + '' 49 mkdir -p unpacked_bin 50 ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument 51 ''; 52 meta = with lib; nodePkgs.elm-coverage.meta // { 53 description = "Work in progress - Code coverage tooling for Elm"; 54 homepage = "https://github.com/zwilias/elm-coverage"; 55 license = licenses.bsd3; 56 maintainers = [ maintainers.turbomack ]; 57 }; 58 }); 59 60 create-elm-app = patchNpmElm 61 nodePkgs.create-elm-app // { 62 meta = with lib; nodePkgs.create-elm-app.meta // { 63 description = "Create Elm apps with no build configuration"; 64 homepage = "https://github.com/halfzebra/create-elm-app"; 65 license = licenses.mit; 66 maintainers = [ maintainers.turbomack ]; 67 }; 68 }; 69 70 elm-graphql = 71 nodePkgs."@dillonkearns/elm-graphql" // { 72 meta = with lib; nodePkgs."@dillonkearns/elm-graphql".meta // { 73 description = " Autogenerate type-safe GraphQL queries in Elm."; 74 license = licenses.bsd3; 75 maintainers = [ maintainers.pedrohlc ]; 76 }; 77 }; 78 79 elm-review = 80 nodePkgs.elm-review // { 81 meta = with lib; nodePkgs.elm-review.meta // { 82 description = "Analyzes Elm projects, to help find mistakes before your users find them"; 83 homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}"; 84 license = licenses.bsd3; 85 maintainers = [ maintainers.turbomack ]; 86 }; 87 }; 88 89 elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // { 90 meta = with lib; nodePkgs."@elm-tooling/elm-language-server".meta // { 91 description = "Language server implementation for Elm"; 92 homepage = "https://github.com/elm-tooling/elm-language-server"; 93 license = licenses.mit; 94 maintainers = [ maintainers.turbomack ]; 95 }; 96 }; 97 98 elm-spa = nodePkgs."elm-spa".overrideAttrs ( 99 old: { 100 nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ]; 101 102 meta = with lib; nodePkgs."elm-spa".meta // { 103 description = "A tool for building single page apps in Elm"; 104 homepage = "https://www.elm-spa.dev/"; 105 license = licenses.bsd3; 106 maintainers = [ maintainers.ilyakooo0 ]; 107 }; 108 } 109 ); 110 111 elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // { 112 meta = with lib; nodePkgs."elm-optimize-level-2".meta // { 113 description = "A second level of optimization for the Javascript that the Elm Compiler produces"; 114 homepage = "https://github.com/mdgriffith/elm-optimize-level-2"; 115 license = licenses.bsd3; 116 maintainers = [ maintainers.turbomack ]; 117 }; 118 }; 119 120 elm-pages = import ./elm-pages { inherit nodePkgs pkgs lib makeWrapper; }; 121 122 elm-land = 123 let 124 patched = patchNpmElm nodePkgs.elm-land; 125 in 126 patched.override (old: { 127 meta = with lib; nodePkgs."elm-land".meta // { 128 description = "A production-ready framework for building Elm applications."; 129 homepage = "https://elm.land/"; 130 license = licenses.bsd3; 131 maintainers = [ maintainers.zupo ]; 132 }; 133 } 134 ); 135 136 elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: { 137 nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ]; 138 }); 139}