How to pass through nixosModules in flakes

How about something like:

{
  description = "Flake A";
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

  outputs = { self, nixpkgs, ... }:
    {
      nixosModules = {
        moduleA = import ./module.nix;
      };
    };
}

and then:

{
  description = "Flake B";
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flakeA = {
      inputs.nixpkgs.follows = "nixpkgs";
      url = "... flake A URI ...";
    };
  };

  outputs = { self, nixpkgs, flakeA, ... }:
    {
      nixosModules = {
        # add moduleA from flakeA as an output
        moduleA = flakeA.nixosModules.moduleA;
        moduleB = import ./module.nix;
      };
    };
}
3 Likes