@nestjsforge/echarts
Configuration (forRootAsync)
Configure EChartsModule asynchronously using useFactory, useClass, or useExisting.
Use EChartsModule.forRootAsync() when configuration depends on other providers (e.g., ConfigService).
useFactory
import { ConfigModule, ConfigService } from '@nestjs/config';
EChartsModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
poolSize: config.get<number>('ECHARTS_POOL_SIZE', 2),
timeout: config.get<number>('ECHARTS_TIMEOUT', 15_000),
defaultTheme: config.get<string>('ECHARTS_THEME', 'dark'),
puppeteerOptions: {
executablePath: config.get('CHROME_PATH'),
args: ['--no-sandbox', '--disable-setuid-sandbox'],
},
}),
})useClass
Use useClass to provide a class that implements EChartsOptionsFactory:
import { Injectable } from '@nestjs/common';
import { EChartsOptionsFactory, EChartsModuleOptions } from '@nestjsforge/echarts';
@Injectable()
export class EChartsConfigService implements EChartsOptionsFactory {
createEChartsOptions(): EChartsModuleOptions {
return {
poolSize: 3,
timeout: 20_000,
defaultTheme: 'dark',
};
}
}
// In AppModule:
EChartsModule.forRootAsync({ useClass: EChartsConfigService })useExisting
Reuse an existing provider that implements EChartsOptionsFactory:
EChartsModule.forRootAsync({
imports: [SharedConfigModule],
useExisting: AppConfigService,
})