140 lines
5.0 KiB
Nix
140 lines
5.0 KiB
Nix
{ pkgs, lib, nodejs, makeWrapper }: self:
|
|
|
|
let
|
|
# Untouched npm-downloaded packages
|
|
nodePkgs = pkgs.callPackage ./node-composition.nix {
|
|
inherit pkgs nodejs;
|
|
inherit (pkgs.stdenv.hostPlatform) system;
|
|
};
|
|
in
|
|
with self; with elmLib; {
|
|
inherit (nodePkgs) elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
|
|
|
|
elm-verify-examples =
|
|
let
|
|
patched = patchBinwrap [ elmi-to-json ] nodePkgs.elm-verify-examples // {
|
|
meta = with lib; nodePkgs.elm-verify-examples.meta // {
|
|
description = "Verify examples in your docs";
|
|
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.turbomack ];
|
|
};
|
|
};
|
|
in
|
|
patched.override (old: {
|
|
preRebuild = (old.preRebuild or "") + ''
|
|
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
|
|
# in case of just this package
|
|
# TODO: investigate, same as for elm-coverage below
|
|
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
|
|
'';
|
|
});
|
|
|
|
elm-coverage =
|
|
let
|
|
patched = patchNpmElm (patchBinwrap [ elmi-to-json ] nodePkgs.elm-coverage);
|
|
in
|
|
patched.override (old: {
|
|
# Symlink Elm instrument binary
|
|
preRebuild = (old.preRebuild or "") + ''
|
|
# Noop custom installation script
|
|
sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
|
|
|
|
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
|
|
# in case of just this package
|
|
# TODO: investigate
|
|
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
|
|
'';
|
|
postInstall = (old.postInstall or "") + ''
|
|
mkdir -p unpacked_bin
|
|
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
|
|
'';
|
|
meta = with lib; nodePkgs.elm-coverage.meta // {
|
|
description = "Work in progress - Code coverage tooling for Elm";
|
|
homepage = "https://github.com/zwilias/elm-coverage";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.turbomack ];
|
|
};
|
|
});
|
|
|
|
create-elm-app = patchNpmElm
|
|
nodePkgs.create-elm-app // {
|
|
meta = with lib; nodePkgs.create-elm-app.meta // {
|
|
description = "Create Elm apps with no build configuration";
|
|
homepage = "https://github.com/halfzebra/create-elm-app";
|
|
license = licenses.mit;
|
|
maintainers = [ maintainers.turbomack ];
|
|
};
|
|
};
|
|
|
|
elm-graphql =
|
|
nodePkgs."@dillonkearns/elm-graphql" // {
|
|
meta = with lib; nodePkgs."@dillonkearns/elm-graphql".meta // {
|
|
description = " Autogenerate type-safe GraphQL queries in Elm.";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.pedrohlc ];
|
|
};
|
|
};
|
|
|
|
elm-review =
|
|
nodePkgs.elm-review // {
|
|
meta = with lib; nodePkgs.elm-review.meta // {
|
|
description = "Analyzes Elm projects, to help find mistakes before your users find them";
|
|
homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.turbomack ];
|
|
};
|
|
};
|
|
|
|
elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
|
|
meta = with lib; nodePkgs."@elm-tooling/elm-language-server".meta // {
|
|
description = "Language server implementation for Elm";
|
|
homepage = "https://github.com/elm-tooling/elm-language-server";
|
|
license = licenses.mit;
|
|
maintainers = [ maintainers.turbomack ];
|
|
};
|
|
};
|
|
|
|
elm-spa = nodePkgs."elm-spa".overrideAttrs (
|
|
old: {
|
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ];
|
|
|
|
meta = with lib; nodePkgs."elm-spa".meta // {
|
|
description = "A tool for building single page apps in Elm";
|
|
homepage = "https://www.elm-spa.dev/";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.ilyakooo0 ];
|
|
};
|
|
}
|
|
);
|
|
|
|
elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
|
|
meta = with lib; nodePkgs."elm-optimize-level-2".meta // {
|
|
description = "A second level of optimization for the Javascript that the Elm Compiler produces";
|
|
homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.turbomack ];
|
|
};
|
|
};
|
|
|
|
elm-pages = import ./elm-pages { inherit nodePkgs pkgs lib makeWrapper; };
|
|
|
|
elm-land =
|
|
let
|
|
patched = patchNpmElm nodePkgs.elm-land;
|
|
in
|
|
patched.override (old: {
|
|
meta = with lib; nodePkgs."elm-land".meta // {
|
|
description = "A production-ready framework for building Elm applications.";
|
|
homepage = "https://elm.land/";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.zupo ];
|
|
};
|
|
}
|
|
);
|
|
|
|
elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
|
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ];
|
|
});
|
|
}
|