{ config, pkgs, lib, nodejs, stdenv, }: let inherit (lib) composeManyExtensions extends makeExtensible mapAttrs ; nodePackages = final: import ./composition.nix { inherit pkgs nodejs; inherit (stdenv.hostPlatform) system; }; mainProgramOverrides = final: prev: mapAttrs ( pkgName: mainProgram: prev.${pkgName}.override (oldAttrs: { meta = oldAttrs.meta // { inherit mainProgram; }; }) ) (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; }) ]; in makeExtensible (extends extensions nodePackages)