@buka/nestjs-config
Version:
An easy to use nestjs config module
31 lines (30 loc) • 2.3 kB
TypeScript
import { DynamicModule } from '@nestjs/common';
import { Class } from 'type-fest';
import { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from './config.module-definition.js';
import { AsyncOptions } from './types/async-options.js';
import { ConfigProvider } from './types/config-provider.interface.js';
import { AsyncOptionsOfModule, InjectedModule } from './types/injected-module.interface.js';
import { ConfigModuleOptions } from './types/config-module-options.interface.js';
export declare class ConfigModule extends ConfigurableModuleClass {
private static config;
private static providers;
private static createConfigProvider;
private static loadConfig;
private static createConfigProviderFactory;
private static createLoadedConfigProviderFactory;
/**
* Load config and provider before registering the module
*/
static preload(options?: ConfigModuleOptions): Promise<void>;
/**
* Get the loaded config
*/
static get<T extends ConfigProvider>(ConfigProviderClass: T): Promise<InstanceType<T> | undefined>;
static getOrFail<T extends ConfigProvider>(ConfigProviderClass: T): Promise<InstanceType<T>>;
static register(options: typeof OPTIONS_TYPE): DynamicModule;
static registerAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule;
static inject<M extends InjectedModule, AO extends AsyncOptionsOfModule<M>, O extends Awaited<ReturnType<AO['useFactory']>>, P extends Class<O>>(provider: P, module: M): DynamicModule;
static inject<M extends InjectedModule, AO extends AsyncOptionsOfModule<M>, O extends Awaited<ReturnType<AO['useFactory']>>, P extends Class<any>>(provider: P, module: M, optionsFactory: (config: P['prototype']) => Promise<O> | O): DynamicModule;
static inject<M extends InjectedModule, AO extends AsyncOptionsOfModule<M>, O extends Awaited<ReturnType<AO['useFactory']>>, P extends Class<O>>(provider: P, module: M, moduleAsyncOptions: Omit<AO, keyof AsyncOptions>): DynamicModule;
static inject<M extends InjectedModule, AO extends AsyncOptionsOfModule<M>, O extends Awaited<ReturnType<AO['useFactory']>>, P extends Class<any>>(provider: P, module: M, moduleAsyncOptions: Omit<AO, keyof AsyncOptions>, optionsFactory: (config: P['prototype']) => Promise<O>): DynamicModule;
}