about summary refs log tree commit diff
path: root/pkgs/development/tools/pnpm/fetch-deps/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/pnpm/fetch-deps/default.nix')
-rw-r--r--pkgs/development/tools/pnpm/fetch-deps/default.nix13
1 files changed, 10 insertions, 3 deletions
diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix
index 83972abf8b08a..eb8b847960c53 100644
--- a/pkgs/development/tools/pnpm/fetch-deps/default.nix
+++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix
@@ -1,17 +1,17 @@
 {
+  lib,
   stdenvNoCC,
-  fetchurl,
   callPackage,
   jq,
   moreutils,
   cacert,
   makeSetupHook,
   pnpm,
+  yq,
 }:
 {
   fetchDeps =
     {
-      src,
       hash ? "",
       pname,
       ...
@@ -36,15 +36,22 @@
         name = "${pname}-pnpm-deps";
 
         nativeBuildInputs = [
+          cacert
           jq
           moreutils
           pnpm
-          cacert
+          yq
         ];
 
         installPhase = ''
           runHook preInstall
 
+          lockfileVersion="$(yq -r .lockfileVersion pnpm-lock.yaml)"
+          if [[ ''${lockfileVersion:0:1} -gt ${lib.versions.major pnpm.version} ]]; then
+            echo "ERROR: lockfileVersion $lockfileVersion in pnpm-lock.yaml is too new for the provided pnpm version ${lib.versions.major pnpm.version}!"
+            exit 1
+          fi
+
           export HOME=$(mktemp -d)
           pnpm config set store-dir $out
           # Some packages produce platform dependent outputs. We do not want to cache those in the global store