NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.
- Using Nest CLI:
nest add @nonfig/nestjs-config
- Using Package Manager:
npm install --save @nonfig/nestjs-config
- Using Yarn
yarn add @nonfig/nestjs-configExplain 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)
    }   
}