Giter VIP home page Giter VIP logo

config's Introduction

Metarhia Configuration Loader

ci status snyk npm version npm downloads/month npm downloads license

Installation

  • npm install @metarhia/config --save
  • const { Config } = require('@metarhia/config');

Usage

Load configuration with asynchronous constructor:

const { Config } = require('@metarhia/config');
const config = await new Config('./configDirectory');
console.log(config);
// Output example:
// {
//   logger: {
//     enabled: true,
//     keepDays: 100,
//     writeInterval: 3000,
//     writeBuffer: 65536,
//     toStdout: [ 'system', 'fatal', 'error' ]
//   },
//   server: {
//     transport: 'http',
//     address: '127.0.0.1',
//     ports: 80
//   }
// }

or factory:

const { readConfig } = require('@metarhia/config');
const config = await readConfig('./configDirectory');

Specify certain configuration sections to load:

const { Config } = require('@metarhia/config');
const options = { names: ['application', 'gateway'] };
const config = await new Config('./configDirectory', options);

Loag configuration in specified mode:

const { Config } = require('@metarhia/config');
const options = { mode: 'test' };
const config = await new Config('./configDirectory', options);

Specify sections and mode:

const { Config } = require('@metarhia/config');
const options = { mode: 'test', names: ['application', 'gateway'] };
const config = await new Config('./configDirectory', options);

Use custom context (sandbox) to execute configuration js file in it:

const vm = require('vm');
const common = require('@metarhia/common');
const { Config } = require('@metarhia/config');
const sandbox = { Duration: common.duration };
vm.createContext(sandbox);
const options = { sandbox };
const config = await new Config('./configDirectory', options);

config's People

Contributors

tshemsedinov avatar bob-chemist avatar darkwinngduck avatar maksgovor avatar habiiev avatar imnetcat avatar siobhanofzhytomyr avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.