diff --git a/pkgs/build-support/node/fetch-yarn-deps/default.nix b/pkgs/build-support/node/fetch-yarn-deps/default.nix index 4ef74c0cab88..433dc17a75e3 100644 --- a/pkgs/build-support/node/fetch-yarn-deps/default.nix +++ b/pkgs/build-support/node/fetch-yarn-deps/default.nix @@ -1,4 +1,16 @@ -{ stdenv, lib, makeWrapper, coreutils, nix-prefetch-git, fetchurl, nodejs-slim, prefetch-yarn-deps, cacert, callPackage, nix }: +{ + stdenv, + lib, + makeWrapper, + coreutils, + nix-prefetch-git, + fetchurl, + nodejs-slim, + prefetch-yarn-deps, + cacert, + callPackage, + nix, +}: let yarnpkg-lockfile-tar = fetchurl { @@ -6,9 +18,9 @@ let hash = "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="; }; - tests = callPackage ./tests {}; - -in { + tests = callPackage ./tests { }; +in +{ prefetch-yarn-deps = stdenv.mkDerivation { name = "prefetch-yarn-deps"; @@ -30,12 +42,20 @@ in { patchShebangs $out/libexec makeWrapper $out/libexec/index.js $out/bin/prefetch-yarn-deps \ - --prefix PATH : ${lib.makeBinPath [ coreutils nix-prefetch-git nix ]} + --prefix PATH : ${ + lib.makeBinPath [ + coreutils + nix-prefetch-git + nix + ] + } runHook postInstall ''; - passthru = { inherit tests; }; + passthru = { + inherit tests; + }; }; fixup-yarn-lock = stdenv.mkDerivation { @@ -63,45 +83,75 @@ in { runHook postInstall ''; - passthru = { inherit tests; }; + passthru = { + inherit tests; + }; }; - fetchYarnDeps = let - f = { - name ? "offline", - src ? null, - hash ? "", - sha256 ? "", - ... - }@args: let - hash_ = - if hash != "" then { outputHashAlgo = null; outputHash = hash; } - else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; } - else { outputHashAlgo = "sha256"; outputHash = lib.fakeSha256; }; - in stdenv.mkDerivation ({ - inherit name; + fetchYarnDeps = + let + f = + { + name ? "offline", + src ? null, + hash ? "", + sha256 ? "", + ... + }@args: + let + hash_ = + if hash != "" then + { + outputHashAlgo = null; + outputHash = hash; + } + else if sha256 != "" then + { + outputHashAlgo = "sha256"; + outputHash = sha256; + } + else + { + outputHashAlgo = "sha256"; + outputHash = lib.fakeSha256; + }; + in + stdenv.mkDerivation ( + { + inherit name; - dontUnpack = src == null; - dontInstall = true; + dontUnpack = src == null; + dontInstall = true; - nativeBuildInputs = [ prefetch-yarn-deps cacert ]; - GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + nativeBuildInputs = [ + prefetch-yarn-deps + cacert + ]; + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - yarnLock=''${yarnLock:=$PWD/yarn.lock} - mkdir -p $out - (cd $out; prefetch-yarn-deps --verbose --builder $yarnLock) + yarnLock=''${yarnLock:=$PWD/yarn.lock} + mkdir -p $out + (cd $out; prefetch-yarn-deps --verbose --builder $yarnLock) - runHook postBuild - ''; + runHook postBuild + ''; - outputHashMode = "recursive"; - } // hash_ // (removeAttrs args (["name" "hash" "sha256"] ++ (lib.optional (src == null) "src")))); - - in lib.setFunctionArgs f (lib.functionArgs f) // { - inherit tests; - }; + outputHashMode = "recursive"; + } + // hash_ + // (removeAttrs args ( + [ + "name" + "hash" + "sha256" + ] + ++ (lib.optional (src == null) "src") + )) + ); + in + lib.setFunctionArgs f (lib.functionArgs f) // { inherit tests; }; }