Skip to content

Make use of json file formatting for handling node environment configs.

License

Notifications You must be signed in to change notification settings

TheCodingBug/make-node-env

Repository files navigation

npm version

NPM

NPM

NPM

make-node-env

Make use of json file formatting for handling node environment configs.

Installation

Using npm:

npm i make-node-env

or

Using yarn:

yarn add make-node-env

Setup

/**
 * Using Sync configuration loading
 */
const syncConfg = path.resolve(__dirname + `/config2.json`);
exports.syncConfig = SyncConfig({ path: syncConfg, debug: true });

/**
 * Using Async configuration loading
 */
const asyncConfg = path.resolve(__dirname + `/config.json`);
exports.asyncConfig = async function () {
    return await AsyncConfig({ path: asyncConfg, debug: true })
};

Usage sample with Jest test

const { syncConfig, asyncConfig } = require('./index.js');

test('Configuration using sync load with config2.json', function () {
  const host = syncConfig.get('api.host');
  expect(host).toMatchObject({
    "url": "https://www.sync.com",
    "port": 9000,
    "hasSSL": true
  })

  const value = syncConfig.get('api.host.hasSSL');
  expect(value).toBe(true);
});

test('Configuration using async load with config.json', function () {
  async function load() {
    const config = await asyncConfig();

    const host = config.get('webURLs.api.host');
    expect(host).toMatchObject({
      "url": "https://www.host.com",
      "port": 9000,
      "hasSSL": true
    })

    const value = config.get('webURLs.api.host.hasSSL');
    expect(value).toBe(true);
  }

  load();
});

Jest Test

Screenshot 2023-05-05 at 8 55 00 PM

About

Make use of json file formatting for handling node environment configs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published