@nonfig/nestjs-config
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.11 • Public • Published

    Nonfig Logo Nest Logo

    Nonfig NestJS Plugin

    NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.

    CircleCI NPM Version Package License NPM Downloads

    Summary

    📦 Installation

    • Using Nest CLI:
    nest add @nonfig/nestjs-config
    
    • Using Package Manager:
    npm install --save @nonfig/nestjs-config
    
    • Using Yarn
    yarn add @nonfig/nestjs-config

    🔧 Setup

    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 {}

    🎛️ Config

    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

    Usage

    Retrieve single configuration

    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
        }   
    
    }

    Retrieve multiple configurations

    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')
        }   
    
    }

    Retrieve configuration using ID

    import { NonfigService } from '@nonfig/nestjs-config';
    
    //Application Service
    export class AppService {
    
        constructor(private nonfig: NonfigService) {}
    
        async getSpecificTranslation(id: string) {
            return this.nonfig.findById(id)
        }   
    
    }

    Retrieve multiple configurations using Labels

    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)
        }   
    
    }

    Install

    npm i @nonfig/nestjs-config

    DownloadsWeekly Downloads

    0

    Version

    0.0.11

    License

    MIT

    Unpacked Size

    18.8 kB

    Total Files

    21

    Last publish

    Collaborators

    • nonfig