Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nonfig/nestjs-config
NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.
https://github.com/nonfig/nestjs-config
backend backend-services config configurations feature-flags feature-toggles localization localization-management nestjs nonfig software-configuration-management software-configurations
Last synced: 2 months ago
JSON representation
NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.
- Host: GitHub
- URL: https://github.com/nonfig/nestjs-config
- Owner: nonfig
- License: mit
- Created: 2020-09-22T22:07:33.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-28T18:14:57.000Z (about 4 years ago)
- Last Synced: 2024-11-07T19:08:04.663Z (3 months ago)
- Topics: backend, backend-services, config, configurations, feature-flags, feature-toggles, localization, localization-management, nestjs, nonfig, software-configuration-management, software-configurations
- Language: TypeScript
- Homepage:
- Size: 729 KB
- Stars: 41
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](https://circleci.com/gh/nonfig/nestjs-config.svg?style=shield&circle-token=a843b1bfda524abc2befedd3bd8a5b97b5a3c1ad)](https://circleci.com/gh/nonfig/nestjs-config)
# Summary
* [Installation](#installation)
* [Setup](#setup)
* [Usage](#usage)
* [NonfigService](#librarynameservice)# :package: Installation
* Using Nest CLI:
```
nest add @nonfig/nestjs-config
```* Using Package Manager:
```
npm install --save @nonfig/nestjs-config
```* Using Yarn
```bash
yarn add @nonfig/nestjs-config
```# :wrench: Setup
Explain your library setup.
```typescript
import { Module } from '@nestjs/common';
import { NonfigModule, NonfigOptions } from '@nonfig/nestjs-config';const CONFIG: NonfigOptions = {
appId: '',
appSecret: '',
cacheTtl: 60000
}@Module({
imports: [
...
NonfigModule.register(CONFIG)
],
controllers: [ ... ],
providers: [ ... ],
})
export class AppModule {}
```## :control_knobs: Config
| Name | Type | Default | Description | Required |
| --- | --- | --- | --- | --- |
| appId | __string__ | `` | Nonfig consumer's app ID | Yes |
| appSecret | __string__ | `` | Nonfig consumer's app Secret | Yes |
| cacheTtl | __number__ | `60000` | Cache time to live in milliseconds | No |# Usage
## Retrieve single configuration
```ts
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```ts
// 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
```tsimport { 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
```ts// 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 {
return this.nonfig.findByLabels(label)
}}
```