about summary refs log tree commit diff
path: root/pkgs/development/node-packages
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-05-05 21:29:42 +0200
committerGitHub <noreply@github.com>2023-05-05 21:29:42 +0200
commit4563892ca77263ae8cc543650af64ecd0a124f86 (patch)
treefddb55ff565fb8d6567910504bc72e1de1198677 /pkgs/development/node-packages
parente31c8b22ddb121f8840e2c94fa25557b572e3bb5 (diff)
parent61c2c744a1d1170d6e6a193536885f736ba4ca7e (diff)
Merge pull request #229639 from lilyinstarlight/feature/node-aliases
nodePackages: add aliases
Diffstat (limited to 'pkgs/development/node-packages')
-rw-r--r--pkgs/development/node-packages/aliases.nix38
-rw-r--r--pkgs/development/node-packages/default.nix7
-rw-r--r--pkgs/development/node-packages/main-programs.nix1
-rw-r--r--pkgs/development/node-packages/overrides.nix2
4 files changed, 44 insertions, 4 deletions
diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix
new file mode 100644
index 0000000000000..f5b73e9f352f4
--- /dev/null
+++ b/pkgs/development/node-packages/aliases.nix
@@ -0,0 +1,38 @@
+pkgs: lib: self: super:
+
+### Deprecated aliases - for backward compatibility
+
+with self;
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+    if alias.recurseForDerivations or false
+    then removeAttrs alias ["recurseForDerivations"]
+    else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from node-packages.nix.
+  checkInPkgs = n: alias:
+    if builtins.hasAttr n super
+    then throw "Alias ${n} is still in node-packages.nix"
+    else alias;
+
+  mapAliases = aliases:
+    lib.mapAttrs (n: alias:
+      removeDistribute
+        (removeRecurseForDerivations
+          (checkInPkgs n alias)))
+      aliases;
+in
+
+mapAliases ({
+  "@githubnext/github-copilot-cli" = pkgs.github-copilot-cli; # Added 2023-05-02
+})
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 0fcd508012e8a..506dc8a525caa 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib, nodejs, stdenv}:
+{ config, pkgs, lib, nodejs, stdenv }:
 
 let
   inherit (lib) composeManyExtensions extends makeExtensible mapAttrs;
@@ -15,7 +15,12 @@ let
       })
     ) (import ./main-programs.nix);
 
+  aliases = final: prev:
+    lib.optionalAttrs config.allowAliases
+      (import ./aliases.nix pkgs lib final prev);
+
   extensions = composeManyExtensions [
+    aliases
     mainProgramOverrides
     (import ./overrides.nix { inherit pkgs nodejs; })
   ];
diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix
index 7fc28c6cdd406..ab425e91ff991 100644
--- a/pkgs/development/node-packages/main-programs.nix
+++ b/pkgs/development/node-packages/main-programs.nix
@@ -20,7 +20,6 @@
   "@commitlint/cli" = "commitlint";
   "@forge/cli" = "forge";
   "@gitbeaker/cli" = "gitbeaker";
-  "@githubnext/github-copilot-cli" = "github-copilot-cli";
   "@google/clasp" = "clasp";
   "@medable/mdctl-cli" = "mdctl";
   "@mermaid-js/mermaid-cli" = "mmdc";
diff --git a/pkgs/development/node-packages/overrides.nix b/pkgs/development/node-packages/overrides.nix
index 10c4e6e6bbc64..11ab1f8b54759 100644
--- a/pkgs/development/node-packages/overrides.nix
+++ b/pkgs/development/node-packages/overrides.nix
@@ -39,8 +39,6 @@ final: prev: {
     ];
   };
 
-  "@githubnext/github-copilot-cli" = pkgs.github-copilot-cli;
-
   "@medable/mdctl-cli" = prev."@medable/mdctl-cli".override (oldAttrs: {
     nativeBuildInputs = with pkgs; with darwin.apple_sdk.frameworks; [
       glib