@jbiskur/nestjs-options-module-factory
v5.0.3
Published
The Options Module Factory provides a way to pass an options provider in the current import context by forcing the options provider to be resolved first. This is done through creating a module purely for containing and exporting the options provider.
Downloads
446
Readme
nestjs-options-module-factory
The Options Module Factory provides a way to pass an options provider in the current import context by forcing the options provider to be resolved first. This is done through creating a module purely for containing and exporting the options provider.
Installation
Install using npm.
npm install --save @jbiskur/nestjs-options-module-factory @jbiskur/nestjs-async-module
using yarn.
yarn add @jbiskur/nestjs-options-module-factory @jbiskur/nestjs-async-module
Usage
The library provides a utility factory function that creates a module with the options provided. These options are exported and can be used in the import context as seen in the example below. The InnerTestModule injects the options module and uses the const import to inject in the options.
// ...nestjs and async module imports
import { createOptionsModule } from "@jbiskur/nestjs-options-module-factory";
@Module({
providers: [InnerTestService],
})
class InnerTestModule extends createAsyncModule<Options>() {}
@Module({})
class TestModule extends AsyncModule {
public static registerAsync(options: AsyncOptions<Options>): DynamicModule {
const optionsModule = createOptionsModule(OPTIONS_NAME, options);
return this.doRegisterAsync(TestModule, null, null, {
imports: [
optionsModule,
InnerTestModule.registerAsync(
{
imports: [optionsModule],
inject: [OPTIONS_NAME],
useFactory: (outerOptions: Options) => ({
value: outerOptions.value,
}),
},
InnerTestModule
),
],
providers: [TestService],
});
}
}