diff options
Diffstat (limited to 'pkgs/build-support/node/build-npm-package/hooks/default.nix')
-rw-r--r-- | pkgs/build-support/node/build-npm-package/hooks/default.nix | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/build-support/node/build-npm-package/hooks/default.nix b/pkgs/build-support/node/build-npm-package/hooks/default.nix new file mode 100644 index 0000000000000..d2293ed42f793 --- /dev/null +++ b/pkgs/build-support/node/build-npm-package/hooks/default.nix @@ -0,0 +1,35 @@ +{ lib, makeSetupHook, nodejs, srcOnly, diffutils, jq, makeWrapper }: + +{ + npmConfigHook = makeSetupHook + { + name = "npm-config-hook"; + substitutions = { + nodeSrc = srcOnly nodejs; + + # Specify the stdenv's `diff` and `jq` by abspath to ensure that the user's build + # inputs do not cause us to find the wrong binaries. + # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available. + diff = "${diffutils.nativeDrv or diffutils}/bin/diff"; + jq = "${jq.nativeDrv or jq}/bin/jq"; + + nodeVersion = nodejs.version; + nodeVersionMajor = lib.versions.major nodejs.version; + }; + } ./npm-config-hook.sh; + + npmBuildHook = makeSetupHook + { + name = "npm-build-hook"; + } ./npm-build-hook.sh; + + npmInstallHook = makeSetupHook + { + name = "npm-install-hook"; + deps = [ makeWrapper ]; + substitutions = { + hostNode = "${nodejs}/bin/node"; + jq = "${jq.nativeDrv or jq}/bin/jq"; + }; + } ./npm-install-hook.sh; +} |