Socket
Socket
Sign inDemoInstall

@flatfile/cross-env-config

Package Overview
Dependencies
0
Maintainers
27
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @flatfile/cross-env-config

A helper for configuring things in Node or Browser environments


Version published
Maintainers
27
Install size
12.8 kB
Created

Readme

Source

@flatfile/cross-env-config

@flatfile/cross-env-config is a lightweight, zero-dependency cross-environment configuration registry that works both in Node.js and browser environments. It is designed to provide a consistent way to access environment variables and configuration values across different types of JavaScript environments.

Installation

You can install @flatfile/cross-env-config using npm:

npm install @flatfile/cross-env-config

Or with Yarn:

yarn add @flatfile/cross-env-config

Basic Usage

To use @flatfile/cross-env-config, first import the CrossEnvConfig class:

import { CrossEnvConfig } from '@flatfile/cross-env-config'

You can then use the get method to fetch the value of an environment variable:

const value = CrossEnvConfig.get('MY_ENV_VAR')

This will first check if there are any overrides set for this key, then it will check the attached config registry, the attached config factory, and finally the environment variables.

Setting Overrides

You can set override values for any key using the set method:

CrossEnvConfig.set('MY_ENV_VAR', 'my value')

This value will take precedence over the attached config registry, config factory, and environment variables.

Using a Config Registry

You can attach an object to act as a config registry. This is useful if you want to store your config values somewhere other than environment variables:

const myConfig = {
  MY_ENV_VAR: 'my value',
  ANOTHER_ENV_VAR: 'another value',
}

CrossEnvConfig.attachConfigRegistry(myConfig)

The values in this registry will take precedence over the attached config factory and environment variables, but not over any overrides.

Using a Config Factory

You can attach a function to act as a config factory. This is useful if you need to dynamically generate config values:

CrossEnvConfig.attachConfigFactory((key) => {
  return `Value for ${key}`
})

The values produced by this factory will take precedence over the environment variables, but not over any overrides or the attached config registry.

Using Aliases

If you have different naming constructs for different environments, you can use the alias method to map one key to another:

CrossEnvConfig.alias('MY_ENV_VAR', 'MY_ALIAS')

In this case, if CrossEnvConfig.get('MY_ALIAS') is called and no value is found for 'MY_ALIAS' in the override, registry, factory, or environment, it will return the value of 'MY_ENV_VAR'.

Safety in Browsers and Node.js

@flatfile/cross-env-config is designed to work safely in both browser and Node.js environments. It checks the type of the process variable before attempting to access process.env, so it won't cause errors in a browser environment where process.env is undefined. It also checks the type of its registry and factory before trying to use them, so it won't break if they aren't properly set.

FAQs

Last updated on 02 May 2024

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