{"id":13818223,"url":"https://github.com/nonfig/nestjs-config","last_synced_at":"2026-01-12T09:55:35.883Z","repository":{"id":57131844,"uuid":"297783730","full_name":"nonfig/nestjs-config","owner":"nonfig","description":"NestJS Module for Nonfig services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.","archived":false,"fork":false,"pushed_at":"2020-12-28T18:14:57.000Z","size":747,"stargazers_count":41,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-24T15:53:19.560Z","etag":null,"topics":["backend","backend-services","config","configurations","feature-flags","feature-toggles","localization","localization-management","nestjs","nonfig","software-configuration-management","software-configurations"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nonfig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-22T22:07:33.000Z","updated_at":"2022-09-20T20:37:51.000Z","dependencies_parsed_at":"2022-09-26T21:31:42.625Z","dependency_job_id":null,"html_url":"https://github.com/nonfig/nestjs-config","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonfig%2Fnestjs-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonfig%2Fnestjs-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonfig%2Fnestjs-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nonfig%2Fnestjs-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nonfig","download_url":"https://codeload.github.com/nonfig/nestjs-config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254433831,"owners_count":22070533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","backend-services","config","configurations","feature-flags","feature-toggles","localization","localization-management","nestjs","nonfig","software-configuration-management","software-configurations"],"created_at":"2024-08-04T07:00:36.169Z","updated_at":"2026-01-12T09:55:35.877Z","avatar_url":"https://github.com/nonfig.png","language":"TypeScript","funding_links":[],"categories":["Integrations"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nonfig.com/\" target=\"blank\"\u003e\u003cimg src=\"https://www.nonfig.com/wp-content/uploads/2020/07/nonfig-logo.png\" width=\"300\" alt=\"Nonfig Logo\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://nestjs.com/\" target=\"blank\"\u003e\u003cimg src=\"https://nestjs.com/img/logo-small.svg\" width=\"120\" alt=\"Nest Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e Nonfig NestJS Plugin \u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  NestJS Module for \u003ca href=\"https://nonfig.com\" target=\"_blank\"\u003eNonfig\u003c/a\u003e services. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\n[![CircleCI](https://circleci.com/gh/nonfig/nestjs-config.svg?style=shield\u0026circle-token=a843b1bfda524abc2befedd3bd8a5b97b5a3c1ad)](https://circleci.com/gh/nonfig/nestjs-config)\n\u003ca href=\"https://www.npmjs.com/~nonfig\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@nonfig/nestjs-config.svg\" alt=\"NPM Version\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/~nonfig\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/@nonfig/nestjs-config.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/~nonfig\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@nonfig/nestjs-config.svg\" alt=\"NPM Downloads\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://twitter.com/nonfig\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/nonfig.svg?style=social\u0026label=Follow\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Summary\n\n* [Installation](#installation)\n* [Setup](#setup)\n* [Usage](#usage)\n  * [NonfigService](#librarynameservice)\n\n# :package: Installation\n\n* Using Nest CLI:\n```\nnest add @nonfig/nestjs-config\n```\n\n* Using Package Manager: \n```\nnpm install --save @nonfig/nestjs-config\n```\n\n* Using Yarn\n```bash\nyarn add @nonfig/nestjs-config\n```\n\n# :wrench: Setup\n\nExplain your library setup.\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { NonfigModule, NonfigOptions } from '@nonfig/nestjs-config';\n\nconst CONFIG: NonfigOptions = {\n  appId: '\u003cYour Application ID\u003e',\n  appSecret: '\u003cYour Application Secret\u003e',\n  cacheTtl: 60000  \n}\n\n@Module({\n  imports: [\n    ...\n    NonfigModule.register(CONFIG)\n  ],\n  controllers: [ ... ],\n  providers: [ ... ],\n})\nexport class AppModule {}\n```\n\n## :control_knobs: Config\n\n| Name | Type | Default | Description | Required |\n| --- | --- | --- | --- | --- |\n| appId | __string__ | `\u003cDEFAULT\u003e` | Nonfig consumer's app ID | Yes |\n| appSecret | __string__ | `\u003cDEFAULT\u003e` | Nonfig consumer's app Secret | Yes |\n| cacheTtl | __number__ | `60000` | Cache time to live in milliseconds | No |\n\n# Usage\n\n## Retrieve single configuration\n\n```ts\nimport { NonfigService } from '@nonfig/nestjs-config';\n\n\nexport class MyRepoService {\n    constructor(private nonfig: NonfigService) {}\n\n    async getPricing() {\n        const name = '/path/to/pricing/config'\n        return this.nonfig.findByName(name)\n    }\n\n}\n\nexport class MyFacadeService {\n\n    constructor(private repo: MyRepoService) {}\n    \n    async applyPricing() {\n        const config = await this.repo.getPricing()\n        \n        // write your code here to use pricingConfig\n    }   \n\n}\n```\n\n## Retrieve multiple configurations\nExample: Fetching the list of supported languages of application\n\n```ts\n\n// Application Controller\nexport class AppController {\n    constructor(private service: AppService) {}\n\n    @Get()\n    async getLanguageList() {\n        return this.service.getLanguageList()\n    }   \n}\n\n\nimport { NonfigService } from '@nonfig/nestjs-config';\n\n//Application Service\nexport class AppService {\n\n    constructor(private nonfig: NonfigService) {}\n\n    async getLanguageList() {\n        return this.nonfig.findByPath('/languages/list')\n    }   \n\n}\n```\n\n## Retrieve configuration using ID\n```ts\n\nimport { NonfigService } from '@nonfig/nestjs-config';\n\n//Application Service\nexport class AppService {\n\n    constructor(private nonfig: NonfigService) {}\n\n    async getSpecificTranslation(id: string) {\n        return this.nonfig.findById(id)\n    }   \n\n}\n```\n\n## Retrieve multiple configurations using Labels\nExample: Fetching the language of application using specific labels\n```ts\n\n// Application Controller\nexport class AppController {\n    constructor(private service: AppService) {}\n\n    @Get('language')\n    async language(@Param('label') label: string) {\n        return this.service.getLanguageByLabel(label.split(','))\n    }   \n}\n\n\nimport { NonfigService } from '@nonfig/nestjs-config';\n\n//Application Service\nexport class AppService {\n\n    constructor(private nonfig: NonfigService) {}\n\n    async getLanguageByLabel(label: string[]): Promise\u003cLanguages[]\u003e {\n        return this.nonfig.findByLabels\u003cLanguage\u003e(label)\n    }   \n\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnonfig%2Fnestjs-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnonfig%2Fnestjs-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnonfig%2Fnestjs-config/lists"}