summary refs log tree commit diff
path: root/pkgs/top-level/node-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/node-packages.nix')
-rw-r--r--pkgs/top-level/node-packages.nix36
1 files changed, 21 insertions, 15 deletions
diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix
index a23b776d112..206dd1c87ce 100644
--- a/pkgs/top-level/node-packages.nix
+++ b/pkgs/top-level/node-packages.nix
@@ -7,23 +7,29 @@ let
     let
       all = pkgs.lib.fold (pkg: { top-level, full }: {
         top-level = top-level ++ pkgs.lib.optional pkg.topLevel {
-          name = pkg.baseName;
-          value = builtins.getAttr pkg.fullName self.full;
+          name = pkg.name;
+          value = builtins.getAttr pkg.spec (builtins.getAttr pkg.name self.full);
         };
-        full = [ {
-          name = pkg.fullName;
-          value = pkgs.lib.makeOverridable buildNodePackage rec {
-            name = "${pkg.baseName}-${pkg.version}";
-            src = (if pkg.patchLatest then patchLatest else fetchurl) {
-              url = "http://registry.npmjs.org/${pkg.baseName}/-/${name}.tgz";
-              sha256 = pkg.hash;
+        full = full // builtins.listToAttrs [ {
+          inherit (pkg) name;
+          value = (if builtins.hasAttr pkg.name full
+            then builtins.getAttr pkg.name full
+            else {}
+          ) // builtins.listToAttrs [ {
+            name = pkg.spec;
+            value = pkgs.lib.makeOverridable buildNodePackage {
+              name = "${pkg.name}-${pkg.version}";
+              src = (if pkg.patchLatest then patchLatest else fetchurl) {
+                url = pkg.tarball;
+                sha1 = pkg.sha1 or "";
+                sha256 = pkg.sha256 or "";
+              };
+              deps = map (dep: builtins.getAttr dep.spec (builtins.getAttr dep.name self.full)) pkg.dependencies;
             };
-            deps = map (dep: builtins.getAttr "${dep.name}-${dep.range}" self.full) pkg.dependencies;
-            buildInputs = if builtins.hasAttr name nativeDeps then builtins.getAttr name nativeDeps else [];
-          };
-        } ] ++ full;
-      } ) { top-level = []; full = []; } generated;
-    in builtins.listToAttrs all.top-level // { full = builtins.listToAttrs all.full; };
+          } ];
+        } ];
+      } ) { top-level = []; full = {}; } generated;
+    in builtins.listToAttrs all.top-level // { inherit (all) full; };
 in {
   inherit importGeneratedPackages;