query
On this page

deferredModuleWith

lib.types.deferredModuleWith

Docs pulled from | This Revision | 35 minutes ago


options declared via config.


Noogle detected

Implementation

The following is the current implementation of this function.

deferredModuleWith =
    attrs@{
      staticModules ? [ ],
    }:
    mkOptionType {
      name = "deferredModule";
      description = "module";
      descriptionClass = "noun";
      check = x: isAttrs x || isFunction x || path.check x;
      merge = loc: defs: {
        imports =
          staticModules
          ++ map (
            def: lib.setDefaultModuleLocation "${def.file}, via option ${showOption loc}" def.value
          ) defs;
      };
      inherit (submoduleWith { modules = staticModules; })
        getSubOptions
        getSubModules
        ;
      substSubModules =
        m:
        deferredModuleWith (
          attrs
          // {
            staticModules = m;
          }
        );
      functor = defaultFunctor "deferredModuleWith" // {
        type = lib.types.deferredModuleWith;
        payload = {
          inherit staticModules;
        };
        binOp = lhs: rhs: {
          staticModules = lhs.staticModules ++ rhs.staticModules;
        };
      };
    };