Socket
Socket
Sign inDemoInstall

@cardash/config

Package Overview
Dependencies
0
Maintainers
3
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @cardash/config

Configuration management library, standardizes application storage and access


Version published
Weekly downloads
7
decreased by-88.71%
Maintainers
3
Install size
15.6 kB
Created
Weekly downloads
 

Readme

Source

@cardash/config

CircleCI Coverage Status

Configuration management library, standardizes application storage and access.

Install

npm install --save @cardash/config

Usage

Create a config directory in the root of your application. Inside of this directory you can create various configuration files in either JSON or JS files that produce a config object on module.exports.

For front end projects, create your config directory inside the app folder.

All config directories MUST have a common.{js|json} file to house configuration. It is recommended that this is a JS file so you can add comments on what the configuration options do in the code. It is recommended that ALL configuration options are specified in this file so they all have documentation.

Next create configuration files for each of your environments (e.g. test.json, development.json, staging.js, production.json, etc). It is recommended that these files be JSON files and only house the configurations that will be changed versus what is in common. If your NODE_ENV doesn't match any file in here, it will be skipped entirely and fall back to the common configuration.

Finally, you may optionally have a secrets.{js|json} file for secrets. This file should NOT be committed to the codebase, and instead injected during the build process from some secure vault system. secrets.{js|json} files are not supported in the browser version of the config library. API keys needed in front end code should be carefully considered and added to common or env specific config.

For front end projects, inside your config folder you must include an index.js file that exports all the configuration files as a default export.

import common from './common'
import development from './local'
import production from './production'
import staging from './staging'
import secrets from './secrets'

const configs = {
  common,
  development,
  production,
  staging,
  secrets,
}

export default configs

Once this is done, anywhere in your codebase you can get the configuration by requiring this library:

const config = require('@cardash/config')

or

import config from @cardash/config

It uses the process's cwd to determine which configuration to load the first time, and then returns a frozen object on all subsequent requires within the codebase, so no clumsy relative file require is necessary.

Keywords

FAQs

Last updated on 02 Mar 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc