Skip to content

Class: ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>

Defined in: packages/core/src/module-utils/configurable-module.builder.ts:51

Factory that lets you create configurable modules and provides a way to reduce the majority of dynamic module boilerplate.

Type Parameters

Type ParameterDefault type
ModuleOptions-
StaticMethodKey extends stringtypeof DEFAULT_METHOD_KEY
FactoryClassMethodKey extends stringtypeof DEFAULT_FACTORY_CLASS_METHOD_KEY
ExtraModuleDefinitionOptions{ }

Constructors

Constructor

ts
new ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>(options?, parentBuilder?): ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>;

Defined in: packages/core/src/module-utils/configurable-module.builder.ts:68

Parameters

ParameterType
optionsConfigurableModuleBuilderOptions
parentBuilder?ConfigurableModuleBuilder<ModuleOptions, "register", "create", { }>

Returns

ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>

Methods

build()

ts
build(): ConfigurableModuleHost<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>;

Defined in: packages/core/src/module-utils/configurable-module.builder.ts:168

Returns an object consisting of multiple properties that lets you easily construct dynamic configurable modules. See "ConfigurableModuleHost" interface for more details.

Returns

ConfigurableModuleHost<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>


setClassMethodName()

ts
setClassMethodName<StaticMethodKey>(key): ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>;

Defined in: packages/core/src/module-utils/configurable-module.builder.ts:129

Dynamic modules must expose public static methods that let you pass in configuration parameters (control the module's behavior from the outside). Some frequently used names that you may have seen in other modules are: "forRoot", "forFeature", "register", "configure".

This method "setClassMethodName" lets you specify the name of the method that will be auto-generated.

Type Parameters

Type Parameter
StaticMethodKey extends string

Parameters

ParameterTypeDescription
keyStaticMethodKeyname of the method

Returns

ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>


setExtras()

ts
setExtras<ExtraModuleDefinitionOptions>(extras, transformDefinition?): ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>;

Defined in: packages/core/src/module-utils/configurable-module.builder.ts:100

Registers the "extras" object (a set of extra options that can be used to modify the dynamic module definition). Values you specify within the "extras" object will be used as default values (that can be overridden by module consumers).

This method also applies the so-called "module definition transform function" that takes the auto-generated dynamic module object ("DynamicModule") and the actual consumer "extras" object as input parameters. The "extras" object consists of values explicitly specified by module consumers and default values.

Type Parameters

Type Parameter
ExtraModuleDefinitionOptions

Parameters

ParameterType
extrasExtraModuleDefinitionOptions
transformDefinition(definition, extras) => DynamicModule

Returns

ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>

Example

typescript
.setExtras<{ isGlobal?: boolean }>({ isGlobal: false }, (definition, extras) =>
   ({ ...definition, global: extras.isGlobal })
)

setFactoryMethodName()

ts
setFactoryMethodName<FactoryClassMethodKey>(key): ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>;

Defined in: packages/core/src/module-utils/configurable-module.builder.ts:151

Asynchronously configured modules (that rely on other modules, i.e. "ConfigModule") let you pass the configuration factory class that will be registered and instantiated as a provider. This provider then will be used to retrieve the module's configuration. To provide the configuration, the corresponding factory method must be implemented.

This method ("setFactoryMethodName") lets you control what method name will have to be implemented by the config factory (default is "create").

Type Parameters

Type Parameter
FactoryClassMethodKey extends string

Parameters

ParameterTypeDescription
keyFactoryClassMethodKeyname of the method

Returns

ConfigurableModuleBuilder<ModuleOptions, StaticMethodKey, FactoryClassMethodKey, ExtraModuleDefinitionOptions>

Properties

PropertyModifierTypeDefault valueDefined in
extrasprotectedExtraModuleDefinitionOptionsundefinedpackages/core/src/module-utils/configurable-module.builder.ts:60
factoryClassMethodKeyprotectedFactoryClassMethodKeyundefinedpackages/core/src/module-utils/configurable-module.builder.ts:59
loggerreadonlyLoggerundefinedpackages/core/src/module-utils/configurable-module.builder.ts:66
optionsreadonlyConfigurableModuleBuilderOptions{}packages/core/src/module-utils/configurable-module.builder.ts:69
staticMethodKeyprotectedStaticMethodKeyundefinedpackages/core/src/module-utils/configurable-module.builder.ts:58
transformModuleDefinitionprotected(definition, extraOptions) => DynamicModuleundefinedpackages/core/src/module-utils/configurable-module.builder.ts:61

Released under the MIT License.