1{ 2 config, 3 pkgs, 4 lib, 5 nodejs, 6 stdenv, 7}: 8 9let 10 inherit (lib) 11 composeManyExtensions 12 extends 13 makeExtensible 14 mapAttrs 15 ; 16 17 nodePackages = 18 final: 19 import ./composition.nix { 20 inherit pkgs nodejs; 21 inherit (stdenv.hostPlatform) system; 22 }; 23 24 mainProgramOverrides = 25 final: prev: 26 mapAttrs ( 27 pkgName: mainProgram: 28 prev.${pkgName}.override (oldAttrs: { 29 meta = oldAttrs.meta // { 30 inherit mainProgram; 31 }; 32 }) 33 ) (import ./main-programs.nix); 34 35 aliases = 36 final: prev: lib.optionalAttrs config.allowAliases (import ./aliases.nix pkgs lib final prev); 37 38 extensions = composeManyExtensions [ 39 aliases 40 mainProgramOverrides 41 (import ./overrides.nix { inherit pkgs nodejs; }) 42 ]; 43in 44makeExtensible (extends extensions nodePackages)