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)