@runcapsule/get-env-config
TypeScript icon, indicating that this package has built-in type declarations

8.2.1 • Public • Published

@runcapsule/get-env-config

Hierarchical Node.js configuration with files, environment variables. Configs have the following priority (from lowest to highest):

  1. Default config env.ts
  2. Local config env.local.ts
  3. Environment config env.development.ts
  4. Local Environment config env.development.local.ts
  5. All above rules for configs found in the rest of directories from configsDir.
  6. Environment variables

Installation

npm install -D @runcapsule/get-env-config@latest

or

yarn add -D @runcapsule/get-env-config@latest

Usage example

import { getConfig } from '@runcapsule/get-env-config';

const envConfig = getConfig(CONFIG_NAME, {
  configsDir: BASE_CONFIGS_DIR,
  environment: ENVIRONMENT_NAME,
});

// Now you can refer to this config from anywhere

API

getConfig(options)

Options object itself is required.

options.configsDir(String | String[])

Base configs directory or directories. Will use it to search for configs.

options.environment(String?)

Optional environment name. Will be added to base config name. For example for environment produciton will be required following configs:

CONFIGS_DIR/env.ts
CONFIGS_DIR/env.local.ts
CONFIGS_DIR/env.produciton.ts
CONFIGS_DIR/env.produciton.local.ts

loadConfigIntoProcessEnv(options)

Will follow all rules of getConfig but instead of return resulting config it will load into process.env.

getHelpers(config, properties)

getHelpers(config, [
  'SECURE',
  'PRIVATE',
  {
    dev: config.NODE_ENV === 'development',
    prod: config.NODE_ENV === 'production',
    test: config.NODE_ENV === 'test',
  },
])

Result will have:

  • properties with boolean values: ['isSecure', 'isPrivate', 'isDev', 'isProd', 'isTest']
  • functions, that can accept up to 2 arguments and return 1st arg if flag is truthy and 2nd arg if flag is falsy: ['ifSecure', 'ifPrivate', 'ifDev', 'ifProd', 'ifTest]
  • functions, that can accept up to 2 arguments and return 1st arg if flag is falsy and 2nd arg if flag is truthy: ['ifNotSecure', 'ifNotPrivate', 'ifNotDev', 'ifNotProd', 'ifNotTest]

printConfig(config)

Pretty print sorted config values into console.

/@runcapsule/get-env-config/

    Package Sidebar

    Install

    npm i @runcapsule/get-env-config

    Weekly Downloads

    1

    Version

    8.2.1

    License

    ISC

    Unpacked Size

    20.2 kB

    Total Files

    32

    Last publish

    Collaborators

    • bauxy
    • gbiryukov
    • bauxy-dev
    • pkozlov