NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.
NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.
nest add @nonfig/nestjs-config
npm install --save @nonfig/nestjs-config
yarn add @nonfig/nestjs-config
Explain your library setup.
import { Module } from '@nestjs/common';
import { NonfigModule, NonfigOptions } from '@nonfig/nestjs-config';
const CONFIG: NonfigOptions = {
appId: '<Your Application ID>',
appSecret: '<Your Application Secret>',
cacheTtl: 60000
}
@Module({
imports: [
...
NonfigModule.register(CONFIG)
],
controllers: [ ... ],
providers: [ ... ],
})
export class AppModule {}
Name | Type | Default | Description | Required |
---|---|---|---|---|
appId | string | <DEFAULT> |
Nonfig consumer's app ID | Yes |
appSecret | string | <DEFAULT> |
Nonfig consumer's app Secret | Yes |
cacheTtl | number | 60000 |
Cache time to live in milliseconds | No |
import { NonfigService } from '@nonfig/nestjs-config';
export class MyRepoService {
constructor(private nonfig: NonfigService) {}
async getPricing() {
const name = '/path/to/pricing/config'
return this.nonfig.findByName(name)
}
}
export class MyFacadeService {
constructor(private repo: MyRepoService) {}
async applyPricing() {
const config = await this.repo.getPricing()
// write your code here to use pricingConfig
}
}
Example: Fetching the list of supported languages of application
// Application Controller
export class AppController {
constructor(private service: AppService) {}
@Get()
async getLanguageList() {
return this.service.getLanguageList()
}
}
import { NonfigService } from '@nonfig/nestjs-config';
//Application Service
export class AppService {
constructor(private nonfig: NonfigService) {}
async getLanguageList() {
return this.nonfig.findByPath('/languages/list')
}
}
import { NonfigService } from '@nonfig/nestjs-config';
//Application Service
export class AppService {
constructor(private nonfig: NonfigService) {}
async getSpecificTranslation(id: string) {
return this.nonfig.findById(id)
}
}
Example: Fetching the language of application using specific labels
// Application Controller
export class AppController {
constructor(private service: AppService) {}
@Get('language')
async language(@Param('label') label: string) {
return this.service.getLanguageByLabel(label.split(','))
}
}
import { NonfigService } from '@nonfig/nestjs-config';
//Application Service
export class AppService {
constructor(private nonfig: NonfigService) {}
async getLanguageByLabel(label: string[]): Promise<Languages[]> {
return this.nonfig.findByLabels<Language>(label)
}
}